对于众多运营者以及开发者而言,微信的模板消息功能并非陌生之事,然而,要切实以高效且合规的方式去运用它,那就还得深入探究其规则,以及详细的内容 。
获取模板消息的途径
以微信公众平台而言,获取消息模板存在主要的两种方式,测试号能够毫无限制地去新建模板,这给开发调试带来了极大的便利之处,然而正式的已认证公众号,一般而言是需要从模板库当中进行选择或者申请自定义模板的。
申请自定义模板,每月存在次数限制,通常不会超过三次。要是碰到紧急的运营活动需求,临时去申请,极有可能来不及。所以,建议平常就多去浏览官方模板库,预先收藏恰当的模板留作备用。
正式账号的模板管理
在正式运营的公众号里,模板消息的管理处于后台的“功能”模块那儿。服务号每个月能够主动给用户发送数量有限的模板消息,订阅号却只能在用户进行互动之后才会触发发送该消息。
挑选模板之际,需认真查看其归属行业以及具体的内容字段,以此保证和您的业务场景进行匹配。一旦添加成功之后,便会得到一个独一无二的模板ID,这可是后续调用接口的核心凭证。
测试号的配置与限制
对于开发者而言,测试号属于重要工具,其模板接口处在测试管理界面。虽说能够随意新增模板,然而总数上限通常是十个,这足以达成常规的功能测试 。
{
{first.DATA}
}
用户昵称:{
{keyword1.DATA}
}
绑定时间:{
{keyword2.DATA}
}
备注:{
{keyword3.DATA}
}
{
{remark.DATA}
}
配置模板之际,要填写标题,还要填写关键词,并且填写示例,系统会生成一个预览,这个预览能清晰展示消息最终的用户端样式,此样式涵盖各字段的排列顺序,及其颜色基调。
消息内容的数据结构
推送模板消息之际,内容数据务必依照严谨的JSON格式准则,顶层应当涵盖接收者OpenID、模板ID以及跳转链接这般的基础信息。
核心内容被放置于“data”对象里,每一个关键词都对应着一个对象,在这个对象内部需要设定“value”字段以及可选的“color”字段。颜色值要采用十六进制代码,就像“#173177”表示深蓝色那样。
通过API接口发送消息
发送动作借助一个HTTPS POST请求予以达成,该请求的地址是微信的固定API ,开发者要把构建好的JSON数据当作请求体去提交,并且携带有效的访问令牌 。
当接口调用成功之后,便会返回以JSON格式呈现的响应。对于响应之中的错误码,务必要进行正确的处理,比如说43004所代表的意思是用户并未关注公众号,而41030有可能是模板ID不正确。
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);
}
}
实际运用之时,常常缘于在模板行业方面挑选得不恰当亦或是关键词无法匹配,进而致使发送出现失败的情况。在此乃是建议,于发送的先行阶段,要在测试号着手展开完整流程的验证 。
能够提升送达率以及点击率,可对跳转链接予以优化,进而引导用户前往特定活动页面。与此同时,要留意发送频率,防止给用户带来骚扰,以至于引发投诉或者取关。
对于那些期望深度把握微信模板消息的开发者而言,你最为经常碰到的阻碍是什么呢?是接口调试所具备的复杂性,还是官方文档所存在的理解难度呢?欢迎于评论区之中分享你的经验,要是感觉本文存有帮助,也请进行点赞予以支持。
/**
* 初始化模板消息
* @param openId
* @param response
*/
public static TemplateMsg initTemplateMsg(String openId, HttpServletResponse response) {
Map m = new HashMap();
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;
} 
全国服务热线