Я интегрирую полосовые подписки в наш рабочий процесс, но при создании подписки с Клиентом , созданным с paymentMethod вместо source Я получаю сообщение об ошибке This customer has no attached payment source
.
Если я позвоню в браузер createToken()
и прикреплю его к клиенту в поле source
, оно будет работать.
Мы интегрировали единовременные платежи с использованием новых документов с SCA, которые используют createPaymentMethod()
, а не createToken()
, поэтому наши клиенты сохраняются с paymentMethod
, а не source
, как описано здесь:
https://stripe.com/docs/payments/cards/saving-cards-after-payment#save-payment-method
curl https://api.stripe.com/v1/customers \
-u sk_test_secret_token \
-d payment_method="{{PAYMENT_METHOD_ID}}"
Кроме того, в руководстве по миграции говорится о замене createToken()
на createPaymentMethod()
.
In Сценарий 2: зарядкаклиенты вне сеанса для их первоначального платежа , я увидел следующее:
Чтобы создать подписку и снять с клиентов сеанс для первоначального платежа, необходимо:
1) Используйте CreatePaymentMethod
для сбора платежной информации
2) Создайте клиента, используя идентификатор PaymentMethod
вы создали
3) Создайте подписку
4) Настройте обработку ошибок, используя handleCardSetup
для ошибок аутентификации и handleCardPayment
для ошибок авторизации
Я следовал за этими шагами.Я не создаю SetupIntent
(точно так же, как я не создаю его в одноразовых платежах, и он работает в этих случаях), и получаю ошибку, о которой я говорил ранее, при попытке создать подписку.
Можно ли создать подписку с клиентом с paymentMethod
вместо source
?
(Мы повторно используем карты, используя клиентов, созданных с помощью paymentMethod
, для одноразового использованияплатежей, поэтому было бы очень важно иметь возможность повторно использовать одного и того же клиента / карту для подписок без необходимости ввода пользовательских данных в виде чередующихся элементов или чего-либо подобного, потому что это нарушило бы наш поток для повторного использования карт)