使用具有多个订阅的 Laravel Cashier

Posted

技术标签:

【中文标题】使用具有多个订阅的 Laravel Cashier【英文标题】:Using Laravel Cashier with Multiple Subscriptions 【发布时间】:2021-12-20 22:38:18 【问题描述】:

我的雇主要求一个用户有多个订阅,每个订阅都与一个服务器模型相关,该模型包含一个唯一的服务器 ID 和其他生成的信息。

所以一个用户可能有 2 个服务器:

    服务器 1 - 标题、用户名等 -> 链接到订阅 服务器 2 - 标题、用户名等 -> 链接到订阅

所以总的来说,该用户将有两个订阅,链接到两个服务器。

在这种特殊情况下,用户将为每个服务器的两个订阅付费。

因为它是 1 订阅 1 个服务器,一个用户可以拥有多个服务器。

关于如何使用 Cashier/Stripe 组织这个有什么建议吗?

或者将服务器 ID 附加到 Stripe Meta 会更好吗?

'metadata' => [
    'server_id' => 'Some server id'
]

或者我是否将计费特征应用于服务器模型?在哪种情况下,我仍然可以为用户创建一个计费门户来管理他们的所有订阅?

此外,如何创建订阅服务器?

auth()->user()->server()->create(title, username, etc)->->newSubscription()->checkout?

【问题讨论】:

【参考方案1】:

Stripe Subscription 元数据字段 0 中可以包含额外字段(server_id、您的系统生成的信息等)。 在您的示例中,可以将其可视化为,客户订阅了多个订阅,其中包含有关 server_id 和其他元数据中的其他信息。

Stripe API 中没有 Server 对象,如果您指的是服务器代码以及它与订阅和结帐的关系,这里是一个示例概述: Subscription Checkout Workflow

您绝对可以利用客户门户1让客户通过设置2查看和管理他们的订阅、付款方式等。

0https://stripe.com/docs/api/subscriptions/create#create_subscription-metadata

1https://stripe.com/docs/billing/subscriptions/customer-portal

2https://dashboard.stripe.com/test/settings/billing/portal

【讨论】:

以上是关于使用具有多个订阅的 Laravel Cashier的主要内容,如果未能解决你的问题,请参考以下文章

Laravel Cashier - 使用现有客户对象创建新订阅

Laravel Cashier 新订阅 Stripe 抛出“无法确定请求哪个 URL:”错误

Laravel Cashier - 更新订阅的付款方式

Laravel Cashier SCA 订阅返回不完整的订阅

在试用 Laravel Cashier Paddle 期间无法交换计划

Laravel 7.0 Cashier - 条纹支付异常