【问题标题】:PHP Stripe: You can not pass `payment_intent_data` in `subscription` modePHP Stripe:您不能在“订阅”模式下传递“payment_intent_data”
【发布时间】:2020-07-06 22:47:05
【问题描述】:

我正在尝试为商家的用户创建订阅,但遇到“您无法在 subscription 模式下传递 payment_intent_data”错误。通过定期付款,它运作良好,但订阅不起作用。

下面是我想做的一个例子:John 有一家基于定期计费的电子商务商店。 Matthew 是 John 的客户,他想从 John 购买订阅。如何在使用“Stripe Checkout”时轻松收取费用并将资金转入 John 的连接帐户?

  $session = \Stripe\Checkout\Session::create([
    'payment_method_types' => ['card'],
    'line_items' => [[
      'price' => $priceIntent->id,
      'quantity' => 1,
      ]],
    'customer' => Auth::User() -> stripe_code,
    'mode' => 'subscription',
    'payment_intent_data' => [
      'application_fee_amount' => $total_fees,
      'transfer_data' => [
        'destination' => $merchantId,
      ],
    ],
    'success_url' => env('APP_URL') . '/order/success/{CHECKOUT_SESSION_ID}',
    'cancel_url' => env('APP_URL') . '/order/cancel/',
  ]);

谢谢!

【问题讨论】:

    标签: php stripe-payments


    【解决方案1】:

    基本上,您不能在订阅模式下的 Checkout Session 中使用payment_intent_data,因为订阅会创建发票而不是 PaymentIntents。

    为此,您需要使用subscription_data 哈希:https://stripe.com/docs/api/checkout/sessions/create?lang=php#create_checkout_session-subscription_data-application_fee_percent 并指定商家帐户。

    带有商家详细信息的 API 调用示例:

      $session = \Stripe\Checkout\Session::create([
    
        'subscription_data' => [
          'application_fee_percent' => $fees_percent,
        ],
    
      ],array("stripe_account" => "acct_xxxxxxxxx"));
    

    另外,不要忘记在调用中传递所有其他必需的变量。

    干杯:)

    【讨论】:

      猜你喜欢
      • 2017-01-17
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2014-04-08
      • 2017-07-03
      • 2017-12-27
      • 2016-08-04
      • 2017-08-20
      相关资源
      最近更新 更多