gpt4 book ai didi

angularjs - 如何在 AngularJS 而不是 NodeJS 中处理来自 PayPal In-Context 的响应

转载 作者:太空宇宙 更新时间:2023-11-03 15:54:39 25 4
gpt4 key购买 nike

在通过 paypal-rest-sdk 使用 PayPal In-Context 结账后,我无法从服务器端 NodeJS 代码获得响应。

我有一个用 html 定义的 PayPal 表单,有意没有定义操作。我只定义了id和方法(get)。在我的 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,并在那里处理。

重申一下:我不想在 NodeJS 中定义 post PayPal In-Context 路由,我想在 Angular 中定义它。

我需要这样做,因为我正在使用 Onsen UI ,并且正在使用 splitter在页面之间导航。

有人成功过吗?

尝试第一个答案后更新

我以前试过这个,但在尝试实现 Ilia Sky 的回答后,结果是 PayPal In-Context 结账没有正确执行。脚本运行正确(由终端中的输出确定),但上下文窗口加载“?”作为参数,然后立即自行关闭。这是有关我如何更新代码的屏幕截图。注释掉的代码是我能够成功结帐但无法正确重定向时所拥有的代码: Controller Service

我认为这是 PayPal 的问题,我不确定如何解决。

这就是为什么我想知道我是否可以在 Angular 中监听重定向,然后在识别到某个重定向时加载不同的页面。

我在我的 Angular Controller 中试过这个,但它只在初始页面加载时执行: enter image description here

最佳答案

我可能是错的,但据我了解你想做的是:

  1. 发送数据到服务器(到https://10.0.0.25:8001/checkout/...)
  2. 在服务器上做一些事情并给出响应(res.send 等)
  3. 处理客户端的响应

对吧?

要做到这一点,最简单的解决方案就是向服务器发送 ajax 请求,然后处理响应。

这意味着您可以直接通过 js 发出请求,而不是更改 action 属性。使用 $http 可以完成的 angular.service 。

$http.post('https://10.0...').then(successCallback, errorCallback);

并且在 success|errorCallback 中你可以做任何你想做的事,比如在拆分器中加载一个页面或任何你想做的事:)

要更改尝试提交表单时发生的情况,您可以查看 ng-submit .

要获得 $http,您只需将其添加到 Controller 的参数列表中即可。

例子

app.controller('ExampleController', function($scope, $http) {
$scope.submit = function() {
$http.post('your/long/url').then(function(response) {
mySplitter.content.load('success-page.html');
}, function(response) {
mySplitter.content.load('error-page.html');
});
};
}]);

<form ng-submit="submit()" ng-controller="ExampleController">
...
</form>

关于angularjs - 如何在 AngularJS 而不是 NodeJS 中处理来自 PayPal In-Context 的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38858155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com