为了保证用户不受到骚扰,在开发者出现需要主动提醒、通知用户时,才允许开发者在公众平台网站中模板消息库中选择模板,选择后获得模板ID,再根据模板ID向用户主动推送提醒、通知消息。

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

案例:

{{first.DATA}}
买家名字:{{keyword1.DATA}}
付款金额:{{keyword2.DATA}}
下单时间:{{keyword3.DATA}}
{{remark.DATA}}

具体调用方法

第一步:获取模板ID
通过在模板消息功能的模板库中使用需要的模板,可以获得模板ID。
第二步:请求接口
请注意,URL置空,则在发送后,点击模板消息会进入一个空白页面(ios),或无法点击(android)。
POST请求
https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
请求包为一个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如下:

2、送达由于用户拒收(用户设置拒绝接收公众号消息)而失败时,推送的XML如下:

3、送达由于其他原因失败时,推送的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内容错误

PHP实现

1.实例化 获取appid,appsecret

function __construct($appid, $appsecret){$this->appid = $appid ? $appid : C('oauth_config.appid');$this->appsecret = $appsecret ? $appsecret : C('oauth_config.appsecret');}

2.获取access_token

/**
     * 获取微信基础接口凭证Access_token
     * @param $refresh 强制刷新, 默认false
     * @return String
     */function getAccess_token($refresh = false){$data = json_decode(file_get_contents("access_token.json"));if ($data->expire_time < time() || $refresh) {$url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid='.$this->appid.'&secret='.$this->appsecret;$result = json_decode(file_get_contents($url));$access_token = $result->access_token;if ($result->errcode && !$access_token) {$this->error('get access_token failed.');} else {$data->expire_time = time() + 7000;$data->access_token = $access_token;$fp = fopen("access_token.json", "w");fwrite($fp, json_encode($data));fclose($fp);$this->access_token = $access_token;}} else if (!$this->access_token){$this->access_token = $data->access_token;}return $this->access_token;}

3.发送模板消息

//发送模板消息function send_template_message($data){$url = 'https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=' . $this->getAccess_token();$result = $this->curlRequest($url, urldecode(json_encode($data)));return json_decode($result, true);}

4.组合消息数据

$data = array('touser' => $openid, // openid是发送消息的基础'template_id' => 'JkZGZlvL5ou_UFide5ncZOzLbtUaPPz8cuYdXUKEkzs', // 模板id'url' => $this->siteUrl . U('Store/Twitter/team'), // 点击跳转地址'topcolor' => '#FF0000', // 顶部颜色'data' => array('first' => array('value' => '邀请成功'),'keyword1' => array('value' => $data_arr['realname']),'keyword2' => array('value' => date('Y年m月d日 H:i', time())),'remark' => array('value' => '您的好友' . $data_arr['realname'] . '已经成为分销商'),));

5.获取openid,并发送消息

function send($type, $member_id, $data_arr) {$member = M('Member')->where(array('id' => $member_id))->find();$wxuser = M('Wxuser')->where(array('id' => $member['wxuser_id']))->find();//检测用户权限消息设置if ($member && $wxuser && $this->_checkset($type, $member)) {$data = $this->_getData($type, $wxuser['openid'], $data_arr);import('@.Action.WxDevelop');$tplmsg = new WxTmplmsg(C('PAY_WEIXIN')['appid'], C('PAY_WEIXIN')['appsecret']);return $tplmsg->send_template_message($data);}}

文章来源:http://www.cnblogs.com/jiqing9006/p/5220571.html

微信公众平台模板消息发送接口文档相关推荐

  1. 微信公众平台模板消息颜色错位bug以及修复

    前言:最近在网上看到某音上有个小东西挺有意思,感觉这波可以搞一搞玩玩 项目是使用微信公众平台的接口测试号实现每日天气推送 微信公众平台的消息模板测试 微信公众平台消息模板 我的模板是这么配置的 {{d ...

  2. 微信公众平台模板消息

    关键字:微信公众平台 模版消息 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/wechat-template-message.html 在这篇微信公众平台开 ...

  3. 微信公众平台模板消息 C# 操作

    在公众号开发或者其他应用开发过程中,很多场景下都需要向微信用户发送指定格式的消息,比如购买成功通知,刷卡通知等,笔者采用的是微信的模板消息形式.当然这个仁者见仁智者见智,有其他更好的形式则不必拘泥于此 ...

  4. php公众号模板消息群发,微信公众平台|模板消息群发功能

    小编之前发布过一篇"微信公众平台开发|发送模板消息"的文章,这篇只是发送给某个用户的,那么如何群发给关注该公众号的所有用户呢?下面我们来探讨一下. 最近关注了一个公众号,偶尔会给我 ...

  5. java开发微信第三方平台 模板消息发送消息案例

    今天利用自己的一点休息时间来编写了一个利用java开发的微信第三方平台,这次开发的目地是利用微信的模板消息无限的向关注用户推送消息.经过反复的测试,无BUG出现. 开发语言:java,数据库:mysq ...

  6. 提取微信公众平台模板消息字段

    2019独角兽企业重金招聘Python工程师标准>>> /*** 提取input输入框** @author: dingdayu(614422099@qq.com)* @param s ...

  7. 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?

    公众号平台上模板消息功能仅支持添加模板和更改所在行业,不支持模板消息推送,如果想要实现更多功能效果,可以使用微号帮平台的模板消息群发功能实现,也可以通过公众号平台的接口自己开发实现功能,均可以达到微信 ...

  8. 公众号获取用户手机号_微信公众号模板消息软件怎么指定用户发送?

    使用公众平台模板消息功能,仅支持添加模板和更改所在行业,如果想要实现更多功能效果,可以通过微号帮平台的模板消息群发功能实现,也可以自己根据公众平台的开发接口编程实现功能,均能实现微信公众号模板消息指定 ...

  9. 公众平台模板消息所在行业_第三方工具微信公众号模板消息群发如何操作?

    当下,公众平台模板消息功能仅支持添加模板,修改所在行业,如果想要群发模板消息,可以自己根据公众平台的接口编程实现,也可通过微号帮平台的模板消息群发功能实现,均可以让微信公众号群发模板消息,模板消息即按 ...

最新文章

  1. mysql 生成json,结合CONCAT()和COALESCE()在MySQL中生成JSON
  2. C++11中nullptr的使用
  3. Hyperbola(双曲线)
  4. 我来做百科(第二十天) D
  5. Nginx的反向代理 和 负载均衡
  6. jquery实现饼图统计图表
  7. 使用html5+的plus调起相机拍照,使用canvas压缩图片,转成base64传到后台
  8. 32乘法运算_算术运算指令
  9. cucumber 使用资料
  10. Splay模板 1.0
  11. sklearn 相似度矩阵_利用sklearn计算文本相似性
  12. 绑定流详解——网络测试仪实操
  13. PHP如何在两个大文件中找出相同的记录?
  14. spyder顺眼配色方案记录
  15. JavaWeb之jsp
  16. 教学反思计算机专业,【计算机教学反思】_计算机教学反思参考资料-毕业论文范文网...
  17. 史上最全python字符串操作指南 #华为云·寻找黑马程序员#
  18. Python分析香港26281套在售二手房数据!寸土寸金啊!
  19. 【JAVA】 容纳对象 数组
  20. vue 通过接口实现前端登录页验证码功能

热门文章

  1. 2020春季线上PAT甲级比赛经验(必看!!!)、155题目分类
  2. assetbundle能不能删除_AssetBundle 加载、使用以及卸载
  3. 恒压恒流电源的工作原理
  4. 远光软件参与鲲鹏技术分享沙龙 共促区域信创产业发展
  5. 计算机专业的怎能不知道的计算机入门网络知识——码民薄见
  6. 致远G6协同管理软件怎么样?
  7. OA系统排名?OA办公系统怎么选?
  8. 简谈Apple Pay
  9. 日语最爱用的暧昧语法:好像
  10. Duplicate class xx.xx.XX found in modules xx1-1.0 (xx.xx:mm1:1.0),... and xx2-1.0 (xx.xx:mm2:1.0)