使用cURL和SSL的支付网关?

时间:2009-07-16 18:40:42

标签: php curl payment-gateway credit-card

我正在使用支付网关处理信用卡。要将数据发布到他们的服务器,我在PHP中使用cURL。我向我的域发布了SSL证书,以确保所有POST数据都已加密。由于已安装SSL证书,我是否仍需要使用cURL的SSL选项?如果是这样,根据我的设置,我需要设置哪个选项?

我尝试了以下代码失败:

$ch = curl_init(); 

curl_setopt($ch, CURLOPT_URL,"https://secure.paymentgateway.com/blah.php");
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 

curl_setopt($ch, CURLOPT_VERBOSE, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_CAINFO,  getcwd().'/cert/ca.crt');
curl_setopt($ch, CURLOPT_SSLCERT, getcwd().'/cert/mycert.pem');
curl_setopt($ch, CURLOPT_SSLCERTPASSWD, 'password');

curl_setopt($ch, CURLOPT_POST, $count);

curl_setopt($ch,CURLOPT_POSTFIELDS,"variables...");                                                                 

$output = curl_exec($ch);
echo $output;
curl_close($ch);

1 个答案:

答案 0 :(得分:1)

您已经停用了验证(我不建议这样做:curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);)。这打开了你的中间人攻击。

这是一个可以帮助您的简单教程:

http://developer.paypal-portal.com/pdn/board/message?board.id=ipn&message.id=12754#M12754