收藏
回答

关于获取手机号,解密失败的问题?

逻辑顺序:

1,当用户点击授权手机号后,使用 wx.login 方法请求登录接口。

2,在后端获取 sessionKey 后,进行解密。

但是解密结果一直失败。求助大佬 -_-

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

3 个回答

  • 小气财神ʚ 🐯🐰 ɞ
    小气财神ʚ 🐯🐰 ɞ
    07-07

    获取手机号的时候不要去wx.login 会刷新后台的sessionkey

    需要提前login并且用checksession去判断sessionkey是够过期,整个小程序的生命周期内最好只调用一次wx.login

    07-07
    有用
    回复 1
    • 暴走的西瓜
      暴走的西瓜
      07-07
      那这样的话,每个需要登录的授权都需要去验证一下?有没有更好一点的解决方案?
      07-07
      回复
  • Hunter
    Hunter
    07-07

    首先要知道是什么原因失败...

    07-07
    有用
    回复
  • 暴走的西瓜
    暴走的西瓜
    07-07

    贴一下后端代码(PHP):


    $appid = '******';
    $secret = '******';
    $code = $params['code'];
    $encryptedData = $params['encryptedData'];
    $iv = $params['iv'];
    
    
    $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
    $res = curl_get($url);
    $res = json_decode($res, true);
    $openid = $res['openid'];
    $sessionKey = $res['session_key'];
            
    $pc = new \wxApp\WXBizDataCrypt($appid, $sessionKey);
    $errCode = $pc->decryptData($encryptedData, $iv, $data);
    
    07-07
    有用
    回复
登录 后发表内容
问题标签