使用具有多个订阅的 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 SCA 订阅返回不完整的订阅