微信公众号模板消息接口

说明

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

使用规则

1、所有服务号都可以在功能->添加功能插件处看到申请模板消息功能的入口,但只有认证后的服务号才可以申请模板消息的使用权限并获得该权限;
2、需要选择公众账号服务所处的2个行业,每月可更改1次所选行业;
3、在所选择行业的模板库中选用已有的模板进行调用;
4、每个账号可以同时使用25个模板。
5、当前每个账号的模板消息的日调用上限为10万次,单个模板没有特殊限制。【2014年11月18日将接口调用频率从默认的日1万次提升为日10万次,可在MP登录后的开发者中心查看】。当账号粉丝数超过10W/100W/1000W时,模板消息的日调用上限会相应提升,以公众号MP后台开发者中心页面中标明的数字为准。

其他说明

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


设置所属行业

设置行业可在微信公众平台后台完成,每月可修改行业1次,帐号仅可使用所属行业中相关的模板,为方便第三方开发者,提供通过接口调用的方式来修改账号所属行业
地址为:
post-https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN
post数据示例:

{
    "industry_id1":"1",
    "industry_id2":"4"
}
参数是否必须说明
industry_id1公众号模板消息所属行业编号
industry_id2公众号模板消息所属行业编号

行业代码查询

主行业副行业代码
IT科技互联网/电子商务1
IT科技IT软件与服务2
IT科技IT硬件与设备3
IT科技电子技术4
IT科技通信与运营商5
IT科技网络游戏6
金融业银行7
金融业基金理财信托8
金融业保险9
餐饮餐饮10
酒店旅游酒店11
酒店旅游旅游12
运输与仓储快递13
运输与仓储物流14
运输与仓储仓储15
教育培训16
教育院校17
政府与公共事业学术科研18
政府与公共事业交警19
政府与公共事业博物馆20
政府与公共事业公共事业非盈利机构21
医药护理医药医疗22
医药护理护理美容23
医药护理保健与卫生24
交通工具汽车相关25
交通工具摩托车相关26
交通工具火车相关27
交通工具飞机相关28
房地产建筑29
房地产物业30
消费品消费品31
商业服务法律32
商业服务会展33
商业服务中介服务34
商业服务认证35
商业服务审计36
文体娱乐传媒37
文体娱乐体育38
文体娱乐娱乐休闲39
印刷印刷40
其它其它41

获取设置的行业信息

获取帐号设置的行业信息。可登录微信公众平台,在公众号后台中查看行业信息。为方便第三方开发者,提供通过接口调用的方式来获取帐号所设置的行业信息
地址为:
get-https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=ACCESS_TOKEN
正常情况下微信后台会返回(示例):

{
    "primary_industry":{"first_class":"运输与仓储","second_class":"快递"},
    "secondary_industry":{"first_class":"IT科技","second_class":"互联网|电子商务"}
}
参数是否必填说明
access_token接口调用凭证
primary_industry帐号设置的主营行业
secondary_industry帐号设置的副营行业

获得模板ID

从行业模板库选择模板到帐号后台,获得模板ID的过程可在微信公众平台后台完成。为方便第三方开发者,提供通过接口调用的方式来获取模板ID
地址为:
post-https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN
POST数据示例如下(template_id_short表示模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式):

{
    "template_id_short":"TM00015"
}

正常情况下微信后台会返回(示例):

{
    "errcode":0,
    "errmsg":"ok",
    "template_id":"Doclyl5uP7Aciu-qZ7mJNPtWkbkYnWBWVja26EGbNyk"
}

获取模板列表

获取已添加至帐号下所有模板列表,可在微信公众平台后台中查看模板列表信息。为方便第三方开发者,提供通过接口调用的方式来获取帐号下所有模板信息
地址为:
get-https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN
正常情况下微信后台会返回(示例):

{    
 "template_list": [{
      "template_id": "iPk5sOIt5X_flOVKn5GrTFpncEYTojx6ddbt8WYoV5s",
      "title": "领取奖金提醒",
      "primary_industry": "IT科技",
      "deputy_industry": "互联网|电子商务",
      "content": "{ {result.DATA} }\n\n领奖金额:{ {withdrawMoney.DATA} }\n领奖  时间:{ {withdrawTime.DATA} }\n银行信息:{ {cardInfo.DATA} }\n到账时间:  { {arrivedTime.DATA} }\n{ {remark.DATA} }",
      "example": "您已提交领奖申请\n\n领奖金额:xxxx元\n领奖时间:2013-10-10 12:22:22\n银行信息:xx银行(尾号xxxx)\n到账时间:预计xxxxxxx\n\n预计将于xxxx到达您的银行卡"
   }]
}
参数是否必填说明
access_token接口调用凭证
template_id模板ID
title模板标题
primary_industry模板所属行业的一级行业
deputy_industry模板所属行业的二级行业
content模板内容
example模板示例

删除模板

删除模板可在微信公众平台后台完成,为方便第三方开发者,提供通过接口调用的方式来删除某帐号下的模板
地址为:
post-https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN
POST数据说明如下(template_id表示公众帐号下模板消息ID):

{
    "template_id" : "Dyvp3-Ff0cnail_CDSzk1fIc6-9lOkxsQE7exTJbwUE"
}

发送模板消息

地址为:
post-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"
            }
    }
}
参数是否必填说明
touser接收者openid
template_id模板ID
url模板跳转链接
miniprogram跳小程序所需数据,不需跳小程序可不用传该数据
appid所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系)
pagepath所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar)
data模板数据
color模板内容字体颜色,不填默认为黑色

注:url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。

在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:

{
    "errcode":0,
    "errmsg":"ok",
    "msgid":200228332
}

事件推送

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

送达成功时,推送的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发送状态为成功

送达由于用户拒收(用户设置拒绝接收公众号消息)而失败时,推送的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发送状态为用户拒绝接收

送达由于其他原因失败时,推送的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发送状态为发送失败(非用户拒绝)
要对接微信公众号模板消息接口,需要进行以下步骤: 1. 在微信公众平台上创建模板消息,获取模板 ID模板消息需要填充的关键词。 2. 在 PHP 代码编写发送模板消息的代码,包括获取 access_token 和发送模板消息。 3. 在用户触发某些事件时,调用 PHP 发送模板消息的代码。 以下是一个简单的 PHP 示例代码: ```php // 获取 access_token function getAccessToken($appID, $appSecret) { $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appID}&secret={$appSecret}"; $result = file_get_contents($url); $json = json_decode($result, true); if (isset($json['access_token'])) { return $json['access_token']; } else { return false; } } // 发送模板消息 function sendTemplateMessage($accessToken, $openID, $templateID, $data, $url = '') { $url = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={$accessToken}"; $data = [ 'touser' => $openID, 'template_id' => $templateID, 'url' => $url, 'data' => $data ]; $data = json_encode($data, JSON_UNESCAPED_UNICODE); $result = http_post_data($url, $data); $json = json_decode($result, true); if (isset($json['errcode']) && $json['errcode'] == 0) { return true; } else { return false; } } // 发送 POST 请求 function http_post_data($url, $data_string) { $ch = curl_init(); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json', 'Content-Length: ' . strlen($data_string)) ); ob_start(); curl_exec($ch); $result = ob_get_contents(); ob_end_clean(); curl_close($ch); return $result; } // 示例代码 $appID = 'your-app-id'; $appSecret = 'your-app-secret'; $accessToken = getAccessToken($appID, $appSecret); $openID = 'your-open-id'; $templateID = 'your-template-id'; $data = [ 'first' => ['value' => 'Hello World!', 'color' => '#173177'], 'keyword1' => ['value' => 'value1', 'color' => '#173177'], 'keyword2' => ['value' => 'value2', 'color' => '#173177'], 'remark' => ['value' => 'This is a remark.', 'color' => '#173177'] ]; $url = 'http://example.com'; $result = sendTemplateMessage($accessToken, $openID, $templateID, $data, $url); if ($result) { echo '发送成功!'; } else { echo '发送失败!'; } ``` 请注意,以上代码仅作为示例,需要根据实际情况进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值