Переадресация на внешний URL с POST после внешнего платежа - PullRequest
4 голосов
/ 28 января 2020

Мое VueJS приложение использует Java бэкэнд. Этот Java сервер обеспечивает все конечные точки REST для предоставления данных.

Когда пользователь выполняет проверку, сервер отвечает URL-адресом перенаправления и перенаправляет пользователя на этот URL-адрес. Это делается просто так:

window.location.href = redirectUrl;

Как только процесс оплаты на внешней странице завершен, поставщик платежа перенаправляет пользователя на return_url, который в данном случае мой VueJS интерфейс. Однако внешняя система отправляет return_url в запросе POST непосредственно на внешний интерфейс, который не может быть обработан, так как конечная точка не прослушивает. Насколько я знаю, VueJS не имеет возможности принимать запросы POST.

1 Ответ

1 голос
/ 28 января 2020

TLDR; Любая система внешнего платежного шлюза или аналогичная система, такая как OAuth / OpenID, несет ответственность за перенаправление в вызывающее приложение через простые перенаправления браузера (через HTTP 302 и 303). Поэтому вам следует попросить / настроить внешнего поставщика платежей для выполнения стандартного рабочего процесса .

Теоретически, вы никогда не должны сталкиваться с этой проблемой, поскольку POST обычно является запросом Ajax. Представьте, что вы находитесь на странице внешнего платежа, и когда платеж успешно завершен, внешний JS выполняет вызов POST, и, следовательно, страница платежа должна взять на себя ответственность за перенаправление на соответствующую страницу, прочитав ответ.

Теперь, вторая возможность заключается в том, что страница оплаты использует традиционную форму FORM через POST тип метода и возвращает ответ в виде JSON или эквивалентное тело. В этом случае у вас должен быть серверный скрипт (на вашем ui-сервере), который будет прослушивать этот вызов, а затем загружать внешнее приложение, созданное с помощью Vue.

Если ваш пользовательский интерфейс обслуживается с помощью Java back-end, тогда будет просто иметь Servelet или JSP.

...