【发布时间】:2019-11-22 01:32:31
【问题描述】:
目前在 Laravel Cashier 上,我们可以使用
更改不同的模型CASHIER_MODEL=App\User
但是,根据我目前的需要,我应该能够在用户表上实现 1 次付款,并在另一个实体(团队表)上实现订阅付款。有人有想法吗?用户有很多团队。
【问题讨论】:
标签: laravel stripe-payments laravel-cashier
目前在 Laravel Cashier 上,我们可以使用
更改不同的模型CASHIER_MODEL=App\User
但是,根据我目前的需要,我应该能够在用户表上实现 1 次付款,并在另一个实体(团队表)上实现订阅付款。有人有想法吗?用户有很多团队。
【问题讨论】:
标签: laravel stripe-payments laravel-cashier
CASHIER_MODEL 环境变量用作cashier.model,主要用于查找给定订阅see github code using "cashier.model" 的所有者。
您仍然可以在其他模型/对象上使用 Billable 特征(尽管在与收银员交互时请注意您的架构/迁移并妥善存储内容)。
为了完整起见,您可以使用自己的机制覆盖 Subscription::owner() 和 WebhookController::getUserByStripeId() 方法,以区分可计费模型,以便 webhook 更好地工作作为回报。
根据您的应用程序,您还可以将这部分作为应用程序架构的一部分,例如向团队的所有者开具账单,或者将您的可计费服务抽象为负责个人和团队计费的一致模型。
【讨论】:
也许您对用户的付款没问题。您的问题出在团队订阅上。
将team_id 列添加到您的订阅表。
将 Billable 特征添加到您的团队模型中。
在创建订阅或使用收银员执行任何操作之前,请更改 cashier.model 配置。
Config::set('cashier.model', 'App\Team');
现在您将能够为团队执行收银员的每一项操作。
【讨论】: