在维护程序的时候,需要新增微信通知消息的功能,下面记录一下通知消息的发送流程
(1)先写一个发送https和http请求的工具类,这里选择了httpclent来实现该类的全部内容在前面的博客里面有记录,这里就不复制代码了
(2)写一个微信消息的工具类,以后方便调用
public static boolean sendMassage(String openId, ItemReturnMessage returnMessage) throws Exception { String access_token = getAccessToken(); String sendParamUrl = sendMessageUrl + "?access_token=" + access_token; JSONObject param = new JSONObject(); param.put("touser", openId);//openid 发送给谁 param.put("miniprogram_state", miniprogram_state);//发送给那个版本 param.put("template_id", resultMessageId);//发送订阅消息模板 param.put("page", goPage); param.put("data", returnMessage); //发送消息 JSONObject object = HttpUtil.sendHttpsPost(sendParamUrl, param.toJSONString()); logger.info(object.toJSONString()); if ("ok".equals(object.get("errmsg"))) { return true; } else { logger.error("微信授权失败"); return false; } }
(3)上面需要一个获取token的方法,代码如下
/** * 获取服务器token * * @return * @throws Exception */ public static String getAccessToken() throws Exception { String sendParamUrl = accessTokenUrl + "?appid=" + appid + "&secret=" + secret + "&grant_type=" + grant_type_msg; //发送获取token请求 JSONObject object = HttpUtil.sendHttpsPost(sendParamUrl, null); logger.info(object.toJSONString()); if (object.getInteger("expires_in").intValue() != 7200) { throw new AuthException("获取服务token失败"); } else { return object.getString("access_token"); } }
(4)在业务里面调用该方法即可