2

paypal IPN在我的网站上使用。付款完成后,客户返回网站,PHP脚本将处理贝宝在$_POST变量中发送的交易数据。

使用除Mozilla Firefox之外的任何浏览器时,数据都可以正常传递。它似乎显示有关将数据从https://站点发送到http://的警告

如果我在下一秒内单击“确定”按钮,则会出现警告,因此数据可以正常传递。但是,当我等待几秒钟然后单击按钮时$_POST为空。

例如, Opera会显示相同的警告,但仍会发送发布数据。该问题仅出现在 Firefox 中。

有没有人遇到过这个问题?

4

2 回答 2

1

Hill79,非常感谢您的回复。

我已经解决了使代码在自动返回和启用PDT的情况下工作的问题。现在脚本获取$_GET参数并根据 PDT 令牌调用支付数据。

现在就像一个魅力!

我之前使用这些$_POST数据的原因是因为这是另一位开发人员在 PayPal 没有提供自动返回选项时编写的旧代码。

无论如何,如果您有机会尝试使用Firefox浏览器将 $_POST 从安全域 ( https:// ) 发送到非安全域 ( http:// ) 。我敢打赌你会遇到和我一样的问题:你会收到浏览器的警告,在你确认发送数据后,你将一无所获。$_POST

再次感谢您的帮助!

于 2013-10-09T04:23:32.847 回答
0

如果您使用 Paypal 的自动返回功能在付款后将用户送回您的网站,则交易信息将作为 URL 变量($_GET 而不是 $_POST)发送。

IPN 功能独立于用户浏览器工作,Paypal 通过 $_POST 变量将交易数据直接发送回您的站点(发送到您在设置中指定的脚本) - 这个想法是您不必依赖用户返回您的网站以获取交易的详细信息。

明智的做法是仔细检查您没有在应该使用 $_GET 的地方使用 $_POST 并且您的 Paypal 设置配置正确。

于 2013-09-02T10:34:28.940 回答