赞
踩
在使用getPhoneNumber前,可以先看下官方文档:文档地址
在注意这里,官方提到如果不使用之前wx.login调用获取的sessionKey的话,是无法解密由getPhoneNumber获取的encryptedData的。
所以我们需要先调用wx.login:
// An highlighted block wx.login({ success:(res) => { app.globalData.code = res.code wx.request({ url:api.WxLogin,//你的获取sessionKey的后台接口 data:{ code:app.globalData.code//wx.login获取的code }, method:"GET", success:(res)=>{ console.log("sessionkey",res.data.data.session_Key); app.globalData.sessionkey = res.data.data.session_Key; } }) } })
这样我们就成功获取了sessionKey了,然后我们再调用getPhoneNumber:
// An highlighted block getPhoneNumber(e){ var ivObj = e.detail.iv; //getPhoneNumber返回的数据 var cloudId = e.detail.cloudID; console.log("sessionkey",app.globalData.sessionkey); var telObj = e.detail.encryptedData;//getPhoneNumber返回的加密数据 console.log('telobj',telObj); console.log('ivObj',ivObj); //-----------------是否授权,授权通过进入主页面,授权拒绝则停留在登陆界面 if (e.detail.errMsg == 'getPhoneNumber:fail user deny') { //用户点击拒绝 that.hideModal(); } else { //允许授权执行跳转 wx.request({ url: api.AES_Decrypt, //你的解密接口地址 data: { key:app.globalData.sessionkey,//上面获取到的sessionKey encryptedDataStr: telObj, iv: ivObj }, method:"GET", success: function (res) { console.log('res',res.data); var phoneObj = res.data.data.phoneNumber;//获取得到手机号 console.log("手机号=", phoneObj) wx.setStorage({ //存储数据并准备发送给下一页使用 key: "phoneObj", data: res.data.data.phoneNumber, }) fail:function(){ console.log("失败"); } }) } }
获取结果:
这样就获取成功啦。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。