一个简单常见的需求:推送小程序消息通知到用户!
需要解决的问题:
小程序支持通过【消息模板】向“订阅消息”的用户推送消息通知!

由于长期订阅目前仅面向公共服务开放,如此我等普通小程序就只能选择一次性订阅了!

1)自定义消息模板接口已废弃

2)不支持新建自定义模板


实现发送订阅消息,首先需要配置消息模板、获取小程序的appkey、secret、用户openid、token等,因此,从0到1的完整实现流程如下:

链接:微信公众平台
1)配置消息模板
2)获取appid + secret


1)获取code
wx.login(Object object) | 微信开放文档
- wx.login({
- success (res) {
- if (res.code) {
- //发起网络请求
- wx.request({
- url: 'https://example.com/onLogin',
- data: {
- code: res.code
- }
- })
- } else {
- console.log('登录失败!' + res.errMsg)
- }
- }
- })
2)获取openid
GET https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
wx.requestSubscribeMessage(Object object) | 微信开放文档
- wx.requestSubscribeMessage({
- tmplIds: [''],
- success (res) { }
- })
GET https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
subscribeMessage.send | 微信开放文档
- POST https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=ACCESS_TOKEN
- Accept: */*
- Cache-Control: no-cache
- Content-Type: application/json;charset=UTF-8
-
- {
- "touser": "OPENID",
- "template_id": "TEMPLATE_ID",
- "page": "index",
- "miniprogram_state":"developer",
- "lang":"zh_CN",
- "data":{
- "character_string1":{
- "value":"FK20220819001"
- },
- "phrase2":{
- "value":"审批通过"
- },
- "time3":{
- "value":"2022年08月19日 15:01"
- },
- "thing4":{
- "value":"领导同意了"
- }
- }
- }
注意:data数据的key与消息模板定义一致


wx.login(Object object) | 微信开放文档
wx.requestSubscribeMessage(Object object) | 微信开放文档
subscribeMessage.send | 微信开放文档