本文主要是介绍java中微信订阅消息发送通知,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、开发中实际场景,例如用户余额不足时像用户发送余额不足通知
1.在微信公众平台申请订阅消息功能
2.编写测试类发送通知
1.获取token
2.组装报文
3.调用微信api
4.获取返回状态码成功,则为ok
public void sendChargeMessage() {Token token = Token.getInstance();String accessToken = token.getAccessToken();System.out.println("我拿到token了++++++++" + accessToken);Map<String, WeChatTemplateData> data = new HashMap<>();WeChatTemplateData templateOrderIdData = new WeChatTemplateData();templateOrderIdData.setValue("");templateOrderIdData.setColor("#173177");WeChatTemplateData templateNameData = new WeChatTemplateData();templateNameData.setValue("");templateNameData.setColor("#173177");WeChatTemplateData templateTing5Data = new WeChatTemplateData();templateTing5Data.setValue("");templateTing5Data.setColor("#173177");WeChatTemplateData templateAmountData = new WeChatTemplateData();templateAmountData.setValue("");templateAmountData.setColor("#173177");DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy年M月d日 HH:mm");LocalDateTime currentDateTime = LocalDateTime.now();String formattedDateTime = currentDateTime.format(formatter);WeChatTemplateData templateTimeData = new WeChatTemplateData();templateTimeData.setValue(formattedDateTime);templateTimeData.setColor("#173177");data.put("character_string4", templateOrderIdData);data.put("thing1", templateNameData);data.put("thing3", templateTing5Data);data.put("amount2", templateAmountData);data.put("time5", templateTimeData);log.info("消息发送数据:{}", data.toString());String result = this.chargeMessage(accessToken, open_id, data);log.info("消息发送结果:", result);}/*** 发送余额不足消息** @param accessToken* @param touser* @param map* @return*/public String chargeMessage(String accessToken, String touser, Map<String, WeChatTemplateData> map) {WechatTemplate message = new WechatTemplate();//拼接数据message.setPage(messPath);message.setData(map);message.setTouser(touser);message.setTemplate_id(chargeTemId);message.setAccess_token(accessToken);message.setMiniprogram_state(type);//跳转小程序类型 “体验版”String json = com.alibaba.fastjson.JSONObject.toJSONString(message);System.out.println("要发送的数据" + json);String ret = URLUtils.sendPost("https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=" + accessToken, json);return ret;}
3.封装的实体类WechatTemplateData
public class WeChatTemplateData {private String value; private String color;public String getValue() {return value;}public void setValue(String value) {this.value = value;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}
}
点赞加关注,持续更新中!!!
这篇关于java中微信订阅消息发送通知的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!