PHP Stripe: вы не можете передать `payment_intent_data` в режиме` подписки`
Я пытаюсь создать подписку для пользователей продавца, но сталкиваюсь с сообщением "Вы не можете пройти payment_intent_data
в subscription
mode "ошибка. С обычными платежами работает нормально, но подписки не работают.
Вот пример того, что я хочу сделать: у Джона есть магазин электронной коммерции, основанный на регулярном выставлении счетов. Мэтью является клиентом Джона и хочет приобрести у Джона подписку. Как я могу легко снимать комиссию и переводить деньги на счет подключения Джона при использовании "Stripe Checkout"?
$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/',
]);
Спасибо!
1 ответ
В принципе, вы не можете использовать payment_intent_data
на сеансе оформления заказа в режиме подписки, поскольку подписка создает счета вместо PaymentIntents.
Для этого вам нужно использовать subscription_data
хеш: https://stripe.com/docs/api/checkout/sessions/create?lang=php и укажите учетную запись продавца.
Пример вызова API с реквизитами продавца:
$session = \Stripe\Checkout\Session::create([
'subscription_data' => [
'application_fee_percent' => $fees_percent,
],
],array("stripe_account" => "acct_xxxxxxxxx"));
Также не забудьте передать в вызов все остальные необходимые переменные.
Ура:)