PayPal IPN 模拟器:IPN 未发送,握手未验证。请查看您的信息

Posted

技术标签:

【中文标题】PayPal IPN 模拟器:IPN 未发送,握手未验证。请查看您的信息【英文标题】:PayPal IPN Simulator: IPN was not sent, and the handshake was not verified. Please review your information 【发布时间】:2017-01-04 06:21:16 【问题描述】:

“IPN 未发送,握手未验证。请检查您的信息。”这是我在单击底部的蓝色“发送 IPN”按钮后在 PayPal IPN 模拟器页面上遇到的错误。

我使用的监听器复制自:https://github.com/paypal/ipn-code-samples/blob/master/paypal_ipn.php 我将发布的代码保存到 PHP 文件中,并将其命名为 listener.php;然后我把它上传到我们的网站。

我的 PHP 是版本:5.5.37

关于 SO 的这个错误实际上有很多,但我没有找到任何似乎有帮助的东西。我看过的答案都没有被接受,或者似乎是我遇到的问题。

我读到这个:IPN was not sent, and the handshake was not verified. Please review your information. 我不知道在哪里针对 PayPal 运行连接脚本。但我确实将我的网站放入了 shachecker.com,我得到了“Nice XXXX 有一个使用 SHA-2 签名的可验证证书链”。

在 PayPal IPN 模拟器页面上,我一直在“IPN 处理程序 URL”字段中输入我的侦听器的完整 URL。然后我一直在交易类型字段中选择“购物车结帐”或“网络接受”。

今天,当我点击“发送 IPN”按钮后,我的代码不会在 ipn.log 中产生任何更新;除非我在网络浏览器中实际打开我的 listener.php 页面。然后生成文件:ipn.log

在今天之前它工作得更好。我会收到无效的回复。所以我查看了这个 URL 并检查了那里发布的列表: https://developer.paypal.com/docs/classic/ipn/integration-guide/IPNTesting/#invalid

我无法验证变量的顺序,也无法查看它们是否相同,因为它今天停止工作。但我可以验证页面使用的是正确的 URL,消息前面是cmd=_notify-validate,它是UTF-8

整个冒险过程很难调试,因为我没有看到任何输出或错误日志。 (如果有人以前这样做并取得了成功,请告诉我。)

我正在尝试使用 IPN,因为我们当前的网站依赖于 PayPal 的回发,以获取订单已完成的通知。但我们发现 PayPal 并不总是返回网站。 IPN 被宣传为更可靠。但我也愿意接受任何其他建议。非常感谢!

【问题讨论】:

您是否尝试过不进行握手验证(后变量验证)。我建议您仅通过将任何内容写入您的 ipn.log 文件来调试它。只需将这段代码放入您的 webhook 接收器脚本中: 我在 listener.php 文件中将 error_log(date('[Y-m-d H:i e] '). "Webhook successfully received " . PHP_EOL, 3, LOG_FILE); 放在 define ( "LOG_FILE", "./ipn.log" ); 行之后,然后将其上传到站点。然后我再次运行 IPN 模拟器。但仍然没有产生 ipn.log。 看起来 PayPal 在向您的网站发送请求时出现问题。您是否使用 SSL 或会阻止 PayPal 的东西,一些 DNS 问题,检查所有这些。它没有任何逻辑,因为您可以在浏览器中打开您的 IPN 网址,但 PayPal 无法向您的链接发送请求。奇怪?? 这是有道理的。感谢您帮助我查明该问题。我会问接待我们的公司,看看他们那边是否有什么东西,可能会阻止它。谢谢! 【参考方案1】:

这个问题是如何解决的很有趣。我听从了 Asmir Zahirovic 的建议,并给托管我们网站的公司发了电子邮件。他向我保证,他们托管的许多网站都使用 PayPal 的 IPN,包括他们自己的需求。

然后我记得有人在某处写道,PayPal 的 IPN 模拟器对他们不起作用,但生产却可以。

我按照 PayPal 概述的步骤确保侦听器已启用并打开。 (仍然 IPN 模拟器不起作用。)

然后我将侦听器设置为生产模式,然后等待。几天后,我们收到了一份订单,我的听众从 PayPal 收到了订单;并且它是有效的。

所以对于任何阅读本文的人来说,来自 GitHub 的 PHP 监听器代码可以正常工作。去生产吧; PayPal 的 IPN 侦听器可能无法正常工作。

【讨论】:

4 年后,IPN 模拟器显然仍然无法工作,因为它总是返回此错误。

以上是关于PayPal IPN 模拟器:IPN 未发送,握手未验证。请查看您的信息的主要内容,如果未能解决你的问题,请参考以下文章

IPN 模拟器:“IPN 未发送,握手未验证。请检查您的信息。”

IPN未发送,握手未验证

接收 PayPal IPN 时不获取任何参数

符合规范,但仍然:未发送 IPN,未验证握手。请查看您的信息

PayPal IPN 已验证握手但 IPN 无效

Paypal ipn 未验证:无效