Реалекс ГЭС Оплата в Angular 6 - PullRequest
0 голосов
/ 31 января 2020

У меня проблемы с использованием библиотеки rxp- js в проекте Angular 6.

Итак, я добавил rxp- js в angular. json, чтобы я мог использовать его в компоненте, так как еще нет модуля или типов для библиотеки;

Над компонентом у меня есть

declare let RealexHpp;

OnInit Я просто получаю JSON от сервера, чтобы инициировать лайтбокс.

this.realexJSON  = await this.dataService.getRealexJson();

RealexHpp.setHppUrl("https://pay.sandbox.realexpayments.com/pay");
RealexHpp.init("realex-button", 'http://localhost:1337/responseurl', this.realexJSON);

Это все работает отлично. Я могу добавить фиктивные данные карты и отправить платеж.

Вот где это сложно. rxp- js делает запись html, которая в angular заставляет страницу перенаправить на URL-адрес ответа. Итак, как вам не испортить весь пользовательский опыт.

Перенаправляет на все, что отвечает API, так что вы можете иметь страницу с сообщением о перенаправлении обратно к клиенту.

Но это все в одном окне.

Итак, я вошел в rxp- js и добавил строку, чтобы открыть форму в новом окне, как это

//Create a form and submit the hpp response to the merchant's response url
var form = document.createElement("form");
form.setAttribute("method", "POST");
form.setAttribute("action", merchantUrl);
form.setAttribute("target",'_blank');
form.appendChild(internal.createFormHiddenInput("hppResponse", response));
document.body.appendChild(form)
form.submit()

Итак, он открывается в новом окне, ответ сервера возвращается с сообщением о перенаправлении назад, а затем закрывает окно.

Но теперь лайтбокс все еще открыт.

В целом взломать библиотеку, чтобы заставить ее работать, - это не идеально.

Нет ли способа обработать HPP_Hosted_Response, не выполняя пост html. Или, по крайней мере, зная, когда ответ получен.

Если честно, Realex - это не простая интеграция платежей.

...