2010-02-27 129 views
0

我正在使用CakePHP「HttpSocket」類將信息發佈到PayPal付款服務器。我的代碼工作正常,當目標網址爲http://www.something.com時,我可以根據需要解析響應。HTTPS URL的HTTP POST請求問題

但是,當我試圖將數據發佈到PayPal支付API URL(在HTTPS上)時,我什麼也得不到回覆。

我已經嘗試了其他HTTPS網址上的相同代碼,但沒有迴應。

這個問題的原因是什麼?

+0

你有沒有試過用WireShark,NetMon或Fiddler來觀察你的網絡流量,看看發生了什麼? – EricLaw 2010-02-27 15:55:24

+1

在您的php.ini中激活了OpenSSL擴展嗎? – dhofstet 2010-02-27 16:27:32

+0

@EricLaw據我所知,它已啓用(2.2.14 OpenSSL) – robmcvey 2010-02-27 17:18:03

回答

1

我有同樣的問題,你...我似乎無法從貝寶API得到任何迴應。

但我發現我只是做錯了什麼。其實我只是在做一個POST到https://www.sandbox.paypal.com,實際上它應該是https://www.sandbox.paypal.com/cgi-bin/webscr

我意識到這一點時,我檢查了CakePHP的$ HttpSocket-> response屬性,並且發現我得到了301錯誤。然後我意識到 - 它不應該在基地址...

然後,我重新閱讀IPN指南,並在查看示例代碼...瞧!我意識到我的錯誤。

希望其他使用CakePHP的人可以從中受益。在我意識到這一點之前花了好幾個小時。

1

我意識到這是2歲以上,但最近我碰到這個問題,這裏是我如何解決它:

您需要的URL像這樣沿着指定端口443:

$httpSocket = new HttpSocket(); 
$httpSocket->get('https://domain:443/sample/path', array('q' => 'example')); 

您也可以將端口和主機一起傳遞到第三個參數中,或者使用request()方法。

希望這可以幫助別人!