Paypal IPN 返回空字符串而不是“VERIFIED”或“INVALID”

Posted

技术标签:

【中文标题】Paypal IPN 返回空字符串而不是“VERIFIED”或“INVALID”【英文标题】:Paypal IPN returns empty string instead of "VERIFIED" or "INVALID" 【发布时间】:2011-06-22 06:51:27 【问题描述】:

在真实(非沙盒)环境中,Paypal IPN 发送 POST 数据,payment_status = Completed。但是当我尝试从 Paypal(使用 CURL)获得交易确认时,我收到一个空字符串(不是“VERIFIED”或“INVALID”)。

CURL 不返回任何错误。为了在真实环境中进行确认,我使用https://www.paypal.com/cgi-bin/webscr(这是肯定的)。此外,在 Sandbox 中一切正常。

该错误出现在大约 2 个月前。我注意到贝宝改变了网站的一些设计。也许确认过程也发生了变化。但我没有在文档中找到任何更新。

有人遇到过类似的问题吗?

【问题讨论】:

【参考方案1】:

如果您收到空回复,请重试。如果所有重试都失败,则发送 500 Internal Server Error 并且 PayPal IPN 服务器将稍后重试。此外,您可能希望在收到空响应时记录完整的服务器响应(包括标头)。

【讨论】:

嗨 Allesandro,If you get empty responses, just retry. 重试什么? If all retries fail, send out a 500 Internal Server Error and the PayPal IPN server will retry later. 发送到哪个地址?最有趣的问题(1 000 000 美元):为什么会发生这种情况,Paypal IPN 开始发送空响应。以前一切都很好。我更喜欢解决问题的根源,而不是结果。你有答案吗,亚历山德罗?您是否遇到并解决了我上面描述的问题。或者您只是发布一般建议? 如果您从 PayPal 验证服务器收到空响应,只需重试验证调用。 500 Internal Server Error 将作为 IPN 页面的 HTTP 响应发送。我不能说为什么会发生这种情况:PayPal 故障、网络问题等。首先是记录所有内容,然后您可以寻求帮助以调试问题。没有细节,没人能帮你。【参考方案2】:

比赛迟到了,但以防万一其他人问起。

我已经对此进行了几个小时的故障排除,就像我的情况一样,PayPal 要求您使用完整的 URL 来使用 Sandbox 进行 IPN 测试。

例如,使用此 URL“https://www.sandbox.paypal.com/cgi-bin/webscr”而不是“https://sandbox.paypal.com/cgi-bin/webscr”。您需要包含 www 或 PayPal 将给您一个空字符串。它不会返回 INVALID 也不会验证 - 它只会让你空。

无论如何,它对我有用。一旦我改变了这个,一切都已经正常运行了。

【讨论】:

以上是关于Paypal IPN 返回空字符串而不是“VERIFIED”或“INVALID”的主要内容,如果未能解决你的问题,请参考以下文章

IPN 验证返回 INVALID,因为 PayPal 在 POST 中向 IPN 侦听器发送了不正确的字符集

Paypal 中的 IPN 与 PDT

Paypal 中的 IPN 与 PDT

复选框输入返回空字符串而不是 true/false,使用 React hook dom 和 material-ui FormControlLabel

将 Paypal 的 IPN 变量与后端变量匹配

Paypal 沙盒 IPN 返回无效