为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板id,再根据模板id向用户主动推送提醒、通知消息。
模板消息调用时主要需要模板id和模板中各参数的赋值内容。请注意:
1.模板中参数内容必须以".data"结尾,否则视为保留字;
2.模板保留符号"{{ }}"
具体调用方法
第一步:获取模板id
通过在模板消息功能的模板库中使用需要的模板,可以获得模板id。
第二步:请求接口
请注意,url置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
post请求
请求包为一个json:
{
"touser":"openid",
"template_id":"ngqipbwh8bufcssecmogfxcv14j0tqlepbo27izeyty",
"url":"http://weixin.qq.com/download",
"topcolor":"#ff0000",
"data":{
"user": {
"value":"黄先生",
"color":"#173177"
},
"date":{
"value":"06月07日 19时24分",
"color":"#173177"
},
"cardnumber":{
"value":"0426",
"color":"#173177"
},
"type":{
"value":"消费",
"color":"#173177"
},
"money":{
"value":"人民币260.00元",
"color":"#173177"
},
"deadtime":{
"value":"06月07日19时24分",
"color":"#173177"
},
"left":{
"value":"6504.09",
"color":"#173177"
}
}
}
发送效果图:
事件推送
在模版消息发送任务完成后,微信服务器会将是否送达成功作为通知,发送到开发者中心中填写的服务器配置地址中。
1、送达成功时,推送的xml如下:
<xml>
<tousername>gh_7f083739789a]]>tousername>
<fromusername>oia2tjuegtnoex76qejqnrcurxg8]]&g;
1395658920
]]>msgtype>
<event>templatesendjobfinish]]>event>
<msgid>200163836msgid>
<status>success]]>status>
xml>
2、送达由于用户拒收(用户设置拒绝接收公众号消息)而失败时,推送的xml如下:
<xml>
<tousername>gh_7f083739789a]]>tousername>
<fromusername>oia2tjuegtnoex76qejqnrcurxg8]]>fromusername>
<createtime>1395658984createtime>
<msgtype>event]]>msgtype>
<event>templatesendjobfinish]]>event>
<msgid>200163840msgid>
<status>failed:user block]]>status>
xml>
3、送达由于其他原因失败时,推送的xml如下:
<xml>
<tousername>gh_7f083739789a]]>tousername>
<fromusername>oia2tjuegtnoex76qejqnrcurxg8]]>fromusername>
<createtime>1395658984createtime>
<msgtype>event]]>msgtype>
<event>templatesendjobfinish]]>event>
<msgid>200163840msgid>
<status>failed: system failed]]>status>
xml>
返回码说明
在调用模板消息接口后,会返回json数据包。正常时的返回json数据包示例:
{
"errcode":0,
"errmsg":"ok",
"msgid":200228332
}
错误时的返回json数据,形式类似,错误码请见本页下方返回码说明。
返回码 |
说明 |
-1 |
系统繁忙 |
0 |
请求成功 |
40001 |
验证失败 |
40002 |
不合法的凭证类型 |
40003 |
不合法的openid |
40004 |
不合法的媒体文件类型 |
40005 |
不合法的文件类型 |
40006 |
不合法的文件大小 |
40007 |
不合法的媒体文件id |
40008 |
不合法的消息类型 |
40009 |
不合法的图片文件大小 |
40010 |
不合法的语音文件大小 |
40011 |
不合法的视频文件大小 |
40012 |
不合法的缩略图文件大小 |
40013 |
不合法的appid |
41001 |
缺少access_token参数 |
41002 |
缺少appid参数 |
41003 |
缺少refresh_token参数 |
41004 |
缺少secret参数 |
41005 |
缺少多媒体文件数据 |
41006 |
access_token超时 |
42001 |
需要get请求 |
43002 |
需要post请求 |
43003 |
需要https请求 |
44001 |
多媒体文件为空 |
44002 |
post的数据包为空 |
44003 |
图文消息内容为空 |
45001 |
多媒体文件大小超过限制 |
45002 |
消息内容超过限制 |
45003 |
标题字段超过限制 |
45004 |
描述字段超过限制 |
45005 |
链接字段超过限制 |
45006 |
图片链接字段超过限制 |
45007 |
语音播放时间超过限制 |
45008 |
图文消息超过限制 |
45009 |
接口调用超过限制 |
46001 |
不存在媒体数据 |
47001 |
解析json/xml内容错误 |