如何在用户批准后取消 Paypal 订单? (API v2)
How to cancel a Paypal Order after user approvation? (API v2)
我实际上正在尝试创建一个使用 Papal API v2.
的应用程序
我成功创建排序器并在沙盒上赚钱。
我使用 JS Paypal 方法 onApprove 调用 order.capture 来获取订单并在我的系统上创建订阅。
但是,如果我的服务器端代码出现问题,如果出现问题,我如何阻止 paypal API 上的订单以停止从用户那里收钱?
paypal.Buttons({
locale: 'it_IT',
style: {
shape: 'pill',
color: 'blue',
layout: 'vertical',
label: 'buynow',
fundingicons: 'true',
},
createOrder: function (data, actions) {
return actions.order.create(my_PlanOrderDef);
},
onApprove: function (data, actions) {
console.log(data)
console.log(actions)
return actions.order.capture().then(function (details) {
if (!CloseProcess(details)) {
console.log("FAIL! HERE SOMETHING GOING BAD ON MY LOGIC, AND I NEED TO CANCEL THE ORDER PAYMENT");
return false;
}
});
},
onError: function (err) {
console.log(err);
}
}).render('#btnPaypalContainer');
CloseProcess 方法只是调用我的服务器端逻辑来在我的系统上创建订阅。
我可能错过了 paypal v2 逻辑中的某些内容,所以向我道歉,有什么想法可以完成这个任务吗?
谢谢
订单创建后,72 小时内有效。
订单获得批准后,有效期为 3 小时。
没有取消订单的方法。
如果您不想使用某个订单,请丢弃它的 ID 并且不要捕获它。
要更改为订单创建和捕获的服务器端集成,请遵循 Set up standard payments guide and make 2 routes on your server, one for 'Create Order' and one for 'Capture Order', documented here。两条路线都应该 return 只有 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id
,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)立即 在 将您的 return JSON 转发给前端呼叫者之前。
将这 2 条路线与前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server
我实际上正在尝试创建一个使用 Papal API v2.
的应用程序我成功创建排序器并在沙盒上赚钱。 我使用 JS Paypal 方法 onApprove 调用 order.capture 来获取订单并在我的系统上创建订阅。 但是,如果我的服务器端代码出现问题,如果出现问题,我如何阻止 paypal API 上的订单以停止从用户那里收钱?
paypal.Buttons({
locale: 'it_IT',
style: {
shape: 'pill',
color: 'blue',
layout: 'vertical',
label: 'buynow',
fundingicons: 'true',
},
createOrder: function (data, actions) {
return actions.order.create(my_PlanOrderDef);
},
onApprove: function (data, actions) {
console.log(data)
console.log(actions)
return actions.order.capture().then(function (details) {
if (!CloseProcess(details)) {
console.log("FAIL! HERE SOMETHING GOING BAD ON MY LOGIC, AND I NEED TO CANCEL THE ORDER PAYMENT");
return false;
}
});
},
onError: function (err) {
console.log(err);
}
}).render('#btnPaypalContainer');
CloseProcess 方法只是调用我的服务器端逻辑来在我的系统上创建订阅。 我可能错过了 paypal v2 逻辑中的某些内容,所以向我道歉,有什么想法可以完成这个任务吗?
谢谢
订单创建后,72 小时内有效。
订单获得批准后,有效期为 3 小时。
没有取消订单的方法。
如果您不想使用某个订单,请丢弃它的 ID 并且不要捕获它。
要更改为订单创建和捕获的服务器端集成,请遵循 Set up standard payments guide and make 2 routes on your server, one for 'Create Order' and one for 'Capture Order', documented here。两条路线都应该 return 只有 JSON 数据(没有 HTML 或文本)。在第二条路线中,当捕获 API 成功时,您应该将其生成的付款详细信息存储在您的数据库中(特别是 purchase_units[0].payments.captures[0].id
,这是 PayPal 交易 ID)并执行任何必要的业务逻辑(例如发送确认电子邮件或预订产品)立即 在 将您的 return JSON 转发给前端呼叫者之前。
将这 2 条路线与前端批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server