Проблемы:
Видео: https://streamable.com/797e5
1) При отправке формы Stripe.js с картой, требующей аутентификации (например, 4000002760003184 или pm_card_authenticationRequired), появляется безопасное всплывающее окно 3Dно клиент ничего не может сделать, потому что страница обновляется автоматически после нажатия кнопки «Отправить», что означает, что клиент не может правильно выполнить аутентификацию во времени. Нужен какой-то способ замедлить этот процесс, если клиент сначала завершит аутентификацию.
2) Не уверен, как заменить "pm_card_visa" номером карты, который пользователь вводит в форму Stripe.js.
3) Каким должно быть действие формы? Правильно ли {{checkout}}?
4) Сообщение об ошибке оператора исключения запускается каждый раз, когда я пытаюсь отправить успешный платеж, что нежелательно. Также нет кода, показывающего, что платеж был успешным.
5) При отправке формы Stripe.js данные в базе данных Django не сохраняются, как в старом коде токенов Stripe.
Примечание:Создание подписки и намерения оплаты вызывает успешную оплату за подписку, а также намерение оплаты, в результате чего клиент получает двойную плату. Я обновил код, так что подписка будет пробной, чтобы избежать двойной оплаты.
Рабочий старый код токена:
https://github.com/justdjango/video-membership/blob/master/memberships/templates/memberships/membership_payment.html
https://github.com/justdjango/video-membership/blob/master/memberships/views.py
https://github.com/justdjango/video-membership/blob/master/static/js/checkout.js
Старый код токена Объяснение:
https://www.youtube.com/watch?v=zu2PBUHMEew
Попытка обновления кода платежного намерения:
https://pastebin.com/5wEkEjbq (stripe.js / checkout.js)
https://pastebin.com/7JXB4K4j (views.py)
https://pastebin.com/Kf0MeQ42 (membership_payment.html)
Я хочу взять старый код токенов Stripe, который работает, и обновить его с помощью нового API платежного намерения, в то время как все основные функции / результатстарого кода токена остается прежним, но в обновленном виде.
Результат:
1) Клиент вводит свою кредитную карту в форму Stripe.js
2) Есликредитная карта действительна и не является SCA, затем обработайте карту в Stripe и базе данных Django
3) Если кредитная карта действительна, но требует SCA, аутентифицируйте клиента
4) Один разклиент проходит аутентификацию, затем обрабатывает платеж и отправляет данные в Stripe и базу данных Django.
5) Клиент должен иметь подписку Stripe, которая оплачивается ежемесячно или ежегодно (в зависимости отнастройка плана в информационной панели Stripe).
6) Намерение платежа клиента должно быть подтверждено / успешно, и способ оплаты (кредитная карта) должен быть снова использован для автоматических ежемесячных / ежегодных платежей по подписке.