Stripe 3D Secure при сохранении карт для будущих платежей

Можно ли использовать 3D Secure при сохранении карт для будущих платежей?

Из документов Stripe https://stripe.com/docs/sources/three-d-secure. Это, кажется, способ сделать это.

Однако, согласно документации, больше не рекомендуется использовать вместо этого PaymentIntents:

Использование этого API больше не рекомендуется. Если вы хотите использовать 3D Secure, мы настоятельно рекомендуем вам использовать PaymentIntents, наш новый API платежей.

Итак, есть ли способ использовать PaymentIntents (для использования 3D-безопасности), чтобы просто сохранить карту без немедленной оплаты?

4 ответа

Просто чтобы сообщить вам, я связался с поддержкой Stripe, так как я получил то же беспокойство, что и вы, вот ответ:

[...] PaymentIntents в настоящее время не поддерживает создание источников без последующего создания платы. К сожалению, также невозможно интегрировать 3DSecure с текущим методом сохранения кредитных карт.

PaymentIntents - это довольно новый продукт Stripe, и мы все еще работаем над решением проблем и решаем, какие функции мы будем поддерживать в дальнейшем. Сохранение источников определенно стоит на первом месте в нашем списке приоритетов, и в будущем будет больше информации об этом обновлении.

Я пытался получить больше информации об их дорожной карте, чтобы узнать, будет ли функция выпущена к сентябрю, но поддержка не смогла дать мне информацию.

Можно ли использовать 3D Secure при сохранении карт для будущих платежей?

Что я делаю, используя PaymentIntents это создать клиента, а затем произвести оплату:

customer = stripe.Customer.create(

payment = stripe.PaymentIntent.create(customer=customer_id, ....

При оплате у вас есть тип карты payment['charges']['data'][0]['payment_method_details']['card']['brand'] и последние 4 цифры карты payment['charges']['data'][0]['payment_method_details']['card']['last4']

Вы можете хранить локально customer_id, тип карты и последние 4 цифры, чтобы показать их этому клиенту в следующий раз. Чтобы сделать еще один платеж, вам нужно только использовать stripe.PaymentIntent.create() с customer.id Вы спасли в первый раз. Если клиент хочет использовать другую карту, просто сделайте

customer = stripe.Customer.modify(
                customer_id,
                source=token_id
           )

token_id приходит от stripe.js в вашем интерфейсе

Используйте SetupIntentAPI, которые в основномPaymentIntent с нулевой суммой (тот же рабочий процесс).

Установлен setup_future_usage='off_session'при создании платежного намерения.

      stripe.PaymentIntent.create(
  amount=1099,
  currency='usd',
  setup_future_usage='off_session',
)

В этих полосатых документах показано, как сохранить карту таким образом, чтобы в будущем можно было осуществлять платежи «вне сеанса» для карт, использующих 3D Secure.

https://stripe.com/docs/payments/payment-intents#future-usage

Другие вопросы по тегам