微信小程序获取微信绑定授权手机号getPhoneNumber

继前面登录之后,有做手机号码授权。获取用户手机号码。

注意: 微信文档所示

在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login;或者在回调中先使用 checkSession 进行登录态检查,避免 login 刷新登录态。
 

也就是在请求这个接口之前需要,先请求前面的userId接口

 //获取用户手机号码授权
    public function userMobile()
    {
        $encryptedData   =   $this->input->post('encryptedData');

        if (empty($encryptedData)){
            return $this->fail('','encryptedData不能为空');
        }
        $iv   =   $this->input->post('iv');
        if (empty($iv)){
            return $this->fail('','iv不能为空');
        }
        $uid   =   $this->input->post('uid');
        if (empty(intval($uid))){
            return $this->fail('','uid不能为空');
        }
        $appid  =  "自己的appid" ;
        //取登录时的sessionKey
        $mc = &load_cache('redis');
        $sessionKey= $mc->get('session_key');

        include_once APPPATH."/third_party/WeChat/wxBizDataCrypt.php";
        $userifo = new WXBizDataCrypt($appid, $sessionKey);

        $errCode = $userifo->decryptData($encryptedData, $iv, $data );

        if ($errCode == 0) {
            $data = json_decode($data,true);
            $userData = [
                'mobile' =>$data['phoneNumber'],
            ];

            $where['id'] = $uid;
            $result = $this->AppUserModel->update($userData,$where);
            if ($result){
                return $this->success('','手机号码已授权');
            }else{
                return $this->fail('','手机号码授权失败');
            }

        }else{
            return $this->fail($errCode,'获取用户手机号码失败');
        }

    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值