<meta charset="utf-8">
一、請(qǐng)求發(fā)送 攜帶 code 到后臺(tái)換取 openid
var that = this;
wx.login({
success(res) {
console.log(res);
var code = res.code
wx.request({
url: 'http://localhost/index/users/code2seesion',
method: "post",
data: {
code
},
success: function (res) {
console.log(res.data.openid);
that.setData(res.data);
}
})
}
})
解析:
1淡溯、第一步打印出 wx.login 成功回調(diào)后的res console.log(res),下面是打印出的內(nèi)容
2柳刮、提取 code
var code = res.code;
3祷蝌、發(fā)送 post 請(qǐng)求到后臺(tái)換取 openid 攜帶參數(shù) data:{code} 打印成功回調(diào)console.log(res),下面是打印出的部分內(nèi)容:
<meta charset="utf-8">
可以清楚的看到session_key痴昧、openid稽穆、errMsg;這些參數(shù)在接下來的操作中有著重要的作用赶撰;
4舌镶、保存data內(nèi)容 里面包含 openid 和 session_key :that.setData(res.data);
二、以上操作完成并將參數(shù)保存下來之后豪娜,就可以開始獲取手機(jī)號(hào)了:
~獲取手機(jī)號(hào)是有特殊按鈕類型
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">獲取手機(jī)號(hào)</button>
類型和點(diǎn)擊事件都是指定了
open-type="getPhoneNumber" "bindgetphonenumber="getPhoneNumber"
getPhoneNumber: function (e) {
var that = this;
console.log(e.detail.errMsg == "getPhoneNumber:ok");
if (e.detail.errMsg == "getPhoneNumber:ok") {
wx.request({
url: 'http://localhost/index/users/decodePhone',
data: {
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
sessionKey: that.data.session_key,
uid: "",
},
method: "post",
success: function (res) {
console.log(res);
}
})
}
},
1餐胀、可以打印出 自己是否允許授權(quán) console.log(e.detail.errMsg == "getPhoneNumber:ok");
如果允許:true 如果拒絕:false
<meta charset="utf-8">
2、判斷用戶是點(diǎn)擊允許還是拒絕 這里的請(qǐng)求 需求攜帶四個(gè)必備參數(shù) 瘤载,可以打印出e.detail ~console.log(e.detail)
可以看到 encryptedData 否灾、iv 接下來可以繼續(xù)了
if (e.detail.errMsg == "getPhoneNumber:ok")
如果為 true 就開始 post 請(qǐng)求后臺(tái) 攜帶上 encryptedData 、iv 鸣奔、sessionKey 墨技、uid
data: {
encryptedData: e.detail.encryptedData,
iv: e.detail.iv,
sessionKey: that.data.session_key,
uid: "",
},
3、打印出成功的回調(diào)函數(shù) success: function (res) {console.log(res);} 可以看到里面有了~phoneNumber 手機(jī)號(hào)了