发送请求时从 PayPal 按钮 API 获取 trxId

Getting trxId from PayPal buttons API when sending the request

我正在使用 Smart Payment Buttons 与 PayPal 集成,当我在控制台上打印信息时,我需要捕获用户按下“使用 PayPal 付款”时生成的 trxId,我可以看到我需要的值,但是在调试或尝试获取 var 的值时,我总是得到 undefined,我错过了什么?

下面有一张图片解释了这个问题

到目前为止,我唯一的猜测是存在某种安全措施阻止获取此值?

调用 createOrder 时没有交易。买家当时甚至还没有登录,更不用说获得他们的批准,更不用说成功捕获了。

交易仅在成功捕获后创建。

            onApprove: function(data, actions) {
                return actions.order.capture().then(function(details) {
                    console.log(details); //Transaction's ID will be within this object
                });
            }

以上是在客户端捕获 -- 但您不应该在客户端捕获然后将数据发送到服务器。

如果您需要对交易 ID 做任何重要的事情(例如将其存储在数据库中),您应该改用服务器端集成。为此创建两条路线,一条用于 'Create Order',一条用于 'Capture Order'、documented here。这些路线应该 return JSON data.

将您的两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server


不过,再次阅读您的问题时,您提到了“在单击按钮时”的 ID,因此您可能想询问 订单 ID 而不是交易ID。那么了解订单 ID 的最明显和最好的方法是直接在您自己的服务器上创建它。