700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > php intval获取手机号 微信小程序获取微信绑定授权手机号getPhoneNumber

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

时间:2022-09-09 00:04:09

相关推荐

php intval获取手机号 微信小程序获取微信绑定授权手机号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,'获取用户手机号码失败');

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。