# 模板消息

**说明：服务号订阅通知功能开启灰度测试，模板消息能力可正常使用**

模板消息仅用于服务号向用户发送重要的服务通知，只能用于符合其要求的服务场景中，如信用卡刷卡通知，商品购买成功通知等。不支持广告等营销类消息以及其他所有可能对用户造成骚扰的消息。

关于使用规则，请注意：

1. 所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口，但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限；
2. 请根据认证服务号所属的行业和需要的模板消息类型，申请合适的服务类目，开放的服务类目可查看[服务类目](/doc/service/guide/product/subscription_messages/category)；
3. 每个服务号最多设置5个类目，每月可更改5次所选类目，更改或删除类目后，原类目下的模板将被删除；
4. 设置类目后，可在公共模板库中查询、选用已有的模板进行调用，每个账号可以同时使用25个模板；
5. 当前每个账号的模板消息的日调用上限为10万次，单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次，可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时，模板消息的日调用上限会相应提升，以服务号MP后台开发者中心页面中标明的数字为准。

关于接口文档，请注意：

1. 模板消息调用时主要需要模板ID和模板中各参数的赋值内容；
2. 模板中参数内容必须以".DATA"结尾，否则视为保留字；
3. 模板保留符号"{{ }}"。

## 接口列表

| 接口名称 | 请求路径 | 描述 |
| --- | --- | --- |
| [发送模板消息](/doc/service/api/notify/template/api_sendtemplatemessage.md) | /cgi-bin/message/template/send | 本接口用于向用户发送模板消息 |
| [选用模板](/doc/service/api/notify/template/api_addtemplate.md) | /cgi-bin/template/api_add_template | 本接口用于从类目模板库或行业模板库添加模板获得模板ID |
| [查询拦截的模板消息](/doc/service/api/notify/template/api_queryblocktmplmsg.md) | /wxa/sec/queryblocktmplmsg | 本接口用于查询被拦截的模板消息 |
| [删除模板](/doc/service/api/notify/template/api_deletetemplate.md) | /cgi-bin/template/del_private_template | 本接口用于删除账号下的指定模板 |
| [获取已选用模板列表](/doc/service/api/notify/template/api_getalltemplates.md) | /cgi-bin/template/get_all_private_template | 本接口用于获取已添加至账号下所有模板列表 |
| [获取行业信息](/doc/service/api/notify/template/api_getindustry.md) | /cgi-bin/template/get_industry | 本接口可获取账号设置的行业信息 |
| [设置所属行业](/doc/service/api/notify/template/api_setindustry.md) | /cgi-bin/template/api_set_industry | 本接口用于修改账号所属行业，修改行业后，你在原有行业中的模板将会被删除 |

## 事件推送

在模版消息发送任务完成后，微信服务器会将是否送达成功作为通知，发送到开发者中心中填写的服务器配置地址中。

1、送达成功时，推送的XML如下：

```xml
<xml> 
  <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>  
  <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>  
  <CreateTime>1395658920</CreateTime>  
  <MsgType><![CDATA[event]]></MsgType>  
  <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>  
  <MsgID>200163836</MsgID>  
  <Status><![CDATA[success]]></Status> 
</xml>

```

参数说明

| 参数 | 说明 |
| --- | --- |
| ToUserName | 服务号微信号 |
| FromUserName | 接收模板消息的用户的openid |
| CreateTime | 创建时间 |
| MsgType | 消息类型是事件 |
| Event | 事件为模板消息发送结束 |
| MsgID | 消息id |
| Status | 发送状态为成功 |

2、送达由于用户拒收（用户设置拒绝接收服务号消息）而失败时，推送的XML如下：

```xml
<xml> 
  <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>  
  <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>  
  <CreateTime>1395658984</CreateTime>  
  <MsgType><![CDATA[event]]></MsgType>  
  <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>  
  <MsgID>200163840</MsgID>  
  <Status><![CDATA[failed:user block]]></Status> 
</xml>

```

参数说明

| 参数 | 说明 |
| --- | --- |
| ToUserName | 服务号微信号 |
| FromUserName | 接收模板消息的用户的openid |
| CreateTime | 创建时间 |
| MsgType | 消息类型是事件 |
| Event | 事件为模板消息发送结束 |
| MsgID | 消息id |
| Status | 发送状态为用户拒绝接收 |

3、送达由于其他原因失败时，推送的XML如下：

```xml
 <xml> 
  <ToUserName><![CDATA[gh_7f083739789a]]></ToUserName>  
  <FromUserName><![CDATA[oia2TjuEGTNoeX76QEjQNrcURxG8]]></FromUserName>  
  <CreateTime>1395658984</CreateTime>  
  <MsgType><![CDATA[event]]></MsgType>  
  <Event><![CDATA[TEMPLATESENDJOBFINISH]]></Event>  
  <MsgID>200163840</MsgID>  
  <Status><![CDATA[failed: system failed]]></Status> 
</xml>

```

参数说明

| 参数 | 说明 |
| --- | --- |
| ToUserName | 服务号微信号 |
| FromUserName | 接收模板消息的用户的openid |
| CreateTime | 创建时间 |
| MsgType | 消息类型是事件 |
| Event | 事件为模板消息发送结束 |
| MsgID | 消息id |
| Status | 发送状态为发送失败（非用户拒绝） |
