Как справиться с ошибкой оплаты Stripe через AJAX при стандартной загрузке страницы для успеха? (используя бэкэнд Laravel) - PullRequest
0 голосов
/ 04 сентября 2018

У меня есть длинная и довольно сложная форма для системы бронирования, которую пользователь заполняет, а затем оплачивает с помощью Stripe Checkout. Я пытаюсь найти лучшее решение, чтобы легко обрабатывать ошибки платежа (поэтому отправляю форму через AJAX, чтобы мне не пришлось пытаться восстановить всю форму бронирования со всеми данными, введенными пользователем), а также обрабатывал платеж изящно (то есть с новой страницей, показывающей сводку по бронированию и другим URL, поэтому, если пользователь нажимает кнопку перезагрузки в своем браузере, он не просто возвращает его к результатам поиска и форме бронирования снова)

Я использую смесь Laravel 5.4 и JS / JQuery для генерации формы бронирования в интерфейсе, а после Stripe Checkout (я использую стандартное всплывающее окно простой интеграции) отправляет все формы + токен Stripe и т. д. вернуться к POST-маршруту в моем бэкэнде Laravel. Затем в своем контроллере я пытаюсь зарядить кредитную карту с помощью стандартного Stripe API и обработать детали бронирования в моей базе данных, а затем вернуть представление Laravel из шаблона Blade, предоставив пользователю другую страницу и URL. Как уже упоминалось, я хочу переключить отправку формы на AJAX, чтобы сбой платежа можно было легко обработать (т. Е. Их большая заполненная форма не исчезает, и пользователю просто выскакивает предупреждение, чтобы он мог попытаться ввести новую карту в Stripe). Проверять, выписываться). Этот бит в порядке, я просто буду использовать это: https://stackoverflow.com/a/34099169/4059141, но затем при успешной оплате я в основном хочу такое же поведение, как если бы я сделал обычную форму POST, поэтому новая страница отображается с новым URL.

Я могу без проблем сгенерировать и передать отредактированный HTML-код из шаблона блейда через AJAX, но при этом исходный URL-адрес остается в адресной строке браузера, поэтому, если они нажмут перезагрузить сводку бронирования, они просто увидят результаты поиска. Страница и пустая форма бронирования снова - не то, что я хочу.

Любые мысли о решении приветствуются! Спасибо

...