Я нахожусь в процессе интеграции оплаты Barclays ePDQ CPI в наше приложение.
Код, который я до сих пор кодировал:
1. Пользователь вводит данные 2. Модель сохраняется в сеансе (не в дБ) 3. Пользователь перенаправляется на страницу оплаты.4. Пользователь вводит платежные реквизиты.5. Сервер eDPQ выполняет обратную передачу, полученную контроллером.Это должно сохранить детали заказа и сохранить модель пользователя.6. Пользователь перенаправляется на страницу результатов по ИПЦ.
Причина, по которой я не хочу сохранять данные пользователя перед отправкой на страницу оплаты, заключается в том, что пользователь может нажать обратно в браузере, если они ввели неверные данные, и повторно отправить форму.
Однако - теперь я понимаю, что, поскольку сервер eDPQ вызывает сообщение напрямую, сеанса не будет.Можно отправить order_id на страницу оплаты, которая будет отправлена обратно в качестве ссылки.Так что теперь я думаю вернуться и сохранить пользователя перед отправкой его на страницу оплаты, поэтому я отправляю ссылку в order_id.Затем это можно получить с помощью метода post_back, который найдет пользователя и завершит процесс регистрации.
Но, если они нажмут назад и попытаются повторить отправку, будут ошибки, так как пользователь уже существует.
Одним из способов решения этой проблемы является обеспечение «новой» страницы для пользователя.никогда не кэшируетсяПоэтому, когда они нажимают назад, им фактически отображается страница «редактирования», которая будет выглядеть как «новая» страница.Однако похоже, что это добавит некоторые сложности при кодировании.
Я надеюсь, что кто-то сталкивался с чем-то подобным и может дать здесь несколько советов.
Спасибо за чтение!