微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】


Posted in Javascript onMay 05, 2019

本文实例讲述了微信小程序实现发送模板消息功能。分享给大家供大家参考,具体如下:

一、获取access_token

access_token是接口调用的凭证,目前有效期为两个小时,需要定时刷新,重复获取将导致上次获取的access_token失效。(注:不建议每次调用需要access_token的接口,都去重新获取access_token,会导致失败)

获取access_token的接口地址:

https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

返回参数格式:

{"access_token": "ACCESS_TOKEN", "expires_in": 7200}

二、发送模板消息

先在微信公众平台选用怒需要的模板id,例如

选用模板消息:

https://mp.weixin.qq.com/wxopen/tmplmsg?action=self_list&token=264012870&lang=zh_CN

选用的是购买成功的模板,关键字可以自己定义顺序,如果不符合你的情况,还可以自定义关键字

微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】

选用好了之后,可以在我的模板中查看。然后将其模板id复制过来。

类似于这样 : _CfGS7SqVyNPg9Op8OXzMp6aOl7X9rCkrRfiMcccms8

发送模板的消息接口地址:

https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=ACCESS_TOKEN

参数:

touser (必填) 接收者(用户)的 openid
template_id (必填) 所需下发的模板消息的id
page (可选) 点击模板卡片后的跳转页面,仅限本小程序内的页面。支持带参数,(示例index?foo=bar)。该字段不填则模板无跳转。
form_id (必填) 表单提交场景下,为 submit 事件带上的 formId;支付场景下,为本次支付的 prepay_id
data (必填) 模板内容,不填则下发空模板
color (可选) 模板内容字体的颜色,不填默认黑色
emphasis_keyword (可选) 模板需要放大的关键词,不填则默认无放大

例如

html

<form bind:submit="testSubmit" report-submit="true">
  <button formType="submit">发送模板消息</button>
 </form>

js

testSubmit:function(e){
 var self= this;
 let _access_token = '5_E1pZJQzTC-lC0r-JJz9wVAZv5Zv22CNtmV_7C1T0sqC9TV7mGE4FTmDX2B0PVM4LaGtaTfXwzfJLnD7fDKTg8DOICJNkKBQgn_Ot2zYmBJyY1g1VXoBNdtwUE0QaP8_9tWlbR-Zq7L1OyrrPKCIjAEAOGM';
 let url='https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token='+_access_token
; let _jsonData = {
  access_token: _access_token,
  touser: openid,
  template_id: '_CfGS7SqVyNPg9Op8OXzMp6aOl7X9rCkrRfiMcccms8',
  form_id: e.detail.formId,
  page: "pages/index/index",
  data: {
  "keyword1": { "value": "测试数据一", "color": "#173177" },
  "keyword2": { "value": "测试数据二", "color": "#173177" },
  "keyword3": { "value": "测试数据三", "color": "#173177" },
  "keyword4": { "value": "测试数据四", "color": "#173177" },
  }
 }
 wx.request({
  url: url,
  data: data,
  method: method,
  success: function (res) {
   console.log(res)
  },
  fail: function (err) {
   console.log('request fail ', err);
  },
  complete: function (res) {
   console.log("request completed!");
  }
 })

结果:

类似于这种

微信小程序实现发送模板消息功能示例【通过openid推送消息给用户】

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
javascript学习笔记(十六) 系统对话框(alert、confirm、prompt)
Jun 20 Javascript
javascript引用类型指针的工作方式
Apr 13 Javascript
原生JavaScript制作微博发布面板效果
Mar 11 Javascript
Bootstrap编写一个兼容主流浏览器的受众门户式风格页面
Jul 01 Javascript
Wireshark基本介绍和学习TCP三次握手
Aug 15 Javascript
AngularJS的依赖注入实例分析(使用module和injector)
Jan 19 Javascript
解决Vue2.0自带浏览器里无法打开的原因(兼容处理)
Jul 28 Javascript
JS中的JSON对象的定义和取值实现代码
May 09 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 Javascript
详解Vue中组件的缓存
Apr 20 Javascript
Vue的click事件防抖和节流处理详解
Nov 13 Javascript
Angular短信模板校验代码
Sep 23 Javascript
浅谈Node 异步IO和事件循环
May 05 #Javascript
vue的列表交错过渡实现代码示例
May 05 #Javascript
微信小程序上传多图到服务器并获取返回的路径
May 05 #Javascript
详解如何在vue项目中使用layui框架及采坑
May 05 #Javascript
详解小程序input框失焦事件在提交事件前的处理
May 05 #Javascript
详解小程序毫秒级倒计时(适用于拼团秒杀功能)
May 05 #Javascript
小程序关于请求同步的总结
May 05 #Javascript
You might like
PHP mkdir()无写权限的问题解决方法
2014/06/19 PHP
jquery+php+ajax显示上传进度的多图片上传并生成缩略图代码
2014/10/15 PHP
Laravel 4.2 中队列服务(queue)使用感受
2014/10/30 PHP
学习php设计模式 php实现备忘录模式(Memento)
2015/12/09 PHP
PHP异常处理Exception类
2015/12/11 PHP
WordPress中用于检索模版的相关PHP函数使用解析
2015/12/15 PHP
WordPress的主题编写中获取头部模板和底部模板
2015/12/28 PHP
php json_encode与json_decode详解及实例
2016/12/13 PHP
实例分析10个PHP常见安全问题
2019/07/09 PHP
js 中{},[]中括号,大括号使用详解
2011/05/12 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
使用jQuery实现星级评分代码分享
2014/12/09 Javascript
自己编写的支持Ajax验证的JS表单验证插件
2015/05/15 Javascript
浅谈JS中的三种字符串连接方式及其性能比较
2016/09/02 Javascript
仿iframe效果Aajx文件上传实例
2016/11/18 Javascript
nodejs高大上的部署方式(PM2)
2018/09/11 NodeJs
webpack配置proxyTable时pathRewrite无效的解决方法
2018/12/13 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
原生JavaScript实现刮刮乐
2020/09/29 Javascript
[03:38]2014DOTA2西雅图国际邀请赛 VG战队巡礼
2014/07/07 DOTA
[55:54]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python扫描proxy并获取可用代理ip的实例
2017/08/07 Python
Python安装图文教程 Pycharm安装教程
2018/03/27 Python
python跳过第一行快速读取文件内容的实例
2018/07/12 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
CSS3实现大小不一的粒子旋转加载动画
2016/04/21 HTML / CSS
HTML5中在title标题标签里设置小图标的方法
2020/06/23 HTML / CSS
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
linux面试题参考答案(7)
2012/10/29 面试题
七年级政治教学反思
2014/02/03 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
教你用eclipse连接mysql数据库
2021/04/22 MySQL
Python实现简繁体转换
2021/06/07 Python
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python