支付执行后调用的PayPal REST API取消URL

时间:2016-05-06 22:00:59

标签: rest paypal paypal-rest-sdk

我有一个奇怪的问题,我想弄清楚。

我正在使用PHP和REST API。

这是情景:

1)用户按下结账按钮

2)付款已获批准

3)执行付款

4)用户被重定向到已完成的购买页面

5)几秒钟后,调用交易的取消URL(例如,当用户点击取消并返回商家按钮,而不是批准付款时)。

在大约100笔交易中,我有3个以这种方式表现出来的所有3实际支付,以及可用的资金。我检查了服务器访问日志文件,其中2个使用ios 9.3.1,其中一个是ios 9.2.1。这怎么可能?

我的猜测是他们以某种方式点击后退按钮然后点击取消按钮,情况会是这样吗?

我的取消URL包含一个脚本,该脚本将订单状态设置为已取消,我是否应将脚本调整为仅在订单未先前执行时将状态设置为已取消。

我执行付款后是否还可以取消付款?

3 个答案:

答案 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)

这是一个古老的问题,但是我本人已经建立了PayPal集成,所以我想添加一些有关其发生原因的信息。

如果用户在完成付款后最终进入您的“返回”页面,并点击“后退”按钮,他们将获得如下所示的PayPal页面:

Your payment was completed. To continue shopping, please return to the merchant. (Return to merchant button)

如果他们单击“返回商家”,它们将被发送到您的/ cancel URL。因此,如果您获得其中之一并且付款已经完成,则可以向他们显示付款确认页面。