【微信公众号开发】【12】模板消息
前言:
1,模板消息接口的使用规则可在官方文档中查看(官方文档地址见第一章)
2,自己申请的模板一般很难过审核,有发送模板消息的需求时,最好先在模板库中找到适合的模板
3,模板消息是主动发送给用户的通知类消息
4,模板ID最好写在配置文件中,命名易于区分,写备注,不然日后容易混乱
正文:
1,新建模板
{{first.DATA}}
文章标题:{{keyword1.DATA}}
作者名称:{{keyword2.DATA}}
分类:{{keyword3.DATA}}
{{remark.DATA}}
2,发送模板消息
private String TEMPLATE_MSG_URL = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=%s"; private void remind(Register info) { String accessToken = ""; //获取token,在第二章有介绍 String url = String.format(TEMPLATE_MSG_URL, accessToken); String templateId = Config.XXX; //模板ID,存在配置文件中 String json = TemplateData.New() .setTouser(info.getOpenId()) .setTemplate_id(templateId) .setUrl("XXX") .setColor("") .add("first", "尊敬的" + regInfo.getName() + "XXXXX", "") .add("keyword1", regInfo.getTitle(), "") .add("keyword2", regInfo.getName(), "") .add("keyword3", regInfo.getType(), "") .add("remark", "XXX", "") .build(); JSONObject jsonObject = HttpRequest.httpRequest(url, "POST", json); if (null != jsonObject) { if (0 != jsonObject.getInt("errcode")) { logger.info(String.format("patientAskRemindAsst error:%s %s", jsonObject.getInt("errcode"), jsonObject.getString("errmsg"))); } } }
TemplateData
package com.bf.weixin.params; import java.util.HashMap; import net.sf.json.JSONObject; public class TemplateData { private String touser; //接收者openid private String template_id; //模板ID private String url; //模板跳转链接 private String color; //模板内容字体颜色,不填默认为黑色 private TemplateItem data; //模板数据 public static TemplateData New() { return new TemplateData(); } private TemplateData() { this.data = new TemplateItem(); } public String getTouser() { return touser; } public TemplateData setTouser(String touser) { this.touser = touser; return this; } public String getTemplate_id() { return template_id; } public TemplateData setTemplate_id(String template_id) { this.template_id = template_id; return this; } public String getUrl() { return url; } public TemplateData setUrl(String url) { this.url = url; return this; } public String getColor() { return color; } public TemplateData setColor(String color) { this.color = color; return this; } public TemplateItem getData() { return data; } public TemplateData add(String key, String value, String color){ data.put(key, new Item(value, color)); return this; } /** * 直接转化成jsonString * @return {String} */ public String build() { return JSONObject.fromObject(this).toString(); } public class TemplateItem extends HashMap<String, Item> { private static final long serialVersionUID = -3728490424738325020L; public TemplateItem() {} public TemplateItem(String key, Item item) { this.put(key, item); } } public class Item { private Object value; private String color; public Object getValue() { return value; } public void setValue(Object value) { this.value = value; } public String getColor() { return color; } public void setColor(String color) { this.color = color; } public Item(Object value, String color) { this.value = value; this.color = color; } } }