У меня возникли проблемы с получением ответа от кода NodeJS на стороне сервера после проверки с использованием PayPal In-Context через paypal-rest-sdk.
У меня есть форма PayPal, определенная в html, и я намеренно не определяю действие. Я только определил идентификатор и метод (получить). В моем коде Angular я определяю действие при нажатии кнопки PayPal:
var payPalForm = document.getElementById('payPalForm');
payPalForm.addEventListener("click", function(e) {
payPalForm.setAttribute('action', "https://10.0.0.25:8001/checkout/" +
$scope.user._id + "/" + $scope.viewEvent._id.valueOf() + "/" +
$scope.viewEvent.eventName + "/" + $scope.viewEvent.price);
});
Делая это, я могу успешно оформить заказ через PayPal In-Context.
В моем коде NodeJS после успешной проверки вместо return res.end();
в случае успеха или res.sendStatus(400, 'bad paypal payment');
в случае сбоя я хотел бы передать статус обратно в Angular и обработать его там.
Повторюсь: я не хочу определять внутриконтекстный маршрут PayPal в NodeJS, я хотел бы сделать это в Angular.
Мне нужно сделать это, поскольку я использую пользовательский интерфейс Onsen и использую splitter для навигации между страницами.
Кто-нибудь успешно сделал это?
ОБНОВЛЕНИЕ ПОСЛЕ ПОПЫТКИ ПЕРВОГО ОТВЕТА
Я пробовал это раньше, но после попытки реализовать ответ Ильи Скай в результате проверка PayPal In-Context выполняется неправильно. Сценарий работает правильно (что определяется выводом в терминале), но окно In-Context загружается с "?" в качестве параметра, а затем сразу закрывается. Вот скриншоты того, как я обновлял свой код. Закомментированный код — это то, что у меня было, когда я смог успешно оформить заказ, но не смог правильно перенаправить:
Я думаю, что это проблема с PayPal, и я не знаю, как ее решить.
Вот почему мне интересно, могу ли я прослушивать перенаправление в Angular, а затем загружать другую страницу при обнаружении определенного перенаправления.
Я пробовал это в своих контроллерах Angular, но он выполнялся только при загрузке начальной страницы: