如何修复curl_exec返回false

时间:2016-01-29 10:09:27

标签: php

我正在使用PHP为weixin开发支付。 我实现的代码如下。 但是curl_exec返回false和

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_TIMEOUT, $second);
    if(WxPayConfig::CURL_PROXY_HOST != "0.0.0.0"
        && WxPayConfig::CURL_PROXY_PORT != 0){
        curl_setopt($ch,CURLOPT_PROXY, WxPayConfig::CURL_PROXY_HOST);
        curl_setopt($ch,CURLOPT_PROXYPORT, WxPayConfig::CURL_PROXY_PORT);
    }
    curl_setopt($ch,CURLOPT_URL, $url);
    curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
    curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);

    curl_setopt($ch, CURLOPT_HEADER, FALSE);

    curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

    if($useCert == true){
        curl_setopt($ch,CURLOPT_SSLCERTTYPE,'PEM');
        curl_setopt($ch,CURLOPT_SSLCERT, WxPayConfig::SSLCERT_PATH);
        curl_setopt($ch,CURLOPT_SSLKEYTYPE,'PEM');
        curl_setopt($ch,CURLOPT_SSLKEY, WxPayConfig::SSLKEY_PATH);
    }

    curl_setopt($ch, CURLOPT_POST, TRUE);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);

    $data = curl_exec($ch);

我捕获curl_exec的错误消息和消息如下。

“SSL证书问题,请验证CA证书是否正常。详细信息:错误:14090086:SSL例程:SSL3_GET_SERVER_CERTIFICATE:证书验证失败”

1 个答案:

答案 0 :(得分:0)

这是因为“curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,TRUE);”

你应该设置“curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,FALSE);”。