1

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

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

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

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

4

1 回答 1

0

如果您使用的是 PHP,则问题在于使用urldecodeandurlencode函数而不是rawurlencodeand rawurldecode。如果您从请求中删除日期值(例如,将其设置为 null),则应该可以正常工作,因为其中可能有一个时区标识符(例如+0100 GMT)。当使用默认值和函数时,该+符号被解释为一个空格,这会导致发送回一个稍微改变的请求进行验证,因此返回一个 INVALID。urldecodeurlencode

这里有更详细的描述。

于 2016-08-19T16:54:37.237 回答