我正在使用CakePHP「HttpSocket」類將信息發佈到PayPal付款服務器。我的代碼工作正常,當目標網址爲http://www.something.com時,我可以根據需要解析響應。HTTPS URL的HTTP POST請求問題
但是,當我試圖將數據發佈到PayPal支付API URL(在HTTPS上)時,我什麼也得不到回覆。
我已經嘗試了其他HTTPS網址上的相同代碼,但沒有迴應。
這個問題的原因是什麼?
我正在使用CakePHP「HttpSocket」類將信息發佈到PayPal付款服務器。我的代碼工作正常,當目標網址爲http://www.something.com時,我可以根據需要解析響應。HTTPS URL的HTTP POST請求問題
但是,當我試圖將數據發佈到PayPal支付API URL(在HTTPS上)時,我什麼也得不到回覆。
我已經嘗試了其他HTTPS網址上的相同代碼,但沒有迴應。
這個問題的原因是什麼?
我有同樣的問題,你...我似乎無法從貝寶API得到任何迴應。
但我發現我只是做錯了什麼。其實我只是在做一個POST到https://www.sandbox.paypal.com,實際上它應該是https://www.sandbox.paypal.com/cgi-bin/webscr。
我意識到這一點時,我檢查了CakePHP的$ HttpSocket-> response屬性,並且發現我得到了301錯誤。然後我意識到 - 它不應該在基地址...
然後,我重新閱讀IPN指南,並在查看示例代碼...瞧!我意識到我的錯誤。
希望其他使用CakePHP的人可以從中受益。在我意識到這一點之前花了好幾個小時。
我意識到這是2歲以上,但最近我碰到這個問題,這裏是我如何解決它:
您需要的URL像這樣沿着指定端口443:
$httpSocket = new HttpSocket();
$httpSocket->get('https://domain:443/sample/path', array('q' => 'example'));
您也可以將端口和主機一起傳遞到第三個參數中,或者使用request()方法。
希望這可以幫助別人!
你有沒有試過用WireShark,NetMon或Fiddler來觀察你的網絡流量,看看發生了什麼? – EricLaw 2010-02-27 15:55:24
在您的php.ini中激活了OpenSSL擴展嗎? – dhofstet 2010-02-27 16:27:32
@EricLaw據我所知,它已啓用(2.2.14 OpenSSL) – robmcvey 2010-02-27 17:18:03