微信小程序登录获取手机号获取不到偶发性问题

1.第一次获取手机号,微信使用的是当前session_key对手机号进行加密,而我们的session_key还是空的,或者用户之前登录过,那么session_key就是上一次登录的状态。解密失败

第二次获取手机号我们通过上次登录获取了最新的session_key,服务端也存了同样的一份session_key,微信加密和我们服务器解密使用的是同一份数据解密成功。

解决办法

知道了登录的问题所在,当用户授权之前,应该使得服务端session_key和当前session_key保持一致

// 该方法应该在进入页面的时候,或者getPhonenumber之前调用
onShow(){
   // 如果有session_id,可以检查一下是否过期
	wx.checkSession()
	// 过期就登录
	wx.login()
	// 将session状态同步至服务器
	// 登录成功后本地可以保存一份session_id
},
methods:{
    getPhonenumber(e){
          // 获取手机号逻辑
    }
}

你可能感兴趣的:(微信)