微信小程序-订阅消息服务通知

2020-07-08  本文已影响0人  我是张大龙

微信小程序目前支持一次性订阅模板消息,也就是首先在微信客户端用户允许订阅消息后,服务端可以按照指定模板推送消息给微信客服端,具体会在微信客户端的 服务通知 通知用户,可以快速跳转至微信小程序页面

在我之前文章 微信小程序-活动抽奖 中也有这种场景,用户使用抽奖小程序参与抽奖后,如果抽奖程序到了开奖时间,服务端会调用微信小程序订阅消息推送接口,以达到通知用户开奖提醒要求,从描述可以看出,代码主要分以下两部分:

一. 小程序客户端

参与抽奖界面.png

用户点击参与抽奖,调用小程序 wx.requestSubscribeMessage 方法,用户运行行为操作后,代码参考如下:

const version = wx.getSystemInfoSync().SDKVersion
if (util.compareVersion(version, '2.8.2') >= 0) { //同意接受服务通知
    wx.requestSubscribeMessage({
        tmplIds: ['一次性订阅tmplId'],
        complete(res) {
        }
    })
}    

二. 服务端

服务端根据实际场景调用小程序服务端 subscribeMessage.send 方法,我这示例是nodejs后台代码

微信订阅消息模板.png
const access_token = await this.getAccessToken() //获取access_token
const res = await axios.post(`https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=${access_token}`,{
    "touser": 'openid', //接收者(用户)的 openid
    "template_id":'template_id', //所需下发的订阅模板id
    "ht_ypE6PZGa5pCDrlX-2-FdfArpnz_JZ0ZkkKHGjLOA",
    "page": "index?id=1",//页面路径
    // "miniprogram_state": "developer",
    "lang": "zh_CN",
    "data": {
                "thing5": {
                    "value": "小萱花抽奖奖品"
                },
                "thing2": {
                    "value": "点击查看详情"
                },
                "date3": {
                    "value": dayjs().format('YYYY-MM-DD HH:mm') //dayjs模块
                },
                "phrase4": {
                    "value": "开奖了"
                }
        }
    }
)

微信端服务通知效果如下图:

微信服务通知.png

如果想了解更多效果可以微信扫描以下小程序码:


小萱花.jpg
上一篇 下一篇

猜你喜欢

热点阅读