一、概述
-
如模板消息仅用于公众号向用户发送重要的服务通知,只能用于符合其要求的服务场景中,如信用卡刷卡通知,商品购买成功通知等。不支持广告等营销类消息以及其它所有可能对用户造成骚扰的消息。
-
例如您关注一个公众号后,有些公众号会不定时的推送一些消息,就是使用的模板消息。
-
官方文档地址:https://developers.weixin.qq.com/doc/offiaccount/Message_Management/Template_Message_Interface.html
-
如果您对公众号开发流程不是很了解,或者没有什么基础请先看微信公众号开发基础架构搭建。
二、配置模板消息模板
- 在微信公众号平台中配置模板消息模板。
三、发送模板消息
- 下面模拟发送一条模板消息,通过访问地址/weixin/tempmsg/put就可以向目标用户推送一条消息。
package top.yiqifu.weixin.offiaccount.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import top.yiqifu.weixin.offiaccount.config.WeixinConfig;
import weixin.popular.api.MessageAPI;
import weixin.popular.bean.BaseResult;
import weixin.popular.bean.message.templatemessage.TemplateMessage;
import weixin.popular.bean.message.templatemessage.TemplateMessageItem;
import weixin.popular.support.TokenManager;
import java.util.LinkedHashMap;
@Controller()
@RequestMapping("/weixin/tempmsg")
public class WeixinTempmsgController {
@Autowired
WeixinConfig config;
@RequestMapping("put")
@ResponseBody
public BaseResult put(){
String toUser = "owzn_6l6R_0HXKwD2Jnhzz5zP_xo";
TemplateMessage msg = new TemplateMessage();
msg.setTouser(toUser);
msg.setUrl("http://baidu.com");
msg.setTemplate_id("VOhM-XnkD-HCb3-il8XQF2aKlzlF6xgaIeiWy61u0_c");
LinkedHashMap<String, TemplateMessageItem> items = new LinkedHashMap<>();
items.put("total", new TemplateMessageItem("100.00", "#00ff00"));
msg.setData(items);
return MessageAPI.messageTemplateSend(TokenManager.getToken(config.getAppID()), msg);
}
}