一、介绍
微信支持根据模板id给微信某一个公众号的某一个用户发送模板消息
二、注意
- 发送模板消息使用access_token是普通access_token
- 下方代码使用的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.youkuaiyun.com/cl11992/article/details/86304653
UrlConUtil:https://blog.youkuaiyun.com/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);
}