PayPal:是否可以仅凭订单id/详细信息支付订单



我试图在后端创建订单,然后将订单id传递给智能按钮的javascript,这样我就可以在不允许用户编辑订单的情况下执行订单。我以前在订阅中成功地做到了这一点,创建了一个计划,然后传入计划id来执行付款,但我不知道用什么按钮操作来处理订单。我该怎么做?

以下是我在后端的操作方式:

headers = {
"Content-Type": "application/json",
"Authorization": bearer_token,
}
data = {
"intent": "CAPTURE",
"purchase_units": [
{
"amount": {
"currency_code": "GBP",
"value": str(order.credits)
}
}
]
}
response = requests.post('https://api-m.sandbox.paypal.com/v2/checkout/orders', headers=headers, json=data).json()
order_id = response["id"]
context = {
'order_id': order_id,
}

这是我在前端尝试过的:

paypal.Buttons({
style: {
size: 'responsive',
},
createOrder: function(data, actions) {
return actions.order.create({
"id": "{{ order_id }}"
});
},
onApprove: function(data, actions) {

}
}).render('#paypal-button-container'); /

不要使用actions.order.create或actions.order.capture。只需在前一种情况下返回id即可。

请参阅上的代码示例https://developer.paypal.com/demo/checkout/#/pattern/server

paypal.Buttons({
// Call your server to set up the transaction
createOrder: function(data, actions) {
return fetch('/some/path/on/your/server/paypal-order-create', {
method: 'post'
}).then(function(res) {
return res.json();
}).then(function(orderData) {
return orderData.id;
});
},

最新更新