【问题标题】:Laravel cashier with multiple model具有多种模型的 Laravel 收银员
【发布时间】:2019-11-22 01:32:31
【问题描述】:

目前在 Laravel Cashier 上,我们可以使用

更改不同的模型
CASHIER_MODEL=App\User

但是,根据我目前的需要,我应该能够在用户表上实现 1 次付款,并在另一个实体(团队表)上实现订阅付款。有人有想法吗?用户有很多团队。

【问题讨论】:

    标签: laravel stripe-payments laravel-cashier


    【解决方案1】:

    CASHIER_MODEL 环境变量用作cashier.model,主要用于查找给定订阅see github code using "cashier.model" 的所有者。

    您仍然可以在其他模型/对象上使用 Billable 特征(尽管在与收银员交互时请注意您的架构/迁移并妥善存储内容)。

    为了完整起见,您可以使用自己的机制覆盖 Subscription::owner()WebhookController::getUserByStripeId() 方法,以区分可计费模型,以便 webhook 更好地工作作为回报。

    根据您的应用程序,您还可以将这部分作为应用程序架构的一部分,例如向团队的所有者开具账单,或者将您的可计费服务抽象为负责个人和团队计费的一致模型。

    【讨论】:

      【解决方案2】:

      也许您对用户的付款没问题。您的问题出在团队订阅上。

      team_id 列添加到您的订阅表。

      将 Billable 特征添加到您的团队模型中。

      在创建订阅或使用收银员执行任何操作之前,请更改 cashier.model 配置。

      Config::set('cashier.model', 'App\Team');
      

      现在您将能够为团队执行收银员的每一项操作。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-02-26
        • 2019-01-08
        • 2018-05-31
        • 2014-10-28
        • 2018-03-28
        • 2018-06-17
        • 1970-01-01
        • 2022-11-18
        相关资源
        最近更新 更多