将PayPal与使用身份验证头的后端集成


var create_payment_json = {
intent: "sale",
payer: {
payment_method: "paypal"
},

redirect_urls: {
return_url: "http://0c95effc2751.ngrok.io/success",
cancel_url: "http://0c95effc2751.ngrok.io/cancel"
},...}

paypal.payment.create(create_payment_json, function (error, payment) {
if (error) {
console.log(error)
throw error;
} else {
for(let i = 0;i < payment.links.length;i++){
if(payment.links[i].rel === 'approval_url'){
console.log(payment.links[i].href)

res.redirect(payment.links[i].href);
}
}
}
});

在我的后端Node.js代码中,我使用中间件来要求身份验证,这样所有路由都可以通过授权头访问。在PayPal页面上批准付款后,重定向回成功路线时没有此授权标头,因此不幸的是,无法访问成功路线。如何解决这一问题?

最好的解决方案是不使用任何重定向。完全

相反,在您的服务器上创建两条路由,一条用于"创建订单",另一个用于"捕获订单",记录在此处。这些路由应该只返回JSON数据(不返回HTML或文本(。后一个在返回(特别是purchase_units[0].payments.captures[0].id,PayPal交易ID(之前,应该(一旦成功(将付款详细信息存储在您的数据库中

将这两条路线与以下审批流配对:https://developer.paypal.com/demo/checkout/#/pattern/server

最新更新