在 paypal js sdk 中调用 createOrder() 而不向其传递 URL?

问题描述 投票:0回答:1

我想在我的网站上添加一个按钮,登录会员可以在其中支付 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,似乎会更容易。

paypal
1个回答
0
投票

不在安全服务器上“将其传递到 URL”的集成本质上是不安全的。这种集成可以任意更改为支付 0.24 美元或其他费用,而不是支付 24.00 美元。

PayPal 出于这个原因弃用了它们,现在需要一个用于创建和捕获订单的服务器 - 除非来自 https://www.paypal.com/buttons 的非常简单的“支付链接和按钮”满足您的需求。

© www.soinside.com 2019 - 2024. All rights reserved.