开发完小程序后,在五千位用户中出现三例获取不到openid的问题!?
小程序端代码: [代码]actions: {[代码][代码] [代码][代码]async onLaunch ({ commit, state }) { //初始化后进行的一些异步操作[代码] [代码] [代码][代码]const [getUserWeixinInfoErr, userWeixinInfo] = await uni.getUserInfo() //首先获取用户微信信息[代码] [代码] [代码][代码]if (getUserWeixinInfoErr) { //获取用户微信信息失败后,提示用户,同时展示透明按钮[代码] [代码] [代码][代码]uni.hideLoading() //取消loading[代码] [代码] [代码][代码]uni.$emit('MESSAGE', '获取用户信息失败,请点击屏幕。允许本应用获取您的头像和昵称等信息!', 3456)[代码] [代码] [代码][代码]commit('SHOWGETUSERINFOBUTTON')[代码] [代码] [代码][代码]} else { //获取用户微信信息成功后,继续进行下一步[代码] [代码] [代码][代码]commit('GETUSERWEIXININFO', userWeixinInfo.userInfo) //将获取到的用户微信信息存在 store 里[代码] [代码] [代码][代码]const [ , { code }] = await uni.login() //获取 code,并将code 连同用户头像一同发给后台[代码] [代码] [代码][代码]this.$ajax.get(`${api_onLaunch}?code=${code}&avatar=${state.userWeixinInfo.avatarUrl}`).then(([ , { data: res }]) => {[代码][代码] [代码][代码]uni.hideLoading() //异步操作结束,停止 loading[代码][代码] [代码][代码]if (res.code === 200) { //当前微信用户已经绑定手机号了[代码] [代码] [代码][代码]commit('GETUSERSERVERINFO', res.data)[代码] [代码] [代码][代码]} elseif(res.code === 300) { //当前微信用户没有绑定手机号,弹出验证码框[代码] [代码] [代码][代码]commit('SHOWVERIFY')[代码] [代码] [代码][代码]}elseif(res.code === 401){[代码] [代码] login()[代码] [代码] }[代码] [代码] [代码][代码]})[代码][代码] [代码][代码]} [代码][代码] [代码][代码]}[代码][代码] [代码][代码]}[代码] 后端代码: [代码] $code[代码] [代码]= [代码][代码]$request[代码][代码]->code;[代码] [代码] $miniProgram[代码] [代码]= app([代码][代码]'wechat.mini_program'[代码][代码]);[代码] [代码] [代码][代码]$data[代码] [代码]= [代码][代码]$miniProgram[代码][代码]->auth->session([代码][代码]$code[代码][代码]);[代码][代码] [代码][代码]if[代码] [代码](isset([代码][代码]$data[代码][代码][[代码][代码]'errcode'[代码][代码]])) {[代码][代码] [代码][代码]return[代码] [代码]$this[代码][代码]->error(401);[代码][代码] [代码][代码]}[代码][代码] [代码][代码]$user[代码] [代码]= User::where([代码][代码]'openid'[代码][代码], [代码][代码]$data[代码][代码][[代码][代码]'openid'[代码][代码]])->first();[代码][代码] [代码][代码]if[代码] [代码](![代码][代码]$user[代码][代码]) {[代码][代码] [代码][代码]return[代码] [代码]$this[代码][代码]->response()->[代码][代码]array[代码][代码]([[代码][代码] [代码][代码]'code'[代码] [代码]=> 300,[代码][代码] [代码][代码]'message'[代码] [代码]=> [代码][代码]'没有绑定手机号'[代码][代码] [代码][代码]]);[代码][代码] [代码][代码]}[代码] 用户在绑定手机号后,再次登录小程序发现需要再次绑定,但是其openid是存在于数据库的。(ps:用户在别人的手机上登录他的微信号,可以正常访问)