我会检查以确保您的 Web 服务器允许在您的 IPN 处理程序 URL 上发出 POST 请求。在此示例中,我在您链接的页面上使用了示例的 PHP 版本,并将脚本放置在/ipn.php
.
然后我远程登录到我的服务器。(替换为您的服务器地址)
$ telnet myserver.com 80
Trying myserver.com...
Connected to myserver.com.
Escape character is '^]'.
将以下内容粘贴到您的 telnet 会话中。(替换 ipn.php 和 myserver.com)。在最后一个命令后添加一个空行。
POST /ipn.php HTTP/1.1
Host: myserver.com
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 0
HTTP/1.1 200 OK
如果您没有看到 200 状态,则表示您的应用程序未正确处理 POST 请求,这可能是 405 错误的原因。
您应该确保在您的 servlet 中实现了 doPost() 方法以及 doGet()。
如果您能够从 IPN 模拟器获取请求,并准备继续进行沙盒测试,请确保您拥有正确的通知 URL,并且在沙盒卖家的配置文件下启用了 IPN。
此外,请确保您的 IPN 处理程序也在记录 INVALID 请求,以便您知道该请求是否已启动。
最后,确保https://www.sandbox.paypal.com/cgi-bin/webscr
在您的 servlet 中设置了 IPN 验证 URL。(您发布的示例中的 URL 是https://www.paypal.com/cgi-bin/webscr
)