微信小程序 订阅消息功能
步骤一 获取模板id
可以选择添加公共模板 (只能用一次)
步骤二 获取下发权限
下发权限的获取十分简单,只需要在小程序端调用requestSubscribeMessage API即可
使用方法:
wx.requestSubscribeMessage({ tmplIds: [], success (res) { } })
这个时候我们可以看到调用时,屏幕下部弹出一个消息框: 步骤三:调用接口下发订阅消息
(1)下发消息的核心在于发送POST请求:subscribeMessage.send,通过此条请求我们将获得下发能力:
-
请求示例:
{ "touser": "OPENID", "template_id": "TEMPLATE_ID", "page": "index", "miniprogram_state":"developer", "lang":"zh_CN", "data": { "number01": { "value": "339208499" }, "date01": { "value": "2015年01月05日" }, "site01": { "value": "TIT创意园" } , "site02": { "value": "广州市新港中路397号" } } }
(2)请求并不复杂,重要的是参数的获取,发送请求我们至少需要这些参数:
-
access_token接口调用凭证:参考博客 touser用户的 openid:参考博客: 所需下发的订阅模板id 数据包部分:data在前端填写好参数,传入服务器,注意数据包的参数规则:
例如,模板的内容为
姓名: { { name01.DATA}} 金额: { { amount01.DATA}} 行程: { { thing01.DATA}} 日期: { { date01.DATA}}
则对应的json为
{ "touser": "OPENID", "template_id": "TEMPLATE_ID", "page": "index", "data": { "name01": { "value": "某某" }, "amount01": { "value": "¥100" }, "thing01": { "value": "广州至北京" } , "date01": { "value": "2018-01-01" } } }
-
用这样的参数规则我们将前端的参数传入后台:
//发送订阅消息 message: function () { var that = this; //订阅消息模板id var template_id ="fqgotens_HRal3Ygiy7_WafYLsvDyMxvnNv9P8uJ_Ro"; wx.requestSubscribeMessage({ tmplIds: [fqgotens_HRal3Ygiy7_WafYLsvDyMxvnNv9P8uJ_Ro], success(res) { //发送access_token请求 wx.request({ url: https://littlede.applinzi.com/message.php, data:{ access_token: that.data.accessToken, //数据包 data:{ //openid "touser": that.data.openid, //模板id "template_id": template_id, "page": "index", "miniprogram_state": "developer", "lang": "zh_CN", "data": { "date1": { "value": "2020年02月18日" }, "phrase2": { "value": "岳阳市" }, "phrase3": { "value": "晴" }, "character_string4": { "value": "15℃" } } } }, success: function(res) { console.log("订阅成功"); console.log(res); }, fail: function(res) { console.log("订阅失败"); }, }) } }) },
-
服务器端代码:获取参数 发送post请求
最后我们调用函数,获取用户openid,获取access_token,获取模板id,发送subscribeMessage.send`post请求,可以看到用户成功接收到订阅消息: