微信 errcode:40029 errmsg:invalid code
博客专区 > gaopeng8 的博客 > 博客详情
微信 errcode:40029 errmsg:invalid code
gaopeng8 发表于3年前
微信 errcode:40029 errmsg:invalid code
  • 发表于 3年前
  • 阅读 12081
  • 收藏 3
  • 点赞 0
  • 评论 7
摘要: 微信 errcode:40029 errmsg:invalid code

微信网页授权提示 errcode:40029 errmsg:invalid code

测试发现是因为不明原因请求两次导致code失效(code只能使用一次)

解决方法:

在返回页面加try catch解决,具体原因稍后待查。

try {
	request.setCharacterEncoding("utf-8");
	response.setCharacterEncoding("utf-8");

	//网站id
	String websiteId = request.getParameter("websiteId");
	// 用户同意授权后,能获取到code
	String code = request.getParameter("code");
	// 用户同意授权
	if (!"authdeny".equals(code)) {
			// 获取网页授权access_token
			WeixinOauth2Token weixinOauth2Token = AdvancedUtil.getOauth2AccessToken("XXXXXXXXXXXXXXXXXX", "XXXXXXXXXXXXXXXXXX", code);
			// 网页授权接口访问凭证
			String accessToken = weixinOauth2Token.getAccessToken();
			// 用户标识
			String openId = weixinOauth2Token.getOpenId();
			// 获取用户信息
			SNSUserInfo snsUserInfo = AdvancedUtil.getSNSUserInfo(accessToken, openId);
			String nickName = CommonString.getFormatPara(snsUserInfo.getNickname());
	
			// 设置要传递的参数
			request.setAttribute("snsUserInfo", snsUserInfo);
			request.setAttribute("websiteId", websiteId);
	}
	//跳转到index.jsp
	request.getRequestDispatcher("/index.jsp").forward(request, response);
	return;
} catch (Exception e) {
	e.printStackTrace();
}


标签: 微信
共有 人打赏支持
粉丝 3
博文 20
码字总数 1566
评论 (7)
rayeaster
如果有两次redirect,第一次会自动结束,原因找到了吗?
Learners_
我加了try{}catch...还是不行!
Learners_
请问这个问题怎么解决呢?
Reliable_李
怎么解决的呢?
gaopeng8

引用来自“rayeaster”的评论

如果有两次redirect,第一次会自动结束,原因找到了吗?
不好意思,这个暂时就这样用着了,也没有时间去查证!
gaopeng8

引用来自“Reliable_李”的评论

怎么解决的呢?
兄弟,我也是参考了网上资料后用try/catch就好了!具体还没有时间去查证,如果对你来说不好用,你可以再去搜搜其他解决方法!微信这面我也是刚接触,只能等有时间我再去详细查找下原因了!
程序员jacky
P,加个try/catch就能好? 我估计是现在微信的授权是3.0的,你们参考的代码都是2.0的,获取token的方式都变掉了
×
gaopeng8
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: