我正在寻找paypal Interactive集成演示链接。
在用户完成付款流程后的某个时刻,客户端达到代码:
// onAuthorize() is called when the buyer approves the payment
onAuthorize: function(data, actions) {
// Make a call to the REST api to execute the payment
return actions.payment.execute().then(function() {
window.alert('Payment Complete!');
});
}
在实际情况下,我可能想向服务器发送指令以运送产品或更新用户计划。它可能是通过HTTP POST请求完成的。
服务器如何知道确实付款了,这不是黑客手动发送HTTP POST请求的结果?
actions.payment.execute()
之后您可以致电服务器,然后拨打 GET
调用以验证付款已完成:https://developer.paypal.com/docs/integration/integration/integration/direct/direct/direct/express-Neckeckout/Integration-jsv4/Advanced-Payments-api/show-Pay-details/
您的想法是正确的,服务器不知道付款是否真的进行。该客户端API旨在用于诸如捐赠之类的东西,在此内容中不需要任何服务器请求。然后可以使用客户端回调显示"谢谢"注释或与用户类似。
在大多数情况下(例如在线商店等),您将需要使用服务器API。这样, paypal服务器将向您的服务器发送请求,因此您可以验证它确实是真正的付款确认。
1)在数据库中生成一个包括付款详细信息的唯一参考服务器端。例如:
我的贝宝参考表
|金额:$ 1.00 |参考:ECHI5786786 |
2)在借鉴付款之前,请在交易对象中通过付款参考。
"transactions": [
{
"amount": {
"total": "1.99",
"currency": "USD"
},
"soft_descriptor": "ECHI5786786" //this is your unique reference
]
3)在您的PayPal应用程序配置中,在开发人员网站上,将网络钩设置为"已完成付款销售"的服务器。PayPal将使用交易详细信息(包括唯一参考)致电您的URL。在数据库中记录详细信息。例如
我的PayPal确认已完成的付款表
|支付的金额:$ 1.00 |参考:ECHI5786786 |
4)当PayPal确认付款是完整的客户端时,请将请求发送到您的服务器以确认付款详细信息
// Make a call to the REST api to execute the payment
return actions.payment.execute().then(function() {
//ajax to your server here with "soft_descriptor"
//if ajax success, then all good
});
Serveride确认
确认参考在两个表中,金额匹配