微信小程序订阅消息
发布于 3 年前 作者 xiulan03 1804 次浏览 来自 分享

功能介绍

消息能力是小程序能力中的重要组成,腾讯为开发者提供了订阅消息能力,以便实现服务的闭环和更优的体验。

  • 订阅消息推送位置:服务通知
    
  • 订阅消息下发条件:用户自主订阅
    
  • 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面
    

消息类型

1. 一次性订阅消息

一次性订阅消息用于解决用户使用小程序后,后续服务环节的通知问题。用户自主订阅后,开发者可__不限时间__地下发__一条对应的服务消息__;每条消息可单独订阅或退订。

2. 长期订阅消息

一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。

目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。

发送订阅消息步骤:

1. 添加订阅消息模板,获取模板id

登录微信公众平台添加订阅消息模板,获取模板id.

2. 获取下发权限:

wx.requestSubscribeMessage(Object object)

__注意事项:__此部分代码需要按钮触发,不可放在onload()或onshow()中

 wx.requestSubscribeMessage({
      tmplIds: ['xxxxxxxxxxxxxxxxxxxxx'],//这里填写模板id
      success (res) {
        console.log("res--->",res)
       },
       fail:err=>{
         console.log("err---",err)
       }
    })

3. 调用接口下发订阅消息:

subscribeMessage.send

__注意事项:__用户勾选 “总是保持以上选择,不再询问” 之后,下次订阅调用 wx.requestSubscribeMessage 不会弹窗,保持之前的选择,修改选择需要打开小程序设置进行修改。

https调用请求地址:

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

 官网的请求参数如下:

必填参数说明

  •  __access\_token ------接口调用凭证__
    

__注意事项:__获取接口凭证:auth.getAccessToken(发送消息需要access_token参数,access_token的有效期目前为 2 个小时,需定时刷新,重复获取将导致上次获取的 access_token失效)

 wx.request({
      url: 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential',
      method: 'GET',
      data: {
        "appid": 'xxxxxx', //小程序appid
        "secret": 'xxxxxxx' //小程序密钥
      },
      success: res => {
        console.log("res--",res)
        this.data.accessToken=res.data.access_token
      },
      fail: (e) =>{
        console.error("err--",e);
      },
      complete: (e) =>{
        console.log("c--",e);
      }
    })
  • data ------板内容,格式形如 { “key1”: { “value”: any }, “key2”: { “value”: any } }

  __注意事项:__发送消息的模板内容:key值要与模板中的一致

以下模板的data值: { “date1”: {“value”: “2020-01-01 00:00” },“date2”: {  “value”: “2020-01-01 00:00”}, “thing3”: { “value”: “升级期间暂停服务,感谢你的理解。” },“time4”: { “value”: “2020-01-01 17:38:26” } },

发送订阅消息代码

 wx.request({
      url: 'https://api.weixin.qq.com/cgi-bin/message/subscribe/send?access_token=' + this.data.accessToken,
      method: 'POST',
      data: {
        "touser": 'xxxxxxxxxx', //接收者(用户)的 openid
        "template_id": 'xxxxxxxxxx', //所需下发的订阅模板id
        "page": '/pages/index/index' || '', //点击模板卡片后的跳转页面
        "data": {
          "date1": {
            "value": "2020-01-01 00:00"
          },
          "date2": {
            "value": "2020-01-01 00:00"
          },
          "thing3": {
            "value": "升级期间暂停服务,感谢你的理解。"
          },
          "time4": {
            "value": "2020-01-01 17:38:26"
          }
        }, //模板内容,格式形如 { "key1": { "value": any }, "key2": { "value": any } }
        "miniprogram_state": "developer" //跳转小程序类型:developer为开发版;trial为体验版;formal为正式版;默认为正式版
      },
      success: (res) => {
        console.log(res.data);
      },
      fail: (e) => {
        console.errore);
      }
    })

 发送订阅消息成功,手机截图如下

以上就是微信订阅消息设置发送的全过程。

1 回复

好棒棒学到了

回到顶部