我想在我的网站上添加一个按钮,登录会员可以在其中支付 24.00 美元的年费。为此,我正在查看 https://developer.paypal.com/demo/checkout/ 但整个
createOrder()
位对我来说没有多大意义:
// Call your server to set up the transaction
createOrder: function(data, actions) {
return fetch('/demo/checkout/api/paypal/order/create/', {
method: 'post'
}).then(function(res) {
return res.json();
}).then(function(orderData) {
return orderData.id;
});
},
为什么我要向其传递一个 URL?我唯一想向 PayPal 传递的信息是收取的金额为 24.00 美元。必须创建一个 URL 端点来将该信息传达给 PayPal 似乎过于冗长。
对于
onApprove
,URL 是有意义的。我想记录这样一个事实:会员成功在数据库中付款,只有服务器端代码才能写入。根据https://developer.paypal.com/docs/api/orders/v2/#orders_capture的示例响应,我认为我应该获得付款人的电子邮件地址,我可以将其与我的数据库中的用户。
但是对于
createOrder()
来说,这对我来说没有任何意义。我的意思是,也许有些用例我没有考虑,其中传递 URL 的能力会很有用,但我认为我的情况并非如此。就像在我的情况下,如果我可以向它传递一个包含我想要收取的金额的 JSON,似乎会更容易。
不在安全服务器上“将其传递到 URL”的集成本质上是不安全的。这种集成可以任意更改为支付 0.24 美元或其他费用,而不是支付 24.00 美元。
PayPal 出于这个原因弃用了它们,现在需要一个用于创建和捕获订单的服务器 - 除非来自 https://www.paypal.com/buttons 的非常简单的“支付链接和按钮”满足您的需求。