PayPal 智能按钮:是不是有任何方式 onApprove 在付款未完成的情况下运行?
Posted
技术标签:
【中文标题】PayPal 智能按钮:是不是有任何方式 onApprove 在付款未完成的情况下运行?【英文标题】:PayPal Smart Buttons: Is there any way onApprove runs without the payment having completed?PayPal 智能按钮:是否有任何方式 onApprove 在付款未完成的情况下运行? 【发布时间】:2020-06-24 21:05:13 【问题描述】:所以我有一个使用 PayPal 智能按钮的网站,并且我有一个代码,可以在买家购买产品时向他发送产品。它使用 php 文件来发送产品。
我有在 onApprove 函数运行时调用 PHP 的 javascript 代码。
我知道这不是最安全的方法,但我发现使用 API 真的很困难,而且要花很多时间,所以我决定这样做。
但是当我在 PayPal 上没有收到钱,但程序将产品发送给他们时,我遇到了问题。它有时有效,有时无效。
我确信 PHP 代码只有在 onApprove 运行时才能运行,所以这不是问题。
onApprove 有没有在付款未完成的情况下运行的方法?
【问题讨论】:
【参考方案1】:是的,当然。只要客户批准付款,onApprove
就会运行,这意味着他们点击了最终批准操作,通常表述为“立即付款”。这不意味着付款已被捕获/完成,从而导致 PayPal 交易。
通常在onApprove
中,您会执行类似调用actions.capture()
的操作,因此如果成功(并且仅在成功的情况下)您会想要触发您的PHP 代码。更安全的实现是调用您的 PHP 代码并让它在服务器端执行 v2/订单捕获 API 调用,但这取决于您。下面是这种服务器端集成模式的演示:https://developer.paypal.com/demo/checkout/#/pattern/server
或者,您也可以尝试定义一个 onComplete
函数来调用您的 PHP 代码。
【讨论】:
您好,感谢您的回复。所以我的代码中有一个actions.capture()
。这是我的代码:onApprove: function(data, actions) return actions.order.capture().then(function(details) //This is where i send the product ); ,
您在发送产品之前是否检查捕获是否成功?
我已经发送了我的代码,这就是它所做或检查的全部内容。你能给我一个例子来说明你的意思吗?
如果您不明白我在说什么,请尝试改用onCompleted
您能否发送另一个答案,例如我应该在代码中更改什么或应该输入什么?我已经发送了我的代码。我应该改变什么?我也搜索了 OnCompleted ,但我找不到任何关于它的作用或我应该如何实现它的信息。你能发一个例子吗,我将不胜感激。以上是关于PayPal 智能按钮:是不是有任何方式 onApprove 在付款未完成的情况下运行?的主要内容,如果未能解决你的问题,请参考以下文章