2010-02-27 130 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()方法。

希望这可以帮助别人!