模板消息相对来说用的比较多的了,建议有时间去读一下文档,多了解一下

springroot微信公众号 自定义菜单_模板消息

想要发送模板消息,首先你得有模板消息,所以要新建模板消息,在测试号里面是可以无限制新建的,在正式的公众号里面貌似需要申请,你可以从模板库里面导入,或者自己定义,一个月貌似是3条,如果急用肯定来不及,所以还是去模板库老老实实找吧,比较多,我这里没有正式号,所以没法演示,有机会补上去吧

下面我们来看测试号:

在你的测试号管理界面有一个模板消息接口,你可以选择新增,但是上限是十个,大概像这样

springroot微信公众号 自定义菜单_初始化_02

 

模板id就是我们开发者要使用的了,后面的就是展示给客户的内容了,然后还会有一个链接,就是点击这个消息会跳转到哪里

成功后大概是这样,我这里跳转的是百度

springroot微信公众号 自定义菜单_初始化_03

 

我们新增一条试试

springroot微信公众号 自定义菜单_post请求_04

内容

{
    {first.DATA}
} 
用户昵称:{
    {keyword1.DATA}
} 
绑定时间:{
    {keyword2.DATA}
} 
备注:{
    {keyword3.DATA}
} 
{
    {remark.DATA}
}

springroot微信公众号 自定义菜单_post请求_05

成功之后,这个后面的我们会用到,模板消息的数据有个规范

在我前面发的,你也可以查一下相关文档,好好熟悉一下

springroot微信公众号 自定义菜单_模板消息_06

发送模板消息,post请求,参数格式为json

 

开始代码

if ("4".equals(content)) {
			MsgUtil.sendTemplateMsgToUser( openId,response);
		}
public static void sendTemplateMsgToUser(String openId, HttpServletResponse response) {
		String msg = JSONObject.fromObject(MsgUtil.initTemplateMsg(openId, response)).toString();
		System.out.println("封装的模板消息是"+ msg);
		JSONObject result = HttpUtil.doPoststr(WeiXinUtil.SEND_TEMPLATE_MSG.replace("ACCESS_TOKEN", WeiXinUtil.getAccessToken()),msg);
		if("ok".equals(result.getString("errmsg"))){
			System.out.println("发送的结果是"+result);
        }
	}

这里首先初始化一条json数据,然后调用post请求发送

/**
	 * 初始化模板消息
	 * @param openId
	 * @param response
	 */
	public static TemplateMsg initTemplateMsg(String openId, HttpServletResponse response) {
		Map<String,TempData> m = new HashMap<String,TempData>();  
		TempData first = new TempData();  
		first.setColor("#000000");  
		first.setValue("您好,您有一条新通知。");  
		m.put("first", first);  
		TempData keyword1 = new TempData();  
		keyword1.setColor("#328392");  
		keyword1.setValue("小猪");
		m.put("keyword1", keyword1);  
		TempData keyword2 = new TempData();  
		keyword2.setColor("#328392");  
		keyword2.setValue("2014-10-19");  
		m.put("keyword2", keyword2);  
		TempData keyword3 = new TempData();  
		keyword3.setColor("#328392");  
		keyword3.setValue("您已经成功绑定");  
		m.put("keyword3", keyword3);  
		TempData remark = new TempData();  
		remark.setColor("#929232");  
		remark.setValue("请确认绑定信息");  
		m.put("remark", remark);
		TemplateMsg template = new TemplateMsg();  
		template.setUrl("www.baidu.com"); //模板详情链接
		template.setTouser(openId);  //接收者
		template.setTopcolor("#000000");  
		template.setTemplate_id("rcfRlSI6MnDAgFjVVkQtI2FpPWf9dXmODfUKJddlxyE");  //模板id
		template.setData(m);
		return template;
	}

springroot微信公众号 自定义菜单_初始化_07

对照参数说明来建立实体类

一个msg,然后里面有个map,key是string,value是data,然后data里面是value和颜色

实体类如下:

public class TemplateMsg {
	private String touser;
	private String template_id;
	private String url;
	private String topcolor;
	private Map<String,TempData> data;
	public String getTouser() {
		return touser;
	}
	public void setTouser(String touser) {
		this.touser = touser;
	}
	public String getTemplate_id() {
		return template_id;
	}
	public void setTemplate_id(String template_id) {
		this.template_id = template_id;
	}
	public String getUrl() {
		return url;
	}
	public void setUrl(String url) {
		this.url = url;
	}
	public Map<String, TempData> getData() {
		return data;
	}
	public void setData(Map<String, TempData> data) {
		this.data = data;
	}
	public String getTopcolor() {
		return topcolor;
	}
	public void setTopcolor(String topcolor) {
		this.topcolor = topcolor;
	}
	
	

}
public class TempData {

	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;
	}
	
	
}

日志信息如下

封装的模板消息是{"touser":"oHz9D0TObxbKYC720R61svLa0YDg","data":{"keyword3":{"color":"#328392","value":"您已经成功绑定"},"keyword1":{"color":"#328392","value":"小猪"},"keyword2":{"color":"#328392","value":"2014-10-19"},"remark":{"color":"#929232","value":"请确认绑定信息"},"first":{"color":"#000000","value":"您好,您有一条新通知。"}},"template_id":"rcfRlSI6MnDAgFjVVkQtI2FpPWf9dXmODfUKJddlxyE","url":"www.baidu.com","topcolor":"#000000"}
发送的结果是{"errcode":0,"errmsg":"ok","msgid":555163492806885379}

到此,微信发送模板消息就结束了,关于概念性的东西说的比较少,建议自己去看一下