微信小程序獲取用戶手機號

獲取手機號第一次不能在開發工具中使用,須要在真機上獲取,第一次須要用戶獲取短信驗證碼。php

微信小程序代碼:html

getPhoneNumber: function (e) {
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
that.callBackError(e.detail.errMsg);
} else {
let params = {
open_id: wx.getStorageSync('wx_openid'),//用戶open_id,不必定須要
sessionKey: wx.getStorageSync('session_key'),//調用wx.loign接口 獲取code 上傳服務器獲取用戶open_id ,session_key
encryptedData: e.detail.encryptedData,//調用獲取用戶手機號組件,直接獲取
iv: e.detail.iv,//調用獲取用戶手機號組件,直接獲取
userType: 3//不必定須要
}
console.log(params);
return;
https.user(config.user, params).then((res) => {
console.log(res)
}).catch(e => {
that.callBackError(e.message);
});
}
},
 
thinkPHP5代碼
use app\lib\wxlib\wxBizDataCrypt;
private function getUserPhone($user)
{
$appid = Config::get("WXAPPID");
$sessionKey = $_POST['sessionKey'];
$encryptedData = $_POST['encryptedData'];
$iv = $_POST['iv'];
$wx = new wxBizDataCrypt($appid, $sessionKey);//微信解密函數,微信提供了php代碼dome
$errCode = $wx->decryptData($encryptedData, $iv, $data);//微信解密函數
if ($errCode == 0) {
$data = json_decode($data, ture);
$phoneNumber = $data['phoneNumber'];
$user->where('open_id',$_POST['wx_openid'])->update(['phone' => $phoneNumber]);
return json_encode(['errorCode' => 0,"phone" => $phoneNumber]);
} else {
return $data;
}
}
 微信解密函數https://developers.weixin.qq.com/miniprogram/dev/api/signature.html#wxchecksessionobject
相關文章
相關標籤/搜索