在做支付宝第三方支付是,本地用curl提交数据没有任何问题: $ch = curl_init();
curl_setopt($ch, CURLOPT_TIMEOUT, $second);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
curl_setopt($ch, CURLOPT_FAILONERROR, TRUE);
$data = curl_exec($ch);
if($data){
curl_close($ch);
}else{
$error = curl_errno($ch);
curl_close($ch);
$data = 'CURL_ERROR:'.$error;
}
但当升级到生产环境的时候报如下错误:
curl_errno(
$ch
) -----> 35
查了很多资料,终于发现要强行指定SSL的版本,即加上下面的话就可以了:
curl_setopt(
$ch
, CURLOPT_SSLVERSION, 3);
亲自测试通过。