微信企业号OAuth2接口40029错误解决方案
来源:互联网 发布:能过淘宝账号查一个人 编辑:程序博客网 时间:2024/06/04 18:55
这几天搞企业号,在跳转到网页获得用户授权的时候老是出问题第一次还好,成功获得授权,退出之后再次进入就是不行了。
文档里面说最好是缓存cookie,可以,但是当cookie失效后呢?再次进入就出问题了 报{'errcode':40029,'errmsg':'invalid code‘}
用工具一查尼玛,微信居然默认把第一次的正常请求废掉了(老子能骂脏话吗?)自己手机发起第二次请求,带的code还是第一次的 ,这个在5分钟内是不能重复的,所以报错40029.接着就上百度一顿查,有什么加&connect_redirect=1这个参数的,有try catch 的 ,我就问一下了,你们自己试过吗?就敢放到网上来浪费大家时间?
于是没有一个合理的解决方法,只能自己解决了。调用微信的接口工具,发现其实第一次的参数都是正确的,只不过被废掉了而已,那如果发现40029 那么重新再发一次原来的请求不就行了嘛?
好 上代码
public static String GetUserID (String access_token,String code ,String agentid){String UserId = "";CODE_TO_USERINFO = CODE_TO_USERINFO.replace("ACCESS_TOKEN", access_token).replace("CODE", code).replace("AGENTID", agentid);JSONObject jsonobject = WeixinUtil.HttpRequest(CODE_TO_USERINFO, "GET", null);if(null!=jsonobject){if (jsonobject.containsKey("errcode") ){ //是否有错误 if (jsonobject.getString("errcode").equals("40029")){ //是否为code错误 String newstr= CODE_TO_USERINFO.substring(0, CODE_TO_USERINFO.indexOf("&code=")).concat("&code=").concat(code); //去除错误的code加入正确的 jsonobject = WeixinUtil.HttpRequest(newstr, "GET", null);//重新发起请求}}UserId = jsonobject.getString("UserId"); //到这里应该能获得正确的用户信息了}else{System.out.println("获取授权失败");}return UserId;}
好了方法就是这样 但是应该还有更好的办法,请大家多多指教,第一次在csdn发帖,各位大哥多多包涵
今天最终发现彻底解决这个问题的办法,我想出这个问题的应该都是下载了 WeiXinEnterprises 这个版本的java开发包吧,现在发现问题出现在这个身上
CODE_TO_USERINFO = CODE_TO_USERINFO.replace("ACCESS_TOKEN", access_token).replace("CODE", code).replace("AGENTID", agentid);这个replace("ACCESS_TOKEN", access_token) 居然不起作用,access_token永远是第一次获得的值 所以导致40029错误,可能是静态方法中这个值不能被改变吧。
方法 就是改一下了
直接赋值
String url ="https://qyapi.weixin.qq.com/cgi-bin/user/getuserinfo?access_token="+access_token+"&agentid="+agentid+"&code="+code;
成功解决40029问题 。
1 0
- 微信企业号OAuth2接口40029错误解决方案
- 微信企业号OAuth2验证接口实例(使用SpringMVC)
- 微信企业号OAuth2验证接口的使用
- 微信企业号OAuth2验证接口(使用SpringMVC)
- 微信企业号简单的OAuth2验证接口实例(使用SpringMVC非注解方式)
- 微信企业号OAuth2.0验证接口来获取成员的身份信息
- 微信企业号:OAuth2.0微信授权验证
- 微信企业号OAuth2.0授权-Java
- C# 微信企业号--OAuth2.0验证
- 微信OAuth2.0网页授权接口
- 微信OAuth2网页授权登陆接口
- 微信OAuth2网页授权登陆接口
- 微信企业号OAuth2.0验证,微信企业号拍照上传,下载图片到自己的服务器
- 微信企业号 - OAuth验证接口
- 微信企业号开发者接口文档
- 微信企业号开发接口文档
- 微信企业号开启接口
- 接口发放微信企业号红包
- perl unload utf-8 oracle Wide character in print at unload_oracle.pl line 105.
- [Leetcode] String to Integer (atoi) 字符串转整数
- linux文件类型与扩展名
- 哈理工OJ 1248 The kth great number(平衡树求第k大数)
- 【XML】XML的基本使用(增删改查)
- 微信企业号OAuth2接口40029错误解决方案
- 【Android开发经验】比Gson解析速度快10倍!——Json解析神器Jackson使用介绍
- Spring Boot 2.0.0参考手册_中文版_Part IV_23
- 通信录作业,在链表中的结构体数组有点多此一举了
- Scala.js:将Scala编译为JavaScript的编译器
- 早上好!
- Linux下修改进程名称
- Django上传文件之iframe
- Codeforces Round #299 (Div. 2) C. Tavas and Karafs 二分搜索+数列