600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 企业微信获取用户信息响应40029(微信小程序与公众号出现类似问题应该是同样的原因)

企业微信获取用户信息响应40029(微信小程序与公众号出现类似问题应该是同样的原因)

时间:2022-08-26 00:58:09

相关推荐

企业微信获取用户信息响应40029(微信小程序与公众号出现类似问题应该是同样的原因)

企业微信获取用户信息响应40029

在对接企业微信的时候需要通过code去获取userId,但是会返回40029的error码,经过测试与验证原因是访问地址

https://open./connect/oauth2/authorize?appid=xxxxxxxxxxxxxx&redirect_uri=&response_type=code&scope=snsapi_base&state=state#wechat_redirect

会重定向两次,后来问过企业微信人工客服

所以我们可以对userId进行缓存来解决这个问题,在出现40029异常的时候再去缓存中拿一次

(微信小程序与公众号出现类似问题应该是同样的原因)

public static String getUserId(String code,String accessToken ){String url = GET_USER_INFO.replace("ACCESS_TOKEN", accessToken).replace("CODE", code);String result = HttpRequest.get(url).execute().body();JSONObject jsonobject = JSONObject.parseObject(result);if(null!=jsonobject){if (jsonobject.containsKey("errcode") ){if (jsonobject.getString("errcode").equals("40029")){//判断是否有code重复消费的异常如果有则从redis缓存中取userIdSystem.out.println("UserId:"+redisTemplate.opsForValue().get(QYWX_USERID));return redisTemplate.opsForValue().get(USERID);}if (jsonobject.getString("errcode").equals("0")){//如果没有异常则将userId缓存到redisredisTemplate.opsForValue().set(USERID,jsonobject.getString("UserId"));System.out.println("userID:"+jsonobject.getString("UserId"));return jsonobject.getString("UserId");}}}return null;}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。