我有一个Paypal Smart Payments Button集成设置,几乎完全遵循the documentation上给出的格式。它通过JS SDK创建订单,然后在onApprove回调中具有actions.order.capture方法,如下所示:
paypal.Buttons({
createOrder: (data, actions) => {
return actions.order.create({
purchase_units: [{
amount: {
value: get_gross()
}
}],
application_context: {
brand_name: '...',
shipping_preference: 'NO_SHIPPING'
}
})
},
onApprove: (data, actions) => {
actions.order.capture().then((details) => {
return fetch('/paypal/donate', {
method: 'POST',
headers: { 'content-type': 'application/json' },
body: JSON.stringify({
...
})
}).then((response) => {
if (response.ok) {
...
} else {
...
}
});
});
}
}).render('#donate_button_container');
问题是,一旦流程完成,我将在网站后端获得响应,表明订单已完成,这与在Paypal沙箱仪表板上的显示退款已被扣除一样,但在sandox促进者帐户中余额中未出现任何资金。它们显示为已完成的事务,但余额不会更新。两个帐户都经过验证,因此应该能够发送和接收资金。
我是否错过了付款捕获工作原理的某个步骤?据我所知,付款应立即记入余额,这是我需要做的,因为我的后端必须在付款完成后在其他两个帐户之间分配付款,但由于以下原因,目前无法执行此操作资金不足错误。
谢谢!
编辑:我的一个团队成员发现,在Paypal后端中将状态设置为“已发货”会导致资金被清算,这不应该发生,因为shipping_preference设置为NO_SHIPPING。无论如何,有没有要覆盖此/设置要通过API发货的订单?