商会资讯

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用新浪微博连接

一步搞定

搜索
热搜: 活动 交友 discuz
查看: 7585|回复: 0
打印 上一主题 下一主题

微信支付的接口文件demo一拿到,就放到的服务器上测试...

[复制链接]

109

主题

1

好友

3774

积分

管理员

Rank: 9Rank: 9Rank: 9

  • ta_mind
    mb_qb7
    2013-3-19 01:56
  • classn_01: 366 classn_02

    [LV.9]以坛为家II

    跳转到指定楼层
    楼主
    发表于 2016-10-28 16:07:27 |只看该作者 |正序浏览


    微信支付的接口文件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;
    }

    运行结果出来了

    分享到: QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    分享分享0 收藏收藏0 转发到微博
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    回顶部