1. 程式人生 > >解決thinkphp5開發微信支付時候 遇到curl出錯,錯誤碼:60的錯誤

解決thinkphp5開發微信支付時候 遇到curl出錯,錯誤碼:60的錯誤

從微信平臺下載完php的微信支付sdk後

要轉換成thinkphp的格式

然後找到在去WxPayApi.php 檔案中找到如下程式碼:

curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴格校驗


作如下修改

if(stripos($url,"https://")!==FALSE){
        curl_setopt($ch, CURLOPT_SSLVERSION, CURL_SSLVERSION_TLSv1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        }    else    {
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴格校驗

修改完後 又報了Use of undefined constant CURL_SSLVERSION_TLSv1 - assumed 'CURL_SSLVERSION_TLSv1'的錯誤

經過查閱資料後的解決方案

用數字 1 代替就可以了

php > var_dump(CURL_SSLVERSION_TLSv1);
int(1)

可能我們的php 版本低了

所以最終格式:

if(stripos($url,"https://")!==FALSE){
        curl_setopt($ch, CURLOPT_SSLVERSION, 1);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        }    else    {
        curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,TRUE);
        curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,2);//嚴格校驗

完美解決問題。