Paypal IPN总是“无效” - charset相关?

时间:2013-10-02 12:34:28

标签: php curl paypal paypal-ipn

我已经阅读了一百个关于此的讨论,到目前为止没有任何帮助。

我正在使用沙盒,经过多次刮擦后我发现Sandbox配置文件中的字符编码设置实际上没有做任何事情(这对于记录来说真的很愚蠢),所以我一直在尝试找到另一种方法来做到这一点。我对这种情况下如何处理字符编码的理解有限,所以我正在寻找一些有用的防弹代码示例和/或解释。

我收到IPN请求,charset参数是windows-1252,而我站点标题中设置的字符集是UTF8。我正在使用示例脚本Paypal提供(https://developer.paypal.com/webapps/developer/docs/classic/ipn/ht_ipn/),除了在cURL请求中使用Sandbox URL之外没有任何更改,我总是收到无效。

Paypals文档毫无用处,我通过Google找到的任何内容都没有帮助,所以有人可以告诉我为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

如果您使用的是PHP,问题在于使用urldecodeurlencode函数而不是rawurlencoderawurldecode。如果从请求中删除日期值(例如,将其设置为null),事情应该有效,因为它可能有一个时区标识符(如+0100 GMT)。当使用默认的+urldecode函数时,urlencode符号将被解释为空格,这会导致稍微更改的请求被发回以进行验证,从而返回INVALID。 / p>

更详细地描述here