WeChat支払いNotice:Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in

2245 ワード

微信支払いのインタフェースファイルdemoを手に入れると、サーバーに置いてテストし、まず開き、対応するパラメータを配置し、開くと最初のエラーが発生します.
ウィーチャット決済例インタフェースが開くと、このようなエラーが報告されます.
Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in/wx_pay_test/WxPayPubHelper/WxPayPubHelper.php on line 155 Warning: curl_setopt() expects parameter 2 to be long, string given in wx_pay_test/WxPayPubHelper/WxPayPubHelper.php on line 155
すぐに呆然として、ソースコードをよく開けてみると、ファイルの中で155行にタイムアウトを設定したとき、もともとcurlだったはずです.setopt($ch, CURLOPT_TIMEOUT, $second); しかし、インタフェースのファイルはこのようなcurlです.setopt($ch, CURLOP_TIMEOUT, $second); ははは、パラメータを設定するアルファベットが間違っていて、ここを修正して、2つのエラーが消えました.
しかし、この問題が解決した後、また一つの問題が現れました.
Warning: curl_close(): 5 is not a valid cURL handle resource in.....
これは何が原因ですか?
対応するコードを開いてみると、次のように対応する位置のコードで、一部だけ列挙されています.
169      // curl     $data = curl_exec($ch);  curl_close($ch);     //      if($data)     {       curl_close($ch);       return $data;     }     else      {        $error = curl_errno($ch);       echo "curl , :$error"."<br>";        echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'> </a></br>";       curl_close($ch);       return false;     } 

テンセントの公式の開発者もあまりにも不注意で、注釈が結果を返す前の行で、すでに$ch接続を閉鎖して、後ろのif..else文ではまた閉じる操作が行われていますが、2回目の呼び出しではこの接続はもう存在しません.必ずエラーが報告されるでしょう.

解決策


解決策は簡単で、結果の前の行にコメントを直接返すだけでいいです.修正されたコードは次のとおりです.
169      // curl     $data = curl_exec($ch);  //curl_close($ch);     //      if($data)     {       curl_close($ch);       return $data;     }     else      {        $error = curl_errno($ch);       echo "curl , :$error"."<br>";        echo "<a href='http://curl.haxx.se/libcurl/c/libcurl-errors.html'> </a></br>";       curl_close($ch);       return false;     } 

運行結果が出た