计算机网络/计算机科学与应用/系统/运维/开发

小程序获取手机号码

将微信提供的解密包下载放入extend目录中

image.png

修改:ErrorCode.php文件,添加命名空间

image.png

修改WXBizDataCrypt.php

image.png

在控制器中引入:

image.png


后台:

 public function getSee(Request $request)
    {
        $code = $request::param('code');
        $encryptedData = $request::param('encryptedData');
        $iv = $request::param('iv');
        
        // 小程序ID  注意开发者工具也要使用该id
        $appid = 'wx46f1608e8baf03d5';
        // 小程序密码
        $secret = 'b1154a72a24edc956ada6ce2a681d546';
        
        $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
        $res = file_get_contents($url);
 
        $res = json_decode($res,true);
        
        $ret =$this->decryUser($iv,$res['session_key'],$encryptedData);
        
        return json($ret);
    }

    

    

    private function decryUser($iv,$sessionKey,$encryptedData)
    {
        $data = null;
        $appid = 'wx46f1608e8baf03d5';
        $pc = new WXBizDataCrypt($appid, $sessionKey);
        $errCode = $pc->decryptData($encryptedData, $iv, $data );
        return $data;
    }



小程序:

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号</button>
wx.login({
      success:function(res){
        var code = res.code;
        if(e.detail.errMsg == "getPhoneNumber:ok"){
          wx.request({
            url:'xxx/index/index/getSee',
            data:{
              encryptedData: e.detail.encryptedData,
              iv: e.detail.iv,
              code:code
            },
            method:"post",
            success:function(res){
              console.log(res.data)
               let data = JSON.parse(res.data)
               console.log(data.phoneNumber)
               that.setData({
                  phone:data.phoneNumber
                  
               })
               that.requestPostData()
            }
          })
        }
      }
    })

参考:

https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html#%E5%8A%A0%E5%AF%86%E6%95%B0%E6%8D%AE%E8%A7%A3%E5%AF%86%E7%AE%97%E6%B3%95

https://www.jb51.net/article/229956.htm

https://www.cnblogs.com/yehuisir/p/13729836.html


人生活在得失之间,得亦是失,失亦是得。

评论

^