Fork me on GitHub

微信小程序开发的坑之 error code”:40029, invalid code

开发小程序时遇到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;
            }
            String sessionKey = session.getSessionKey();
            String openId = session.getOpenid();

 

无奈,这设计 只能导致我改动代码 ,需要二次调用远程api。第一次调用login 验证成功返回session key和openid,第二次调用save user api 保存用户信息到数据库。

posted @ 2018-01-21 17:56  低调的神  阅读(3317)  评论(0编辑  收藏  举报