微信开发-根据模板id发送消息

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/cl11992/article/details/86590564

一、介绍

微信支持根据模板id给微信某一个公众号的某一个用户发送模板消息

二、注意

  1. 发送模板消息使用access_token是普通access_token
  2. 下方代码使用的url如果不传,发送模板消息的时候,无法点击跳转。只有传url,才可以点击跳转

三、微信支持的模板消息

四、代码实例

MessageData.java

public class MessageData {

	TemplateData first;
	
	TemplateData keyword1;
	
	TemplateData keyword2;
	
	TemplateData keyword3;
	
	TemplateData remark;

	public TemplateData getFirst() {
		return first;
	}

	public void setFirst(TemplateData first) {
		this.first = first;
	}

	public TemplateData getKeyword1() {
		return keyword1;
	}

	public void setKeyword1(TemplateData keyword1) {
		this.keyword1 = keyword1;
	}

	public TemplateData getKeyword2() {
		return keyword2;
	}

	public void setKeyword2(TemplateData keyword2) {
		this.keyword2 = keyword2;
	}

	public TemplateData getKeyword3() {
		return keyword3;
	}

	public void setKeyword3(TemplateData keyword3) {
		this.keyword3 = keyword3;
	}

	public TemplateData getRemark() {
		return remark;
	}

	public void setRemark(TemplateData remark) {
		this.remark = remark;
	}
}

下面代码需要的类

AccessTokenUtils:https://blog.csdn.net/cl11992/article/details/86304653

UrlConUtil:https://blog.csdn.net/cl11992/article/details/86303800

public void messageTemplateSend(String url, MessageData data, String appid, String openId, String templateid) throws Exception {
	//获取access_token
	Map<String, String> accessTokenMap = AccessTokenUtils.getAccessToken;
	String token = accessTokenMap("access_token");
	String msgurl = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + token;
	Template temp = new Template();
	temp.setUrl(url);
	temp.setTouser(openId);
	temp.setTopcolor("#000000");
	if (StringUtils.isBlank(templateid)) {
		logger.error("-------------请配置" + appid + "的模板ID-------------");
		return;
	}
	temp.setTemplate_id(templateid);
	temp.setData(data);
	String jsonString = JSONObject.toJSONString(temp).toString();
	JSONObject jsonObject = UrlConUtil.httpsRequest(msgurl, "POST", jsonString);
	int result = 0;
	if (null != jsonObject) {
		if (0 != jsonObject.getIntValue("errcode")) {
			result = jsonObject.getIntValue("errcode");
			logger.error("错误 errcode:{} errmsg:{}", jsonObject.getIntValue("errcode"), jsonObject.getString("errmsg"));
		}
	} else {
		logger.info("模板消息发送结果:无返回信息");
	}
	logger.info("模板消息发送结果:" + result);
}

猜你喜欢

转载自blog.csdn.net/cl11992/article/details/86590564