当前位置:   article > 正文

微信支付Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in

微信支付Notice: Use of undefined constant CURLOP_TIMEOUT - assumed 'CURLOP_TIMEOUT' in

微信支付的接口文件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);
哈哈,设置参数的字母写错了,修改这里,两条报错消失。


可是这个问题解决后,紧接着又一个问题出现了,
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语句中又对它进行了关闭操作,很明显,第二次调用的时候这个连接已经不存在了,必然会报错啊。

解决方法

解决方法很简单,直接将注释返回结果前面的那一行注释掉即可。
修改后的代码如下:

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;     } 

运行结果出来了

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/624325
推荐阅读
相关标签
  

闽ICP备14008679号