收藏
回答

今天突然获取openid失败,代码都没改动,1个小时之后自动恢复正常了

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug https://api.weixin.qq.com/sns/jscode2session 微信iOS客户端 Android 6.6.7 2.2.0

首先声明一下,API的用法我都懂,之前一直没有问题,小程序也上线了正常使用中。

今天早上突然报告用户登录失败,检查发现是通过code获取openid的API执行失败。

代码没有做任何改动,大概1个小时之后这个接口恢复正常,能够正确返回openid了

不知道是这个接口出现的BUG,还是curl请求出现的问题。(下方贴了关键代码)


另外问一下,微信对这个接口是否有访问次数限制?


我在小程序客户端没有存储skey,用户每次打开小程序在onload里都会调用wx.login得到code,然后在服务器端使用这个code通过jscode2session这个接口获取openid,以此识别用户。


    $code = $_GET['code']; 

    $appid = '***********';

    $secret = '************************';


    function https_request($url, $post = false, $data = '')

    {

       $curl = curl_init();

       curl_setopt($curl, CURLOPT_URL, $url);

       curl_setopt($curl, CURLOPT_HEADER, 0);

       curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);

       if($post)

       {

           curl_setopt($curl, CURLOPT_POST, 1);

           curl_setopt($curl, CURLOPT_POSTFIELDS, $data);

       }

       curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

       curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);

       $ret = curl_exec($curl);

       $curlerr = curl_error($curl);

       curl_close($curl);


       return $ret;

    }


    $url = ' https://api.weixin.qq.com/sns/jscode2session?'.'appid='.$appid.'&secret='.$secret.'&js_code='.$code;

    

    $res = json_decode( https_request ($url));

    $openid = $res->openid;

    这里的$res值为NULL,说明调用jscode2session这个api的返回值为false


回答关注问题邀请回答
收藏

2 个回答

  • 吴新
    吴新
    2018-12-06

    我现在突然不行,怎么办,用户等着用呀,怎么解决???

    2018-12-06
    有用
    回复
  • 一公升的树
    一公升的树
    2018-11-10

    我也出现这个问题,请问楼主解决了吗?

    2018-11-10
    有用
    回复 1
    • billy
      billy
      2018-11-16

      是腾讯自身的问题,那天早上腾讯的云服务出现故障了

      2018-11-16
      回复
登录 后发表内容