首页 > 解决方案 > PayPal 智能按钮:是否有任何方式 onApprove 在付款未完成的情况下运行?

问题描述

因此,我有一个使用 PayPal 智能按钮的网站,并且我有一个代码,可以在买家购买产品时向他发送产品。它使用 PHP 文件来发送产品。

我有在 onApprove 函数运行时调用 PHP 的 javascript 代码。

我知道这不是最安全的方法,但我发现使用 API 真的很困难,而且这样做需要很多时间,所以我决定这样做。

但是当我没有在 PayPal 上收到钱时,我遇到了一个问题,但程序会将产品发送给他们。它有时有效,有时无效。

我确信 PHP 代码只能在 onApprove 运行时运行,所以这不是问题。

有没有什么方法可以在没有完成付款的情况下运行 onApprove?

标签: javascriptphppaypal

解决方案


当然是。每当客户批准onApprove付款时运行,这意味着他们点击了最终批准操作,通常表述为“立即付款”。这并不意味着付款已被捕获/完成,从而导致了 PayPal 交易。

通常onApprove你会做类似 call的事情actions.capture(),所以如果成功(并且只有成功)你会想要触发你的 PHP 代码。更安全的实现是调用您的 PHP 代码并让它在服务器端执行 v2/orders 捕获 API 调用,但这取决于您。这是这种服务器端集成模式的演示:https ://developer.paypal.com/demo/checkout/#/pattern/server

或者,您也可以尝试定义一个onComplete函数来调用您的 PHP 代码。


推荐阅读