后台代码
public function mobile()
{
$token_data = $this->getTokenData();
$key = 'session_key_'.$token_data['user_id'];
$session_key = Cache::store('redis')->get($key);
if ($session_key) {
$iv = input('param.iv');
$encryptedData = input('param.encryptedData');
$pc = new WXBizDataCrypt(config('app.program.appid'), $session_key);
$errCode = $pc->decryptData($encryptedData, $iv, $data);
if ($errCode == 0) {
$data = json_decode($data,true);
$CashierClient = new CashierClient;
$client = $CashierClient->where('id',$token_data['user_id'])->find();
if ($client) {
if ($client->mobile != $data['purePhoneNumber']) {
$client->mobile = $data['purePhoneNumber'];
$client->save();
}
return $this->apireturn('1','用户手机号码处理成功');
}else{
return $this->apireturn('4002','用户登录信息异常');
}
} else {
return $this->apireturn('4001','获取手机号码失败:'+$errCode);
}
}else{
return $this->apireturn('4000','登录信息失效'+$errCode);
}
}
前端小程序代码
getPhoneNumber:function(e){
console.log(e)
wx.request({
url: 'http://www.cashier.com/api/login/mobile',
data: {
iv: e.detail.iv,
encryptedData: e.detail.encryptedData
},
method: 'GET',
header: {
'content-type': 'application/json',
'user_token': wx.getStorageSync('tokens')
},
success: function (res) {
if (res.data.status == 1) {
wx.showToast({
title: '获取手机号成功',
icon: 'success',
duration: 2000,
success: function (res) {
console.log(res)
}
})
} else {
wx.showModal({
title: '提示',
content: '获取手机号失败,请重新尝试',
success: function (res) {
}
})
}
},
});
}