IPN 响应有 200 个 HTTP 代码,但在我的数据库中没有任何内容



我真的需要帮助,因为我现在不知道该怎么办。我开发了一个网站,新用户需要付费注册,我设置了正确的PayPal表单按钮,关于钱一切正常,问题是我无法更新我的数据库。我正在使用这些文件(它们在gitHub上提供,并且在官方PayPal指南中也有一个指向它们的链接):"PaypalIPN.php"和"example_usage.php"。我还在我的 Ubuntu 云服务器(我的网站在哪里)添加了 cert/cacert.pem,我不知道我是否必须这样做,但在第一个文件中似乎是必需的。

我尝试运行 IPN 模拟器,但它不起作用,我寻找了同样的问题,我发现模拟器可能存在问题,所以我做了一些实际事务(我已经阅读了实时生产测试使用该代码正确运行)。 因此:

  • 交易资金还可以;
  • 即时付款通知历史记录中,我进行了所有测试,在消息ID中,我可以读取IPN消息中传递的正确数据,IPN类型为"事务已执行",响应代码为200。我注意到在"example_usage.php"中,200 响应代码不在 if ($verified) 中,所以,只是为了我的最后一次测试,我把它放在 if 中,是的,响应又是那个;
  • 我尝试使用虚假数据更新mongodb数据库的代码,显然它可以工作。

怎么可能?请帮助我,谢谢你。

您是否验证了 IPN 历史记录详细信息中显示的正确 URL? 有时,人们使用一个按钮,该按钮使用 notify_url 覆盖PayPal帐户设置,然后 IPN 正在工作,但它们将转到与预期不同的位置。 所以先检查一下。

如果 IPN 确实转到您期望的 URL,并且返回 200 OK,则表示它正在成功接收并完成脚本。 如果在数据库中没有看到预期的结果,则代码中一定存在某种需要解决的逻辑问题。 您需要构建一些跟踪器来日志文件或向自己发送电子邮件,因为它会执行脚本的每个步骤,以查看该部分代码是否真的像您想象的那样受到攻击。

不久前,我整理了这篇文章,介绍如何测试 IPN,事实证明PayPal IPN 对许多人很有帮助。 如果您按照那里的步骤操作,您应该能够跟踪问题。

相关内容

最新更新