IPN传递失败。 HTTP错误代码405:不允许的方法
-
18-09-2019 - |
题
我想测试一个servlet我写了一个处理IPN payapal通知(我的servlet非常类似于这样的例如) - 东西甚至使测试帐户中的所有设置,我现在用的IPN通知后不点火在所有。
我然后发现,显然是在沙箱中测试IPN的唯一途径是通过IPN模拟器。我想使用它,但我得到:
<强> IPN递送失败。 HTTP错误代码405:不允许的方法强>
有没有人有丝毫的线索?
此外,我正在寻求的在一个简单的方式测试IPN处理程序,因为IPN模拟器那种很烂ANY 的意见(任你挑选项它重置所有字段等等)。
任何帮助理解!
解决方案
我会检查,以确保您的Web服务器允许您IPN处理程序URL POST请求。在这个例子中,我用你的链接页面上的例子的PHP版本,并放置脚本在/ipn.php
。
我然后telnet到我的服务器。 (与服务器地址替换)
$ 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处理程序是登录无效的请求,以及,让你知道,如果该请求甚至开始。
最后,请确保IPN验证URL设置在你的servlet https://www.sandbox.paypal.com/cgi-bin/webscr
。 (在您发布的示例的URL是https://www.paypal.com/cgi-bin/webscr
)