javascript - PayPal 智能按钮:是否有任何方式 onApprove 在付款未完成的情况下运行?
问题描述
因此,我有一个使用 PayPal 智能按钮的网站,并且我有一个代码,可以在买家购买产品时向他发送产品。它使用 PHP 文件来发送产品。
我有在 onApprove 函数运行时调用 PHP 的 javascript 代码。
我知道这不是最安全的方法,但我发现使用 API 真的很困难,而且这样做需要很多时间,所以我决定这样做。
但是当我没有在 PayPal 上收到钱时,我遇到了一个问题,但程序会将产品发送给他们。它有时有效,有时无效。
我确信 PHP 代码只能在 onApprove 运行时运行,所以这不是问题。
有没有什么方法可以在没有完成付款的情况下运行 onApprove?
解决方案
当然是。每当客户批准onApprove
付款时运行,这意味着他们点击了最终批准操作,通常表述为“立即付款”。这并不意味着付款已被捕获/完成,从而导致了 PayPal 交易。
通常onApprove
你会做类似 call的事情actions.capture()
,所以如果成功(并且只有成功)你会想要触发你的 PHP 代码。更安全的实现是调用您的 PHP 代码并让它在服务器端执行 v2/orders 捕获 API 调用,但这取决于您。这是这种服务器端集成模式的演示:https ://developer.paypal.com/demo/checkout/#/pattern/server
或者,您也可以尝试定义一个onComplete
函数来调用您的 PHP 代码。
推荐阅读
- python - 奇怪的mysql.connector.errors.ProgrammingError:SQL语句中没有使用所有参数
- javascript - 单击功能后,随机化背景视频与声音
- reactjs - api调用的自定义文件
- emeditor - 使用 Javascript 在 Emeditor 中使用自定义名称保存文本文件
- javascript - 如何优化我的代码,使其可以有效运行?
- laravel - 为什么子域在 Ubuntu nginx 服务器中不起作用?
- java - 计算 Selenium 中事件处理程序的调用次数
- tensorflow - 如果您有分类任务,您是否总是需要 one-hot 编码
- flutter - 如何使用 appium 在 Flutter 应用程序上运行测试
- r - 错误延迟加载失败包'devtools'