我们正在使用 PayPal Checkout 服务器端 PHP(带有 PayPal JavaScript SDK 的 Orders v2 REST API)。很长一段时间以来,我们一直遇到一个问题,几乎 2-5% 的订单没有成功重定向到成功页面。一旦付款成功(在我们定制的电子商务中),重定向就会从 JavaScript 发生:
onApprove: function(data, actions) {
...
let captureStatus = resData.data.purchase_units[0].payments.captures[0].status;
if (resData.ack && captureStatus == 'COMPLETED') {
window.location.href = 'kasse.html?schritt=3';
}
}
我们可以从服务器端进行此重定向吗?
批准发生在客户端,因此重定向必须发生在客户端,但您可以做的是移动进行重定向的位置。本质上:
onApprove: function(data, actions) {
window.location.href = 'kasse.html?schritt=3&orderid=' + data.id;
}
然后,在您重定向到的页面上,立即继续捕获并显示结果。
(如果您希望在捕获之前在重定向页面上有一个审核步骤/操作,您可以在订单创建请求中设置一个 user_action = CONTINUE 参数,但您的问题没有提到这一点,因此可以保留默认的 PAY_NOW行为并立即捕获)