老师,我在调试获取token接口时,$wxResult为null

来源:9-8 API小程序测试工具

yyii

2018-01-06


//img.mukewang.com/szimg/5a5018610001881655001260.jpg

$result = curl_get($this->wxLoginUrl);

这个$result得到的是false.

如果我把上面的参数,按下面的格式拼接,放在地址栏里,比如这样:https://api.weixin.qq.com/sns/jscode2session?appid=wxa38afa34787f56fb&secret=93e5c8a8a1e46bcb0d749d55ec12eeca&js_code=061dXT720pFvXF1Vo0420g2K720dXT79&grant_type=authorization_code

就能返回到正确的值。

{
         session_key: "9LokXmxOc0qBDzfrMu87rA==",
         expires_in: 7200,
         openid: "odRAB0SOqiMudKgsgdH6q2hFuwe0"
}


调用的是curl_get方法是参考您的。

function curl_get($url, &$httpCode=0){
   $ch = curl_init();
   curl_setopt($ch, CURLOPT_URL, $url);
   curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
   //不做证书校验,部署在linux环境下请改为true
   curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
   curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
   $file_contents = curl_exec($ch);
   $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
    // var_dump($url);
    // var_dump($file_contents);
    // exit;

    curl_close($ch);
   return $file_contents;
}

关于证书那一行,fasle,true 都试过了。还是返回为空。

如果把$url打印出来,贴在地址栏,能返回的。

但是$file_contents打印出来,就是false;

code码我在 工具里申请后,打印出来,没让它使用的。然后放在接口里调用。

//调用登录接口

   wx.login({

     success: function (res) {

       var code = res.code;

       console.log('code');

       console.log(code);

       retrun;

       wx.request({

         url: baseUrl + '/token/user',

         data: {

           code: code

         },


现在学习就卡在这里了,老师请您看看好吗?谢谢。


写回答

2回答

7七月

2018-01-08

理论上不应该这样。因为这是个线上应用,具体需要调试一下。你可以下载源代码 跑一下看看,不会有问题。

0
5
7七月
回复
yyii
不是,不需要放在线上。这个你调试一下,不是交了大家如何断点调试吗?
2018-03-11
共5条回复

yyii

提问者

2019-02-21

之前学习时遇到,好久没有学习了。又重新学习这里,又是这个问题。
本地还是不行,不知为什么,放在线上就可以。

有同学知道原因吗?谢谢指点。

0
0

微信小程序电商实战 从前端到后端的全流程精讲

全栈工程师/前后端都讲/架构思想/ RESTFul API、MySQL表设计

4805 学习 · 4382 问题

查看课程