微信小程序 获取用户手机号
-
微信小程序 获取用户手机号,第一次总会解密失败,第二次就好了,当我退出,再次登录后,又解密失败,刷新后再次登录又可以登录了,请问这是什么原因呢?
//小程序端代码 Taro.request({ url: '' method: 'GET', }).then(resx => { if (resx) { Taro.setStorage({key: 'openid', data: resx.data}); Taro.request({ url: '', data: { encryptedData: encryptedData, iv: iv, sessionKey: resx.data.session_key, }, method: 'GET', }).then(res => { }) } })
//服务端代码,这里是调用的微信提供的解密方法 getPhoneNumber : async (req, res) => { let appId = ''; let sessionKey = req.query.sessionKey; let encryptedData = req.query.encryptedData; let iv = req.query.iv; let pc = new WXBizDataCrypt(appId, sessionKey); let data = pc.decryptData(encryptedData, iv); return await data; },
-
用小程序原生写法会这样么? 这里内部没有做什么操作
-
getMobile = (e) => {
let _this = this
Taro.login({
success: function (res) {
_this.setState({
code: res.code
})
}
})
this.setState({
phoneDate: e.detail
})
if (!e.target.encryptedData) {
return null
} else {
let data: any = {}
data.code = this.state.code
data.iv = e.detail.iv
data.encryptedData = e.detail.encryptedDatathis.props.onWxLogin(data) Taro.showLoading() }
}
我之前也遇到这样的了。我现在用这种写法基本不会出现你这个问题了