我在我的网站上使用paypal IPN
。付款完成后,客户返回站点,PHP
脚本将处理paypal在$_POST
变量中发送的事务数据。
当使用除Mozilla 以外的任何浏览器时,数据都被传递为ok。它似乎显示了从https://站点向http://发送数据的警告。
如果在下一秒内单击“确定”按钮,则会出现警告,因此数据被传递为ok。但是,当我等待几秒钟,然后单击按钮$_POST
是空的。
例如,Opera显示了相同的警告,但无论如何都会传递post数据。问题只出现在Firefox中。
有人遇到过这个问题吗?
发布于 2013-10-08 20:23:32
Hill79,非常感谢你的回应。
我已经解决了使代码在自动返回和PDT启用时工作的问题。现在,脚本获取$_GET
参数,并基于PDT令牌调用支付数据。
现在很有魅力!
我以前使用$_POST
数据的原因是,当没有PayPal提供的自动返回选项时,这是另一个开发人员编写的旧代码。
无论如何,如果您有一些机会,尝试从一个安全域(https://)到非安全域(使用Firefox浏览器的http://))发送$_POST。我敢打赌,您将遇到与我相同的问题:您将通过浏览器获得警告,在确认发送数据之后,您将在$_POST
中一无所获。
再次感谢您的帮助!
发布于 2013-09-02 02:34:28
如果您使用Paypal的自动返回功能将用户发送回您的网站后,交易信息将作为$_GET变量发送(而不是$_POST)。
IPN功能独立于用户浏览器,Paypal通过$_POST变量直接将事务数据发送回您的站点(到您在设置中指定的脚本)--您的想法是不必依赖用户返回您的站点才能获得事务的详细信息。
这可能是明智的做法,只是双重检查,您没有使用$_POST,您应该使用的$_GET和您的贝宝设置正确配置。
https://stackoverflow.com/questions/18569693
复制相似问题