2014-01-12 142 views
0

我刚刚完成开发一个网站使用贝宝付款标准,并且大多数电脑都工作得很好,但贝宝不会在iPad上返回任何付款变量(也可能是其他设备)。Paypal付款标准不返回iPad上的付款变量

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

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

如上所述,这在大多数计算机上都能很好地工作。 但是,在iPad上,用户返回到购物车页面,但没有发布付款变量。这与将RM变量更改为1时相同,后者应将变量作为GET参数发送。

你可以看到在代码和工作网站:http://unameit.ch/

回答

1

这是不完全的回答你的问题,但可以解决这个问题,将是你最好反正。

使用您的返回URL并不是将数据导入数据库的好方法,因为即使启用了自动返回功能,也无法保证用户将其返回到您的返回URL。在这种情况下,该代码永远不会运行,数据永远不会进入您的数据库。您应该使用的是IPN。无论用户是否返回到您的网站,IPN都会被触发。它与PDT非常相似,除了将数据发回到返回URL之外,它将它发布到独立的侦听器脚本,而不是您的结帐页面。它实时发生,因此结果与您现在要做的相同,但无论用户是否将其返回到您的网站,它都会始终工作,您不必担心关于您在iPad交易中遇到的问题。

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

+0

好的,所以我做了你的建议,它现在可以正常工作(支付确认是使用IPN接口提供的)。 问题是IPN消息在很短的时间内收到,并且在IPN执行之前返回网站的测试用户会过早返回并且他的购物车仍然保持原样。 接下来应该做什么? – peaceman

+0

您是在沙箱上测试它还是正在运行实时测试?正如名字所暗示的,IPN通常是即时的。有时候,沙箱可能会稍微延迟一些,但它通常也是非常即时的。但是,您可能想要执行的操作是让您的返回URL通知用户,他们应该在拍摄期限内收到一封电子邮件,并附有进一步说明。让IPN在完成数据库更新后发送电子邮件给他们,通知他们一切已准备就绪。同样,这封电子邮件通常会立即发送,所以他们不必等待很长时间。 –

0

我有与手动回调相同的问题,并已与PayPal技术支持交谈。他们已经同意在手机/平板电脑设备上使用这个工具存在一个错误。基本上,如果你去移动PayPal网站进行付款,你不会得到回发到您的返回URL的任何数据:

他们告诉我们使用ExpressCheckoutAPI代替:

“是的,ExpressCheckout在所有平台上都没有任何问题, 事实证明,我发现mobileWPS checkout是围绕着 ExpressCheckout进行包装的,这就是为什么你的数据被砍掉的原因 某些数据在翻译时丢失了从WPS到EC“。

对不起,这不是一个答案,但至少我们知道PayPal知道这是一个错误。

+0

我不同意!也许不是OP想要的答案,但是如果它解释了为什么问题可以解决并且解决方法可以作为答案 – jean