开发小程序时遇到40029 code ,
我设计流程是根据wx.login生成的code 去我服务器上调用验证接口 ,接口function里 自己请求微信服务器地址做验证,验证成功后 将登陆用户的信息 一并保存进数据库。但是在开发时却总是提示无效code,网上都说是调用了二次 所以无效,但是看我代码 是没有调用两次的。
通过分析微信小程序api,这是因为我在wx.login方法里 先调用了 wx.getUserInfo 再去请求我服务器的api ,这样就导致了2次,getUserInfo 方法里也会自己请求微信服务器的。这样一来 我就不能在login验证时 一并将客户端user信息存入数据库。
远程验证api中有这样的代码会去请求微信服务器,用的是开源的 小程序框架组件。
WxMaJscode2SessionResult session = this.wxService.getUserService().getSessionInfo(code); if (session == null || session.getSessionKey().length() <= 0) { return null