我刚刚使用 Paypal Payments Standard 完成了一个网站的开发,所有这些都在大多数计算机上运行得很好,但是paypal并没有在iPad(以及其他设备)上返回任何支付变量。 / p>
我创建了自己的购物车,并使用立即购买功能来支付整个订单。 立即购买表单将RETURN变量设置为购物车页面,RM变量设置为2,应将变量发布回购物车页面。
付款完成后,购物车页面会检查已过帐的付款变量并将其记录到数据库中。
如上所述,这在大多数计算机上都能很好地工作。 但是,在iPad上,用户返回购物车页面,但未发布任何付款变量。将RM变量更改为1时也是如此,该变量应将变量作为GET参数发送。
查看代码和工作网站答案 0 :(得分:1)
这不是您问题的答案,但可以解决问题,无论如何都会对您有所帮助。
使用返回URL不是将数据导入数据库的好方法,因为即使启用了自动返回,也无法保证用户将其返回到返回URL。在这种情况下,该代码永远不会运行,数据永远不会进入您的数据库。
相反,您应该使用的是IPN。无论用户是否将其恢复到您的网站,都会触发IPN。它与PDT非常相似,除了将数据POST回到返回URL之外,它将POST发送到除了结帐页面之外的单独的侦听器脚本。它实时发生,因此结果将与您现在尝试的结果相同,但无论用户是否将其恢复到您的网站,它都将始终有效,您不必担心关于你在iPad交易中遇到的问题。
我强烈建议你这样做,否则你会发现你的数据库中缺少订单数据,即使你最终解决了这个问题。
答案 1 :(得分:0)
我遇到了与手动回调相同的问题,并且一直在与PayPal技术支持人员交谈。他们同意在移动/平板电脑设备上存在此问题。基本上,如果您前往移动PayPal网站进行付款,您将无法将任何数据发回您的返回网址:
他们告诉我们改用ExpressCheckoutAPI:
"是的,ExpressCheckout在所有平台上都没有任何问题。 事实上,我发现mobileWPS结账是围绕着 ExpressCheckout,这就是你的数据被砍掉的原因。 从WPS到EC的翻译中丢失了一些数据。"
很抱歉,这不是答案,但至少我们知道PayPal知道这是一个错误。