前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >微信小程序开发心得第二章:千里传音(模板消息)

微信小程序开发心得第二章:千里传音(模板消息)

作者头像
极乐君
发布2018-02-05 17:07:08
8311
发布2018-02-05 17:07:08
举报
文章被收录于专栏:极乐技术社区极乐技术社区

今天分享一篇关于消息模板的简易教程。

老规矩先把官方的定义再讲一下,消息模板是基于微信的通知渠道,为我们开发者提供了触发模板消息的能力,以便实现服务的闭环和更好的用户体验。

发起消息模板是有限制条件的,必须用户本人在微信体系与小程序页面有交互行为后才能触发,只有两种情况允许。

第一种是用户在小程序完成支付的行为,可允许开发者向用户在7天内推送有限的模板消息,一次支付可发一条。

第二种是通过提交表单行为且表单需要声明为要发模板消息的,可以允许开发者向用户在7天内推送有限条数的模板消息,一次提交表单可发一条。

好了,废话就不多说了,还是看代码吧。更多官方的定义打开这个地址即可。https://mp.weixin.qq.com/debug/wxadoc/dev/api/notice.html

表单触发模板消息

基于微信的消息提示

由于没有正式上线,目前只能收到这样的信息,就表示模板消息发送成功了。

我用的是表单触发的模板消息,index.wxml部分很简单:代码如下

<form bindsubmit="formSubmit" report-submit="true"> <button formType="submit">提交表单发起通知</button> </form>

需要注意的是要在form加上 report-submit="true" 的属性和值。官方要求的,要遵循。

然后再看index.js部分

var app = getApp() Page({ data: { token: "", openid: "", appid: "你的appid", secret: "你的secret", template_id: "消息模板id,在小程序管理员账号中模板消息中设置获取" }, onLoad: function () { console.log('onLoad') }, onLoad: function () { //登录获取openid并保存 var that = this wx.login({ success: function (res) { if (res.code) { wx.request({ url: 'https://www.zgdnbxg.com/login.php', //后端处理页面返回openid data: { appid: that.data.appid, secret: that.data.secret, js_code: res.code, grant_type: "authorization_code" }, method: 'GET', success: function (res) { that.setData({ openid: res.data.openid }) }, fail: function (res) { console.log(res) }, complete: function (res) { console.log(res) } }) } }, fail: function () { // fail }, complete: function () { // complete } }) }, onReady: function () { //判断toke有没有值,没有就settokentoken 有的话就获取缓存并设置token var that = this if (that.data.token == "") { console.log("token 为空") that.setToken() } else { console.log("token 不为空") that.setData({ token: wx.getStorageSync('token') }) } }, //表单事件 触发模板消息 formSubmit: function (e) { var that = this wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/message/wxopen/template/send?access_token=' + wx.getStorageSync('token'), data: { touser: that.data.openid, form_id: e.detail.formId, template_id: that.data.template_id, value: "", }, method: 'POST', success: function (res) { console.log(res) }, fail: function (res) { console.log(res) }, complete: function () { } }) }, //获取token并保存在本地 setToken: function () { var that = this wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=' + that.data.appid + '&secret=' + that.data.secret, data: {}, method: 'GET', success: function (res) { var token = res.data.access_token that.setData({ token: token }) wx.setStorageSync('token', token) }, fail: function (res) { console.log("获取token失败") console.log(res) } }) } })

你可以把这段代码全部复制,然后把appid,secret,template_id换成你自己的,并通过小程序管理员配置下request,加上www.zgdnbxg.com,即可真机体验。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2016-12-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 极乐技术社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档