Код передает payment_method_data[billing_details]
, и именно так вы предоставляете такие данные, как платежный адрес держателя карты, чтобы связать его с созданным ресурсом PaymentMethod
.
Однако проблема заключается в том, что это работает, только есливы не инициализировали Stripe.js со старым бета-флагом, где handleCardPayment
создаст объект Source
(src_123) за кулисами вместо PaymentMethod
(pm_123).
Когда вы это сделаете,библиотека преобразует payment_method_data
в source_data
, а затем отправляет source_data[billing_details]
, но серверная часть API отклоняет его, поскольку это недопустимый параметр на стороне сервера.
Чтобы избежать этой ошибки,вам нужно убедиться, что вы инициализируете Stripe.js без флага betas
.Так что превратите
const stripe = Stripe('pk_test_123', { betas: ['payment_intent_beta_3'] });
в:
const stripe = Stripe('pk_test_123');