diff --git a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java index 12dadb9..d96a26f 100644 --- a/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java +++ b/talkonlineweb/src/main/java/com/lyms/talkonlineweb/util/WeiXinUtil.java @@ -82,7 +82,7 @@ public class WeiXinUtil { * @param template_id 公众号消息模板id * @param dataMap 推送内容消息主题显示相关map */ - public static Integer SendWeChatMsg(String openid, String template_id, Map dataMap, Map mapInfo) { + public static Integer SendWeChatMsg(String openid, String template_id, Map dataMap, Map mapInfo)throws Exception { //整体参数map Map paramMap = new HashMap(); paramMap.put("touser", openid); @@ -101,19 +101,22 @@ public class WeiXinUtil { paramMap.put("miniprogram", miniprogram); paramMap.put("data", dataMap); // 接口地址 -// boolean TokenValid=true; - while (true) { + //处理access_token失效报40001 + Integer code=null; + for(int i=0;i<3;i++) { String sendMsgApi = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + AccessTokenServlet.accessToken; String result = repeatDoGetPost(sendMsgApi, "POST", paramMap); if (StringUtil.isEmpty(result)) { - return null; + break; } Map resultMap = JSON.parseObject(result, HashMap.class); - Integer code=Integer.parseInt(resultMap.get("errcode").toString()); + code=Integer.parseInt(resultMap.get("errcode").toString()); if(!code.equals(40001)){ - return code; + break; } + Thread.sleep(1000 * 1);//解决access_token替换时间差保证access_token长期有效 } + return code; } /**