我确定这是一个愚蠢的问题,但我对后端很新,所以请原谅我。
我正在使用express / node构建一个angularjs应用程序,并且我正在尝试集成PayPal(作为Node.js SDK),我想要的是从角度控制器调用SDK上的pay方法而我正在做如下:
点击按钮:
// controller
$scope.pay = function(amount) {
PaymentFactory.doPayment(amount);
}
付款工厂:
// PaymentFactory
return {
doPayment: function(amount) {
$http.get("../../../server/payments/paypal.js")
.then(function(response) {
console.log( response );
})
}
}
然后服务器端文件如下:
require('paypal-adaptive');
var app = require('../../server.js');
var PayPal = require('paypal-adaptive');
var paypalSdk = new PayPal({
userId: 'userid',
password: 'password',
signature: 'signature',
sandbox: true //defaults to false
});
var payload = {
requestEnvelope: {
errorLanguage: 'en_US'
},
actionType: 'PAY_PRIMARY',
currencyCode: 'GBP',
feesPayer: 'EACHRECEIVER',
memo: 'Chained payment example',
cancelUrl: 'returnUrl,
returnUrl: 'cancelUrl',
receiverList: {
receiver: [
{
email: 'email1',
amount: '3.40',
primary:'true'
},
{
email: 'email2',
amount: '1.20',
primary:'false'
}
]
}
};
paypalSdk.pay(payload, function (err, response) {
if (err) {
console.log(err);
} else {
// Response will have the original Paypal API response
// But also a paymentApprovalUrl, so you can redirect the sender to checkout easily
console.log('Redirect to %s', response.paymentApprovalUrl);
return response;
}
});
当然get请求只返回一个服务器端文件内容的字符串,我理解为什么上面的内容不起作用但不确定如何使它工作。我的目标是从角度工厂调用PayPal SDK并获取响应,以便我可以将用户重定向到URL。一个直接的解决方案会有所帮助,但更重要的是,我需要指向我不理解的原则,就如何在用户操作上调用函数从服务器端获取此数据。我尝试过搜索,但实际上并不是我在搜索中使用的语言。
答案 0 :(得分:0)
您需要做的就是使用curl(node-curl npm模块)。使用curl将帮助您将数据发布到您的PayPal网址并获得回复。现在你需要从paypal处理这个响应,并相应地生成你自己的响应,以便通过角度http方法接收。