Paypal Payments Standard不返回iPad上的支付变量



我刚刚使用贝宝支付标准完成了一个网站的开发,在大多数计算机上一切都很好,但贝宝不会在iPad(可能还有其他设备)上返回任何支付变量。

我创建了自己的购物车,并使用立即购买功能来支付整个订单。Buy Now表单将RETURN变量设置为购物车页面,RM变量设置为2,应将变量发布回购物车页面。

付款完成后,购物车页面会检查已发布的付款变量,并将其记录到数据库中。

如前所述,这在大多数计算机上都能完美工作。不过,在iPad上,用户会返回购物车页面,但不会发布任何支付变量。这与将RM变量更改为1时相同,后者应将变量作为GET参数发送。

您可以在以下位置查看代码和工作网站:http://unameit.ch/

这并不能完全解决您的问题,但会解决问题,而且无论如何都会对您更好。

使用返回URL不是将数据输入数据库的好方法,因为即使启用了自动返回,也不能保证用户会返回到您的返回URL。在这种情况下,代码永远不会运行,数据也永远不会进入数据库。

相反,您应该使用IPN。无论用户是否返回您的网站,IPN都将被触发。它与PDT非常相似,只是它没有将数据张贴回返回URL,而是将数据张贴到与结账页面不同的单独侦听器脚本中。它是实时发生的,所以结果会和你现在试图做的一样,但无论用户是否回到你的网站,它都会一直工作,你也不必担心像你在这里遇到iPad交易这样的问题。

我强烈建议你这样做,否则你会发现你的数据库中缺少订单数据,即使你最终解决了这个特定的问题。

我在手动回调方面遇到了同样的问题,并一直在与PayPal技术支持人员交谈。他们一致认为,在移动/平板电脑设备上工作存在漏洞。基本上,如果你去移动PayPal网站付款,你不会得到任何数据张贴回你的返回URL:

他们告诉我们使用ExpressCheckoutAPI:

"是的,ExpressCheckout在所有平台上都能正常工作。事实上,我发现mobileWPS结账是围绕ExpressCheckout,这就是您的数据被截断的原因。一些数据在从WPS到EC的翻译过程中丢失。">

很抱歉这不是一个答案,但至少我们知道PayPal知道这是一个错误。

最新更新