1、模板消息的概况

模板消息的定位是用户触发后的通知消息,不允许在用户没做任何操作或未经用户同意接收的前提下,主动下发消息给用户。目前在特殊情况下允许主动下发的消息只有故障类和灾害警示警告类通知,除此之外都要经过用户同意或用户有触发行为才能下发模板消息。公众号只能在模板库中按照自己的行业来选择模板。如果模板库中暂时没有你想要的模板,在满足微信规范和要求的情况下,可以为你所在的行业贡献新模板,帮助充实模板库
再来看下官方对于模板消息的使用规则:
  • 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
  • 需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
  • 在所选择行业的模板库中选用已有的模板进行调用;
  • 每个账号可以同时使用25个模板。
  • 当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。
从红色标记字体部分我们可以看到,要想使用模板消息,首先要求是认证后的服务号,其次,模板的框架是微信官方固定好的,根据不同的行业可以不同地选择,我们只能针对模板中的填充体进行变化。
上面提到的这点,我们从微信的接口文档注意事项也可以看到:
  • 模板消息调用时主要需要模板ID和模板中各参数的赋值内容;
  • 模板中参数内容必须以".DATA"结尾,否则视为保留字;
  • 模板保留符号"{{ }}"。
也就是说,当你申请了模板消息以后,设定了所属行业,你可以在微信后台的模板消息看到如下模板库(借用一下方倍老师的图片):
每个模板,都可以通过后面的详情,来查看其模板形式,和需要填充的内容(如下图):
之前我们也从文档中看到,每个账户可以同时拥有25个模板,也就是如上图所示的添加按钮,你可以添加25个不同模板,最总你会在你的模板库看到你添加的模板和对应的模板ID:

2、模板消息的推送

好了,现在我们知道模板消息是官方固定好的格式,我们填充内容。而且对应给了我们模板的ID,那么我们来看看,对于推送模板消息,需要我们提供哪些内容:
http请求方式: POST
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
2
1
http请求方式: POST 

2
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN

POST数据示例如下:
{"touser":"OPENID","template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY","url":"http://weixin.qq.com/download",  "miniprogram":{"appid":"xiaochengxuappid12345","pagepath":"index?foo=bar"},          "data":{"first": {"value":"恭喜你购买成功!","color":"#173177"},"keynote1":{"value":"巧克力","color":"#173177"},"keynote2": {"value":"39.8元","color":"#173177"},"keynote3": {"value":"2014年9月22日","color":"#173177"},"remark":{"value":"欢迎再次购买!","color":"#173177"}}
}
31
1
{

2
   "touser":"OPENID",

3
   "template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",

4
   "url":"http://weixin.qq.com/download",  

5
   "miniprogram":{

6
     "appid":"xiaochengxuappid12345",

7
     "pagepath":"index?foo=bar"

8
   },          

9
   "data":{

10
       "first": {

11
           "value":"恭喜你购买成功!",

12
           "color":"#173177"

13
       },

14
       "keynote1":{

15
           "value":"巧克力",

16
           "color":"#173177"

17
       },

18
       "keynote2": {

19
           "value":"39.8元",

20
           "color":"#173177"

21
       },

22
       "keynote3": {

23
           "value":"2014年9月22日",

24
           "color":"#173177"

25
       },

26
       "remark":{

27
           "value":"欢迎再次购买!",

28
           "color":"#173177"

29
       }

30
   }

31
}

参数说明:
参数     是否必填 说明
touser 接收者openid
template_id 模板ID
url 模板跳转链接
miniprogram 跳小程序所需数据,不需跳小程序可不用传该数据
appid 所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)
pagepath 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)
data 模板数据
注:url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
我们主要关注的是,如何构造一个符合格式体的JSON字符串,作为POST数据进行传递。从上面的POST示例中可以看到,其他部分的设定基本上都是获取的可以固定知晓的,而data部分,是根据模板格式的不同来填充,其中first和remark部分固定,而keynote部分根据模板不同,要求填写的也不同,必须和模板对应。

3、自定义模板

如果确实找不到我们自己所需要的模板,那么就在模板库中,点击选择 ”帮助我们完善模板库“
每个月只能自定义三个模板

提交模板之后,要接受7到15天的审核,审核一旦通过就可以开始使用你自己自定义的模版了。

对于自定义模板,还有一系列的审核标准(微信文档 - 消息管理 - 发送消息 - 模板消息运营规范),这里摘录格式和内容规范:
(1)格式
格式正确,模板标准格式(三段式模板)
{ {first.DATA} }
关键词1:{ {keyword1.DATA} }           
关键词2:{ {keyword2.DATA} }
关键词3:{ {keyword3.DATA} }                       
{ {remark.DATA} }
(2)内容
①标题、关键词带有品牌或公司名等没有行业通用性的内容,不能通过
包括但不限于:某某公司服务通知、某某商品购买通知
②标题不能带标点或其它特殊符号,且必须以“通知”或“提醒”结尾,否则不能通过
包括不限于:领取红包!、天气提醒!
③易被用作群发,标题或关键词不能简要说明具体服务行为或使用场景的模板不能通过
包括但不限于:管理员类通知、公告类通知、系统通知
④易对用户骚扰的,发送频率较高的模板不能通过
包括但不限于 :更新类通知、回复类通知、互动类通知
⑤推广宣传、营销类的模板不能通过
包括但不限于 :红包类通知、优惠券类通知、活动类通知、积分类通知、奖励类通知
⑥模板库里已存在类似的模板不通过

4、其他

附:
带JSON数据POST请求访问微信接口的方法:
//上传Json接口POST
public static com.alibaba.fastjson.JSONObject uploadPost(URL url,com.alibaba.fastjson.JSONObject json) throws Exception{HttpURLConnection conn =(HttpURLConnection) url.openConnection();conn.setConnectTimeout(8000);conn.setReadTimeout(8000);conn.setRequestMethod("POST");conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");conn.setDoOutput(true);conn.setDoInput(true);conn.setUseCaches(false);conn.connect();OutputStream os= conn.getOutputStream();os.write(json.toJSONString().getBytes("UTF-8"));//传入参数os.flush();os.close();InputStream is = conn.getInputStream();int size = is.available();byte[] buf=new byte[size];is.read(buf);String result =new String(buf,"UTF-8");return JSON.parseObject(result);
}
1
//上传Json接口POST

2
public static com.alibaba.fastjson.JSONObject uploadPost(URL url,com.alibaba.fastjson.JSONObject json) throws Exception{

3
    HttpURLConnection conn =(HttpURLConnection) url.openConnection();

4
    conn.setConnectTimeout(8000);

5
    conn.setReadTimeout(8000);

6
    conn.setRequestMethod("POST");

7
    conn.setRequestProperty("Content-Type","application/x-www-form-urlencoded");

8
    conn.setDoOutput(true);

9
    conn.setDoInput(true);

10
    conn.setUseCaches(false);

11
    conn.connect();

12
    OutputStream os= conn.getOutputStream();

13
    os.write(json.toJSONString().getBytes("UTF-8"));//传入参数

14
    os.flush();

15
    os.close();

16
    InputStream is = conn.getInputStream();

17
    int size = is.available();

18
    byte[] buf=new byte[size];

19
    is.read(buf);

20
    String result =new String(buf,"UTF-8");

21
    return JSON.parseObject(result);

22
}

转载于:https://www.cnblogs.com/deng-cc/p/6873141.html

微信公众号开发 [04] 模板消息功能的开发相关推荐

  1. 微信公众号如何开通模板消息功能?申请理由怎么写?

    微信模板消息是公司运营微信公众号很重要的一个功能么,特别是设置了店铺的微信服务号,可以及时提醒用户,当前订单或者业务的进度: 模版消息 介绍 模版消息接口让公众号可以向用户发送预设的模版消息. 模版消 ...

  2. 微信公众号推送模板消息工具类

    微信公众平台: 开通 模板消息功能 : 添加消息模板: 将模板id复制作为后台参数: 后台(java): 使用时直接调用WechatModelMessage.sendWechatmsgToUser() ...

  3. asp论坛回复功能怎么实现_微信公众号整合群发图文消息功能怎么实现?

    对于微信公众号整合区分图文消息功能的实现,微号帮平台提供了服务号每月400次群发功能实现,公众平台提供了接口编程开发实现功能,均能达到微信公众号群发图文消息的功能效果,实现订阅号每天群发1次消息,服务 ...

  4. php公众号客服消息图文,微信公众号发送客服消息功能怎么实现?

    1.微号帮平台:免费注册试用7天 根据页面上的提示完成新用户注册操作,>>立即注册 注册成功后,使用用户名.密码登录平台,>>立即登录 3.登录成功后,进入管理中心,选择添加公 ...

  5. 微信公众号如何实现模板消息发送的功能

    微信公众号为技术人员提供了开发接口,会代码的可以自己买服务器买域名开发,不会写代码.嫌麻烦.高成本,可以直接用微号帮平台,微信第三方平台. 实现模板消息发送功能,不限发送次数.无限群发,只要不违背微信 ...

  6. 微信公众号推送模板消息

    前言 因为微信接口的改版 无法获得用户的信息 只能通过用户注册拿到openid进行模板消息推送 首先查看文档 模板消息接口文档 如文档所示,我们需要的参数有access_tocken,template ...

  7. 记录使用.netcore 完成微信公众号推送模板消息

    /// <summary>/// 微信公众号发送消息/// </summary>/// <param name="data"></para ...

  8. 微信公众号发送中奖模板消息

    WinnerMessage实体类 private String touser; //用户OpenIDprivate String template_id; //模板消息IDprivate String ...

  9. SpringBoot开发微信公众号_回复文本信息功能

    公众号开发须知 很多人在刚刚开始接触公众号开发的时候,对公众号后台的服务器设置很迷茫,不知道怎么配置.我简单的给大家介绍一下. 1.如果你是想做信息回复功能的,就是你给公众号发相关的关键字,公众号直接 ...

最新文章

  1. Web Components 简述
  2. 可溶于水的机器人见过吗?明胶和糖3D打印而成,现登Science子刊封面
  3. Ubuntu 必装软件及安装教程
  4. 正则表达式 (grep)
  5. Smart Pointer
  6. php找出函数定义位置,WordPress如何快速定位PHP函数所在文件位置及代码行号?
  7. 矩阵的旋转和翻转——Python
  8. 剔除数组中的相同元素
  9. 算法分析:Oracle 11g 中基于哈希算法对唯一值数(NDV)的估算
  10. (62)SPI外设驱动协议(一)(第13天)
  11. Unity中脚本的生命周期
  12. 使用 CRF 做中文分词
  13. ajax 七牛云上传图片,学习笔记:利用七牛云上传图片小结
  14. JS中反射Reflect的基本使用
  15. iOS多线程之GCD
  16. Windows 7 万能驱动下载 免费
  17. 删除桌面上文件,提示此文件位置不在当前位置?
  18. 打开ftp文件服务器,打开ftp服务器文件管理
  19. iOS-Building for iOS Simulator, but the linked and embedded framework ‘XX.framework‘ was built for
  20. Android R上展讯平台CameraAPP的Settings设置项管理

热门文章

  1. 校招刷题---java选择题笔记05
  2. SELinux系列(十一)——SELinux策略规则查看方法(seinfo和sesearch)详解
  3. Linux系统基本操作(二)—设置本地光盘为yum源
  4. 从0-1教你大屏制作!实时数据处理+零代码,它的可视化堪比python
  5. 10张精美可视化大屏模板分享,加极简制作攻略!抓紧收藏
  6. java如何使用while_java中的while(true)语句的用法是什么
  7. linux关闭mysql日志记录_linux 下mysql 运行一段时间后自动关闭,日志无异常
  8. limit mysql 取最后_更优美的 limit 使用方法 (limit 对 mysql 数据查询的性能影响)
  9. 七牛切片视频php,音视频切片(HLS)
  10. matlab nntool教程,Matlab nntool 应用实例教材.doc