我有一个奇怪的问题,我想弄明白。
我正在使用 PHP 和 REST API。
这是场景:
1) 用户按下结帐按钮
2) 付款被批准
3) 付款执行
4) 用户被重定向到完成的购买页面
5) 几秒钟后,调用交易的取消 URL(例如当用户点击取消并返回商户按钮,而不是批准付款时)。
在大约 100 笔交易中,我有 3 笔以这种方式显示在所有 3 笔交易中,实际付款以及可用资金。我检查了服务器访问日志文件,其中 2 个使用的是 ios 9.3.1,一个是 ios 9.2.1。这怎么可能?
我的猜测是他们以某种方式点击了后退按钮,然后点击了取消按钮,是这样吗?
我的取消 URL 包含一个将订单状态设置为已取消的脚本,如果之前未执行过订单,我是否应该调整脚本以仅将状态设置为已取消。
在我执行付款后,还有人可以取消付款吗?
最佳答案
我认为您应该“信任”PayPal 发送的 IPN 消息,而不是 ok/cancel 返回 url。
https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNIntro/
ok/cancel url 应该只用于向用户显示信息
让 PayPal 知道您的 IPN 端点(将接收 IPN GET/POST 消息的脚本)。调用脚本后,相应地更新数据库
这样做用户将无法搞砸交易,您保证会收到 1 条 IPN 消息,无论是“交易成功”还是“交易错误”消息
关于rest - 执行付款后调用的 PayPal REST API 取消 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37082046/