自 7 月 1 日起,我们开始收到来自 paypal 的格式错误的 IPN 响应,IPN 底部有一个奇数字符串,既不是 VERIFIED 也不是 INVALID,而是类似于非二进制符号的东西。这种情况是随机发生的,对于与支付相关的 IPN 和预先批准都是如此。
如果我们尝试从 Paypal IPN 历史记录中重新发送 IPN,有时它们会在第一次从 Paypal 获得验证,有时我们必须重试不止一次。以前从未发生过,在我们这边的 ipn 验证脚本中没有任何变化,该脚本很旧但与大多数 IPN 一起工作正常。
我们已经检查了端点,它是正确的:
https://www.paypal.com/cgi-bin/webscr
我们尝试重新发送一些格式错误的 IPN,在一次或多次重试后,它们正确验证。
当我们尝试在 LIVE 生产中验证那些受影响的 IPN 时,我们得到的是一个错误的请求,因为受影响的 IPN 底部有这个奇怪的字符串,而不是 VERIFIED 或 INVALID 响应:
‹ TŽK ‚0 „ïüŠ•»,M <Œ$¨ÄÔÇb›@‚ûÐøïmáäe'ÙùvgÉ...
Í=««â-bU²#bÁŠ5Ù')by‰iDzû)é%ÞØÁŽ'Ò2.à&_NKpGŒtJ|ÃæŽþQÞGd|r:>Fj0r²ÀA¯ ØžŒ ôÛç åF“²à&!µ±| é4`¨›ƒ,mþzø3ú ÿÿ Î[óâ
最佳答案
最后,刚刚从 Paypal 得到了一个“人性化”的答案,并立即在此处为受此问题影响的人分享一些解决方法:
“感谢您联系 PayPal 商户技术支持。对于迟到的回复,我们深表歉意。我承认您收到了 IPN 错误 HTTP/1.1 400 错误请求问题。请注意,这是目前 PayPal 中的一个已知问题。我们相关部门正在着手处理。
...
此外,您还可以通过以下方法来确认此交易。
https://developer.paypal.com/docs/classic/api/merchant/GetTransactionDetails_API_Operation_NVP/
但我们会及时通知您有关此 IPN 400 错误请求问题的更新信息。”
因此,目前这不是真正的解决方案,而只是一些可用于付款的变通方法(例如,这些变通方法不适用于您仍未付款的预批准)。
我们甚至问为什么如果这是一个已知问题,在 paypal-status 网站上没有任何内容表明“通知”产品在市场上是绿色且健康的。当我们有真正的解决方案时会更新。
关于paypal-ipn - 来自 Paypal IPN 而不是 VERIFIED 或 INVALID 的错误响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56938887/