1`. view视图代码
<button class="allow-btn" open-type="getPhoneNumber" @getphonenumber="getphonenumber">允许</button>`
- js代码
getphonenumber(e) {
this.$emit('getphonenumber',e);
console.log(e,"获取手机号信息");
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
}
- 调用授权code
// 获取微信授权
getWxCode() {
let that = this;
uni.login({
provider: 'weixin',
timeout: 3000,
success: res => {
console.log(res,"登录的结果值");
console.log(res.code, "code码")
if (res.code) {
//uni.setStorageSync('code', res.code)
that.code=res.code;
}
},
fail(err) {
console.log(err)
}
})
},
4.把加密值给后端进行解密
getphonenumber(e){
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
wx.checkSession({
success () {
//session_key 未过期,并且在本生命周期一直有效
},
fail () {
// session_key 已经失效,需要重新执行登录流程
this.getWxCode() //重新登录
}
})
//-----------------是否授权,授权通过进入主页面,授权拒绝则停留在登陆界面
if (e.detail.errMsg == 'getPhoneNumber:user deny') { //用户点击拒绝
uni.showToast({
title:"你点击了拒绝",
icon:"none"
})
} else { //允许授权执行跳转
this.iv=e.detail.iv;
this.encryptedData=e.detail.encryptedData;
// this.getWxCode();
this.gettoken(this.code)
}
},
selPhonenumber(data){
console.log(data,"获取手机号信息");
let that=this;
this.$api.sendRequest({
url:"/rest/getPhoneNo",
data:data,
success:res=>{
console.log(res,"返回手机号信息")
if(res.resultCode==200){
that.memberPhone=res.data.phoneNumber;
uni.setStorageSync('phoneNumber',that.memberPhone);
that.$refs['phonepopup'].close();
that.shopTimeshow();
}else{
uni.showModal({
title:"错误提示",
content:JSON.stringify(data)
})
}
}
})
},
解密出来的值如下: