服务器如何知道通过PayPal客户端REST API真正付款



我正在寻找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确认

确认参考在两个表中,金额匹配

最新更新