我有一个奇怪的问题,我想弄清楚。
我正在使用PHP和REST API。
这是情景:
1)用户按下结账按钮
2)付款已获批准
3)执行付款
4)用户被重定向到已完成的购买页面
5)几秒钟后,调用交易的取消URL(例如,当用户点击取消并返回商家按钮,而不是批准付款时)。
在大约100笔交易中,我有3个以这种方式表现出来的所有3实际支付,以及可用的资金。我检查了服务器访问日志文件,其中2个使用ios 9.3.1,其中一个是ios 9.2.1。这怎么可能?
我的猜测是他们以某种方式点击后退按钮然后点击取消按钮,情况会是这样吗?
我的取消URL包含一个脚本,该脚本将订单状态设置为已取消,我是否应将脚本调整为仅在订单未先前执行时将状态设置为已取消。
我执行付款后是否还可以取消付款?
答案 0 :(得分:2)
我认为你应该“信任”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消息,无论是“交易正常”还是“交易错误”消息
答案 1 :(得分:1)
您的问题似乎与发布的问题类似here。
来自user2090027的被标记为回答的回复
“我们可以通过检查/维护在PayPal付款后得到的回复来解决这个问题。
我们可以使用会话或其他类似的东西在客户端或服务器上使用cookie来维护它。“
希望这有帮助。
答案 2 :(得分:0)