我已经阅读了一百个关于此的讨论,到目前为止没有任何帮助。
我正在使用沙盒,经过多次刮擦后我发现Sandbox配置文件中的字符编码设置实际上没有做任何事情(这对于记录来说真的很愚蠢),所以我一直在尝试找到另一种方法来做到这一点。我对这种情况下如何处理字符编码的理解有限,所以我正在寻找一些有用的防弹代码示例和/或解释。
我收到IPN请求,charset参数是windows-1252,而我站点标题中设置的字符集是UTF8。我正在使用示例脚本Paypal提供(https://developer.paypal.com/webapps/developer/docs/classic/ipn/ht_ipn/),除了在cURL请求中使用Sandbox URL之外没有任何更改,我总是收到无效。
Paypals文档毫无用处,我通过Google找到的任何内容都没有帮助,所以有人可以告诉我为什么会这样吗?
答案 0 :(得分:0)
如果您使用的是PHP,问题在于使用urldecode
和urlencode
函数而不是rawurlencode
和rawurldecode
。如果从请求中删除日期值(例如,将其设置为null),事情应该有效,因为它可能有一个时区标识符(如+0100 GMT
)。当使用默认的+
和urldecode
函数时,urlencode
符号将被解释为空格,这会导致稍微更改的请求被发回以进行验证,从而返回INVALID。 / p>
更详细地描述here。