我是Angular的新手,我正在尝试将贝宝集成为支付网关。我不知道遵循的流程
paypal
.Buttons({
createOrder: (data, actions) => {
return actions.order.create({
purchase_units: [
{
description: this.data.description,
amount: {
currency_code: 'EUR',
value: 200
}
}
]
});
},
onApprove: async (data, actions) => {
console.log(data);
this.bookPackage(data);
},
onError: err => {
console.log(err);
}
})
.render(this.paypalElement.nativeElement);
我假设我打电话给支付网关进行交易,如果交易成功,我会打电话给我的服务器,在onApprove回调中预订包裹。但是,如果我的BookPackageapi调用失败,我该怎么办。如何撤消交易?
批准后(在onApprove中(您需要捕获或至少授权PayPal订单。
捕获(或授权(比您的bookPackage后端调用更有可能失败(例如,如果信用卡被拒绝(,因此您应该首先执行PayPal捕获/授权。然后做你的书包。最后,如果您进行了授权,则最终需要捕获为第三个API调用。
[如果您因bookPackage失败而需要"撤消"交易,请退还捕获费用,或者如果您仅获得授权,则取消授权。]
为了获得最佳结果,您应该使用服务器端集成,并从服务器端执行所有操作。
以下是要使用的前端代码:https://developer.paypal.com/demo/checkout/#/pattern/server
您至少需要两条路线,"设置交易"(意图:捕获或授权(,第二条路线用于"捕获交易"https://developer.paypal.com/docs/checkout/reference/server-integration/
(当然,如果你要走更复杂的多步路线,也可以授权(