模板消息
微信6.5.2及以上版本支持
基于微信的通知渠道,为开发者提供了可以高效触达用户的模板消息能力,以便实现服务的闭环并提供更佳的体验。
- 模板推送位置:服务通知
- 模板下发条件:用户本人在微信体系内与页面有交互行为后触发,详见 下发条件说明
- 模板跳转能力:点击查看详情仅能跳转下发模板的该帐号的各个页面
使用说明
步骤一:获取模板 ID
有两个方法可以获取模板 ID:
- 通过模板消息管理接口获取模板 ID(详见 模板消息管理)
- 在微信公众平台手动配置获取模板 ID
登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用,详见 模板审核说明
步骤二:页面的 <form/> 组件,属性 report-submit 为 true 时,可以声明为需要发送模板消息,此时点击按钮提交表单可以获取 formId,用于发送模板消息。或者当用户完成 支付行为,可以获取 prepay_id 用于发送模板消息。
prepay_id :微信支付的id
(消息通知怎么实现,后台发送的消息,微信怎么实现---------------------------------------------------------------------------------------------------------------)
步骤三:调用接口下发模板消息(详见 sendTemplateMessage )
使用效果
模板消息管理
示例|:
@Override
public void pushAssignGongdanToInstall(List<PhoenixUser> userList, Gongdan gongdan) throws Exception {
logger.info("推送调度信息给安装公司开始,工单id:" + gongdan.getId());
Area province = areaServiceAgent.findById(Long.parseLong(gongdan.getInstall_province()));
Area city = areaServiceAgent.findById(Long.parseLong(gongdan.getInstall_city()));
//安装地点
String installPlace = "";
if(province != null){
installPlace += province.getName();
}
if(city != null){
installPlace += city.getName();
}
installPlace += gongdan.getInstall_location();
Date now = new Date();
//模板消息
WechatTemplateMessage templateMessage = new WechatTemplateMessage();
//参数
HashMap<String,HashMap<String,String>> params = new HashMap<>();
//根据具体模板参数组装
params.put("first",WechatTemplateMessage.item("详细内容:你有一个新工单需要处理,请及时确认。", "#000000"));
params.put("keyword1",WechatTemplateMessage.item(gongdan.getOrderNum(), "#000000"));
params.put("keyword2",WechatTemplateMessage.item(DateUtil.dateTime(now), "#000000"));
params.put("keyword3",WechatTemplateMessage.item(installPlace, "#000000"));
params.put("remark",WechatTemplateMessage.item("感谢您的配合!", "#000000"));
//设置模板id
templateMessage.setTemplate_id(PropertiesUtil.getProperty("installAssginTemplateId"));
//设置参数
templateMessage.setData(params);
for (PhoenixUser user : userList){
logger.info("推送用户id:" + user.getId());
//设置推送用户
templateMessage.setTouser(user.getOpenId());
//推送消息
WechatTemplateMessageUtil.sendTemplateMessage(templateMessage);
}
logger.info("推送调度信息给安装公司结束,工单id:" + gongdan.getId());
}