其实也比较简单,设置模板后推送即可,具体官方说明文档如下:
接口调用请求说明
http请求方式:POST https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN
POST数据说明如下:
{
"template_id" : "Dyvp3-Ff0cnail_CDSzk1fIc6-9lOkxsQE7exTJbwUE"
}
参数说明
参数 | 是否必须 | 说明 |
---|---|---|
access_token | 是 | 接口调用凭证 |
template_id | 是 | 公众账号下模板消息ID, 包括类目模板ID |
返回说明
在调用接口后,会返回JSON数据包。正常时的返回JSON数据包示例:
{
"errcode" : 0,
"errmsg" : "ok"
}
发送模板消息
接口调用请求说明
http请求方式: POST https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
POST数据说明
POST数据示例如下:
{
"touser":"OPENID",
"template_id":"ngqIpbwh8bUfcSsECmogfXcV14J0tQlEpBO27izEYtY",
"url":"http://weixin.qq.com/download",
"miniprogram":{
"appid":"xiaochengxuappid12345",
"pagepath":"index?foo=bar"
},
"client_msg_id":"MSG_000001",
"data":{
"keyword1":{
"value":"巧克力"
},
"keyword2": {
"value":"39.8元"
},
"keyword3": {
"value":"2014年9月22日"
}
}
}
参数说明
参数 | 是否必填 | 说明 |
---|---|---|
touser | 是 | 接收者openid |
template_id | 是 | 模板ID |
url | 否 | 模板跳转链接(海外账号没有跳转能力) |
miniprogram | 否 | 跳小程序所需数据,不需跳小程序可不用传该数据 |
appid | 是 | 所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏) |
pagepath | 否 | 所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),要求该小程序已发布,暂不支持小游戏 |
data | 是 | 模板数据 |
client_msg_id | 否 | 防重入id。对于同一个openid + client_msg_id, 只发送一条消息,10分钟有效,超过10分钟不保证效果。若无防重入需求,可不填 |
注:url和miniprogram都是非必填字段,若都不传则模板无跳转;若都传,会优先跳转至小程序。开发者可根据实际需要选择其中一种跳转方式即可。当用户的微信客户端版本不支持跳小程序时,将会跳转至url。
返回码说明
在调用模板消息接口后,会返回JSON数据包。正常时的返回JSON数据包示例:
{
"errcode":0,
"errmsg":"ok",
"msgid":200228332
}
可能出现的返回码
返回码 | 含义 |
---|---|
43116 | 该模板因滥用被滥用过多,已被限制下发 |
40249 | 不支持下发营销/推广类的消息内容 |
40250 | 下发消息内容不规范(包含空值等),建议检查内容规范性后再下发 |
40251 | 因历史违规导致平台限制账号调用上限,当前已到达下发上限 |
40252 | 正在调用的模板下发的部分内容已进入平台审核流程,在审核完成前,相关内容暂时无法下发 |
使用效果
示例教程:
1模板示例:
发送消息示例代码如下:
/// <summary> /// /// </summary> /// <param name="data"></param> /// <returns></returns> public static object SendTemplateMessage(string openid,string templateId,object templateData,string linkUrl,string access_token) { string url = $"https://api.weixin.qq.com/cgi-bin/message/template/send?access_token={access_token}"; //var postData = new { touser = openid, template_id = templateId, url = linkUrl, data = templateData }; //templateData示例数据: var postData = new { touser = openid, template_id = templateId, url = linkUrl, data = new { OrderNo = new { value = "A121" } } }; var tt = url.PostJsonAsync(postData).ReceiveString().Result; return tt; }