我試圖在wordpress應用程序內收到IPN消息(瞭解付款發生的時間)。 Wordpress運行在Linux/Apache(PHP作爲FastCGI)。無法接收PayPal IPN - PayPal總是收到403錯誤
付款後,但我沒有收到服務器上的IPNs。看起來PayPal無法將它們發送到我的服務器,因爲它收到403狀態碼(「無權限」)。該SSL訪問日誌顯示如下:上述
173.0.81.1 - - [04/Sep/2015:08:44:40 +0200] "POST /index.php?sell_media-listener=IPN HTTP/1.0" 403 9402 "-" "PayPal IPN (https://www.paypal.com/ipn)"
173.0.81.33 - - [04/Sep/2015:08:44:59 +0200] "POST /index.php HTTP/1.1" 403 9533 "-" "-"
第一行顯示通過貝寶的原始呼叫,這是一個交易之後進行。秒數來自PayPal的IPN模擬器的測試呼叫,這次不是處理IPN的腳本/函數,而是直接到正常的index.php,這對每個人都應該可以訪問。兩次都返回了403。
有人知道爲什麼PayPal收到403而不是200狀態碼?到目前爲止,我聽說可能是我的主機(和許多其他網絡託管公司)在沒有用戶代理字符串和PayPal(根據它們)的情況下阻止請求正在執行此操作。
就我所知,我身邊的IPN監聽器現在還向curl請求中提交了一個用戶代理字符串給PayPal,但仍然沒有可見的變化。
我還添加以下行到我的我的WordPress文件夾的根目錄中的.htaccess文件的開頭:
Allow from .paypal.com
Allow from api.paypal.com
Allow from api-3t.paypal.com
Allow from api-aa.paypal.com
Allow from api-aa-3t.paypal.com
Allow from api-s.paypal.com
Allow from api-m.paypal.com
Allow from svcs.paypal.com
Allow from notify.paypal.com
Allow from reports.paypal.com
Allow from ipnpb.paypal.com
Allow from www.paypal.com
Allow from mobile.paypal.com
Allow from m.paypal.com
Allow from www.paypalobjects.com
Allow from pointofsale.paypal.com
但是,這也改變了什麼。我的主機不是很有幫助,他只是說「確保發送用戶代理字符串...」。
任何想法?