Как реагировать на успех Stripe PaymentIntent в веб-интерфейсе - PullRequest
1 голос
/ 21 сентября 2019

Я обновляю веб-приложение для готового потока Stripes SCA с помощью PaymentIntent.

Пока у меня есть работа (на моем локальном тестовом сервере):

  1. Создание намерений на внешнем интерфейсе иПередайте секрет в форму
  2. Используйте Elements для сбора карты в
  3. Используйте handleCardPayment для создания платежа

Теперь вот часть, в которой я не уверен.Все ответы handleCardPayment, кажется, указывают на событие succeeded, но документация предупреждает, что не следует использовать этот ответ, а вместо этого ждать ответа Webhook и только затем выполнять заказы клиента.

Шаг 5: Асинхронновыполнить заказ клиента

Вы можете использовать PaymentIntent, возвращенный Stripe.js, для немедленной обратной связи с вашими клиентами после завершения платежа на клиенте.Однако ваша интеграция не должна пытаться обрабатывать выполнение заказа на стороне клиента, поскольку клиенты могут покинуть страницу после завершения оплаты, но до начала процесса выполнения.Вместо этого вам нужно будет обрабатывать асинхронные события, чтобы получать уведомления и отслеживать выполнение при успешной оплате. Документация

Пока все хорошо, я настроил тестовые веб-хуки и туннелирование через ngrok. Я действительно могу получать paymentIntent от веб-крючка Stripe.

СейчасМой вопрос возникает в тот момент, когда заканчивается документация Stripe.Как мне работать с пользовательским интерфейсом с момента нажатия кнопки «Оплатить», и как мне во внешнем интерфейсе обнаружить, что веб-крючок сработал?

Мне интересно, должен ли я опрашивать свой собственный сервер?, который, в свою очередь, извлекает результат из базы данных, в котором указано, был ли получен веб-крючок для этого заказа?Или какой разумный способ справиться с этим, технически и с точки зрения UX?

Любые указатели?

...