我會檢查以確保您的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模擬器獲取正在運行的請求,並準備進入沙箱測試,請確保您擁有正確的Notify URL,並且在沙盒賣家的配置文件下啓用了IPN。
此外,請確保您的IPN處理程序也記錄INVALID請求,以便您知道該請求是否已啓動。
最後,確保您的servlet中的IPN驗證URL設置爲https://www.sandbox.paypal.com/cgi-bin/webscr
。 (您發佈的示例中的URL是https://www.paypal.com/cgi-bin/webscr
)
我不知道405錯誤,但可以在不使用模擬器的情況下測試IPN。在沙盒環境中創建一個測試賣家帳戶,然後創建一個按鈕,並使用您剛剛創建的測試沙盒賣家帳戶設置您的IPN通知。 – 2009-07-21 23:16:30
我試過了 - 我在表單中設置了notify_url,但是IPN通知並未觸發! – JohnIdol 2009-07-21 23:57:13