【问题标题】:Pass additional field to Laravel Cashier subscription将附加字段传递给 Laravel Cashier 订阅
【发布时间】:2018-06-17 12:12:02
【问题描述】:

我已经使用 Laravel Cashier 成功创建了一个订阅,但是我在付款方面遇到了问题。

我的用例是我以订阅的形式从用户那里收取金额,然后在用户采取特定行动后,将一定金额进一步转移给供应商。 我正在使用手动转账进行支付,它似乎拥有我需要的一切 (https://stripe.com/docs/connect/charges-transfers)。

但是,为了创建从一个 Stripe 帐户到另一个帐户的转移,我必须为我的费用分配一个字段“transfer_group”。由于我没有使用 Charge 进行订阅,而是使用 Cashiers 方法,因此我没有此选项。

查看 Billable 类中“newSubscription”方法或“create”方法的实现,我找不到任何可以传递它的地方。 这可以实现还是我必须使用普通的 Stripe SDK 重新实现我的订阅?

我的订阅代码如下所示:

$response = $customer->newSubscription($plan->name, $plan->plan_id)->create($request->token, [
  'email' =>  $user['profile']['email'],
  'description' => $user['profile']['biography'],
  'metadata' => [
     'name' => $user['profile']['name'],
      'uuid' => $request->uuid
   ]
]);

此处传递的所有这些选项都与 Customer 对象相关,而不是 Charge。根据 Stripe 文档,我需要类似的东西:

$charge = \Stripe\Charge::create(array(
  "amount" => 10000,
  "currency" => "eur",
  "source" => "tok_visa",
  "transfer_group" => "{ORDER10}",
));

【问题讨论】:

    标签: php laravel stripe-payments stripe-connect laravel-cashier


    【解决方案1】:

    由于您无法控制此处的费用创建,因此您将无法通过transfer_group。您应该做的是在通过 API 创建传输时传递 source_transaction: "ch_XXXX"。这将确保转移与订阅相关的费用相关联,并符合 Stripe 的要求。

    这直接记录在 Stripe 文档 here

    【讨论】:

    • 谢谢,这解决了问题。我在获取 charge_id 时遇到了一点问题,最终在 Invoice 模型中找到了它。
    猜你喜欢
    • 2019-01-21
    • 2018-01-15
    • 2020-07-25
    • 2015-05-01
    • 2021-04-02
    • 2013-12-11
    • 1970-01-01
    • 2017-01-31
    • 2022-01-03
    相关资源
    最近更新 更多