【问题标题】:Paypal IPN always "INVALID" - charset related?Paypal IPN 总是“无效” - 字符集相关?
【发布时间】:2013-10-08 20:11:27
【问题描述】:

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

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

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

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

【问题讨论】:

  • 您能否提供有关该问题的更多详细信息?你不能做什么?您要提交购物车吗?
  • 不,它只是一个“立即购买”按钮,一个项目。由于这个页面,我刚刚解决了这个问题 --> ppmts.custhelp.com/app/answers/detail/a_id/926
  • Ben,我也有同样的问题,能否请您回答一下您的问题并发布完整代码?谢谢

标签: php curl paypal paypal-ipn


【解决方案1】:

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

更详细地描述here

【讨论】:

    猜你喜欢
    • 2014-01-03
    • 2017-02-09
    • 2012-08-30
    • 2011-10-26
    • 2014-02-23
    • 2013-09-20
    • 2016-03-12
    • 2016-10-10
    相关资源
    最近更新 更多