【发布时间】:2021-02-19 16:51:26
【问题描述】:
我正在使用Smart Payment Buttons 与 PayPal 集成,我需要捕获用户按下“Pay With PayPal”时生成的 trxId,当我在控制台上打印信息时,我可以看到我需要的值,但是在调试或尝试获取 var 的值时,我总是不确定,我错过了什么?
下面有一张图片可以解释问题
到目前为止,我唯一的猜测是存在某种安全措施阻止获取此值?
【问题讨论】:
标签: javascript paypal
我正在使用Smart Payment Buttons 与 PayPal 集成,我需要捕获用户按下“Pay With PayPal”时生成的 trxId,当我在控制台上打印信息时,我可以看到我需要的值,但是在调试或尝试获取 var 的值时,我总是不确定,我错过了什么?
下面有一张图片可以解释问题
到目前为止,我唯一的猜测是存在某种安全措施阻止获取此值?
【问题讨论】:
标签: javascript paypal
调用 createOrder 时没有事务。买家当时甚至还没有登录,更不用说得到他们的批准,更不用说成功捕获了。
只有在成功捕获后才会创建事务。
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
console.log(details); //Transaction's ID will be within this object
});
}
以上在客户端捕获——但您不应该在客户端捕获然后将数据发送到服务器。
如果您需要对事务 ID 执行任何重要操作(例如将其存储在数据库中),则应该使用服务器端集成。为此创建两条路线,一条用于“创建订单”,一条用于“捕获订单”,documented here。这些路由应该返回 JSON 数据。
将您的两条路线与以下批准流程配对:https://developer.paypal.com/demo/checkout/#/pattern/server
不过,再次阅读您的问题时,您提到了“在单击按钮时”的 ID,因此您的意思可能是询问 订单 ID 而不是交易 ID。知道订单 ID 的最明显和最好的方法是直接在您自己的服务器上创建它。
【讨论】:
.then() 中——但同样,你应该只是从服务器上做这一切