贝宝 IPN 无效
Paypal IPN Invalid
我正在使用 node.js bodyparser 获取 urlencoded 字符串并处理该字符串以模拟前面带有 cmd=_notify-validate
的查询字符串。每当发送 IPN 响应时,我都会收到 INVALID
消息。我怀疑这可能与 encoding/decoding 问题有关。下面的代码是 Paypal INVALID
消息的正文部分,即我操作的查询字符串。有人可以验证这是否是发送 IPN 响应的正确格式吗?如果不是,我应该如何格式化字符串?
body: 'cmd=_notify-validate&payment_type=instant&payment_date=Sat Oct 01 2016 10:15:51 GMT 0900 (%uB300%uD55C%uBBFC%uAD6D %uD45C%uC900%uC2DC)&payment_status=Completed&address_status=confirmed&payer_status=verified&first_name=John&last_name=Smith&payer_email=buyer@paypalsandbox.com&payer_id=TESTBUYERID01&address_name=John Smith&address_country=United States&address_country_code=US&address_zip=95131&address_state=CA&address_city=San Jose&address_street=123 any street&business=seller@paypalsandbox.com&receiver_email=seller@paypalsandbox.com&receiver_id=seller@paypalsandbox.com&residence_country=US&item_name1=something&item_number1=AK-1234&tax=2.02&mc_currency=USD&mc_fee=0.44&mc_gross=12.34&mc_gross_1=12.34&mc_handling=2.06&mc_handling1=1.67&mc_shipping=3.02&mc_shipping1=1.02&txn_type=cart&txn_id=939521005¬ify_version=2.1&custom=xyz123&invoice=abc1234&test_ipn=1&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31ACcRGK9bZMBhEskX.HORa2EqEcwh',
我 运行 今天遇到了同样的问题。
我最初的解决方案是从 IPN Simulator 中删除日期字段,这样它就可以工作了。所以我开始在 Date 领域进行调查。
GMT 后的 + 号(正如您在格式化字符串中看到的那样不存在)。
这与 PayPal 没有正确编码“+”有关,并且接收服务器 t运行将其标记为白色 space。
解决方法:
因此,如果我在我的服务器上更改它并将引入的白色 space 替换为 + 号,则一切正常。 (确实是丑陋的解决方案)
认为这是 PayPal 方面的问题,因为 a + 到白色 space 的 t运行 转换是正确的,所以他们需要正确编码发送的数据。
我正在使用 node.js bodyparser 获取 urlencoded 字符串并处理该字符串以模拟前面带有 cmd=_notify-validate
的查询字符串。每当发送 IPN 响应时,我都会收到 INVALID
消息。我怀疑这可能与 encoding/decoding 问题有关。下面的代码是 Paypal INVALID
消息的正文部分,即我操作的查询字符串。有人可以验证这是否是发送 IPN 响应的正确格式吗?如果不是,我应该如何格式化字符串?
body: 'cmd=_notify-validate&payment_type=instant&payment_date=Sat Oct 01 2016 10:15:51 GMT 0900 (%uB300%uD55C%uBBFC%uAD6D %uD45C%uC900%uC2DC)&payment_status=Completed&address_status=confirmed&payer_status=verified&first_name=John&last_name=Smith&payer_email=buyer@paypalsandbox.com&payer_id=TESTBUYERID01&address_name=John Smith&address_country=United States&address_country_code=US&address_zip=95131&address_state=CA&address_city=San Jose&address_street=123 any street&business=seller@paypalsandbox.com&receiver_email=seller@paypalsandbox.com&receiver_id=seller@paypalsandbox.com&residence_country=US&item_name1=something&item_number1=AK-1234&tax=2.02&mc_currency=USD&mc_fee=0.44&mc_gross=12.34&mc_gross_1=12.34&mc_handling=2.06&mc_handling1=1.67&mc_shipping=3.02&mc_shipping1=1.02&txn_type=cart&txn_id=939521005¬ify_version=2.1&custom=xyz123&invoice=abc1234&test_ipn=1&verify_sign=AFcWxV21C7fd0v3bYYYRCpSSRl31ACcRGK9bZMBhEskX.HORa2EqEcwh',
我 运行 今天遇到了同样的问题。 我最初的解决方案是从 IPN Simulator 中删除日期字段,这样它就可以工作了。所以我开始在 Date 领域进行调查。 GMT 后的 + 号(正如您在格式化字符串中看到的那样不存在)。 这与 PayPal 没有正确编码“+”有关,并且接收服务器 t运行将其标记为白色 space。
解决方法: 因此,如果我在我的服务器上更改它并将引入的白色 space 替换为 + 号,则一切正常。 (确实是丑陋的解决方案)
认为这是 PayPal 方面的问题,因为 a + 到白色 space 的 t运行 转换是正确的,所以他们需要正确编码发送的数据。