我维护PayPal集成,该集成使用PayPal HTML按钮并使用IPN确认付款。该系统已投入生产超过5年。
系统会将cancel_return
变量设置为每个订单的唯一网址。如果此URL被点击(即如果客户在paypal取消并被发送到此URL),它首先检查会话,以确保用户点击URL与发起订单的用户相同,然后取消订单。
我注意到即使PayPal的交易成功,最近几笔交易也被取消了。
日志显示客户正在点击cancel_return
网址 - 在某些情况下,只是在收到IPN之后,有一次是在收到IPN之前。
我发现至少有一种方法可以重现这种行为:
然后我收到一条消息,说明"您的付款已完成。要继续购物,请返回商家。"提供了一个按钮:"返回merchant name
"。
单击此按钮可将用户带到cancel_return
URL !!
PayPal documentation cancel_return
说
PayPal重定向买家的网址'浏览器,如果他们在完成付款前取消结帐。例如,在您的网站上指定一个显示"已取消的付款"页。 默认 - PayPal将浏览器重定向到PayPal网页。
我的问题是这是否是PayPal的故意更改 - 如果是这样我希望它会破坏许多网站 - 或者如果这是一个错误。我无法在PayPal上找到错误报告。
答案 0 :(得分:1)
是的,他们改变了cancel_url
的含义,尽管他们并未承认这是一个错误或故意改变。这绝对是我认为的错误(如上面的问题所述)。
除了上面的步骤(使用后退按钮进行复制)之外,我在服务器日志中找到了客户点击跟踪,其中客户被发送到cancel_url
,而不是使用后退按钮,在PayPal之后不久发送IPN确认他们的付款成功。我确认客户不想取消,也没有做任何故意取消订单。不幸的是,我找不到重现的方法。
我在www.paypal-techsupport.com注册并提交了有关此问题的门票。经过几次交流,我得到的最终结果是:
这是我从工程师那里收到的信息。 当客户点击后退按钮时,它会产生预期的行为,它将返回到cancel_url。
我们建议您进行一些修改,以便在客户转到cancel_url时不会取消订单。
由于这样的客户支持不佳,我将来不会向任何客户推荐PayPal。
答案 1 :(得分:0)
你可以在这里发布,PayPal的人可以拿起来..... https://www.paypal-community.com/t5/Merchant-Technical-Support/ct-p/mts