zl程序教程

您现在的位置是:首页 >  云平台

当前栏目

微信生态圈|如何发送小程序订阅消息

消息微信程序 如何 发送 订阅 生态圈
2023-06-13 09:15:32 时间

期望的效果【目标】如下:

分析

要实现的效果是订阅消息。消息通知一次性订阅消息。 订阅消息简介: 订阅消息的能力,可以实现服务的闭环和更优的体验。 订阅消息推送位置:服务通知

订阅消息下发条件:用户自主订阅。即用户可以选择“拒绝” 或 “拒绝,不再询问” 订阅消息卡片跳转能力:点击查看详情可跳转至该小程序的页面。【连接特性】

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

2. 长期订阅消息 一次性订阅消息可满足小程序的大部分服务场景需求,但线下公共服务领域存在一次性订阅无法满足的场景,如航班延误,需根据航班实时动态来多次发送消息提醒。为便于服务,我们提供了长期性订阅消息,用户订阅一次后,开发者可长期下发多条消息。 目前长期性订阅消息仅向政务民生、医疗、交通、金融、教育等线下公共服务开放,后期将逐步支持到其他线下公共服务业务。

3. 设备订阅消息 设备订阅消息是一种特殊类型的订阅消息,它属于长期订阅消息类型,且需要完成「设备接入」才能使用。 设备订阅消息用于在设备触发某些需要人工介入的事件时(例如设备发生故障、设备耗材不足等),向用户发送消息通知。

确定达到目标的路径 step1:是否满足条件 step2:获取模板ID step3:向用户申请下发权限 step4:下发订阅消息

开始“拼”小程序组件:

1、满足条件。一次订阅消息 对所有小程序开放,只限制可用模板的样式和数量。

2、选择模板

3、向用户申请下发权限。使用button组件来实现

此处点击“同意”。【这个弹窗“丑”的问题,后面再解释】

step4:组装下发订阅消息的数据格式 消息内容填充规则: 在模板列表中,点击想查看记录的“详情”

结合如下的API说明

会是这种格式:

{

  "template_id": "6xJoVvHKfFjlSYIDFlzWlxSc0fcNiklgyMseikVCvuM",
  "page": "pages/index/index",
  "touser": "ofXsL0YyncJlBqMJMem",
  "data": {
    "thing5": {
      "value": "购买比亚迪"
    },
    "thing6": {
      "value": "关注公众号联系客服小姐姐领取"
    },
    "thing2": {
      "value": "iPhone 14"
    }
  }
}

step5:下发订阅消息

step6:查看效果


至此,“拼”好了【除 申请下发权限 弹窗“丑”】 弹窗“丑”,是微信开发者工具的原因。 把小程序上传,用手机打开体验版小程序,弹窗会在底部,也漂亮很多

“全部拒绝,不再询问”:上面的两个订阅消息都不要。 此时,如果服务器调接口发送时,会报错:

至此,done


分享下踩的坑

1、{"errcode":47003,"errmsg":"argument invalid! data.thing5.value invalid rid: 6402212b-5dff25aa-1325da07"}

解决办法: 按订阅消息的规则,调整订阅消息参数内容的长度小于20个字符


Show the code:

前端: https://gitee.com/baidumap/wx_user/blob/master/front_end/pages/message/message.wxml https://gitee.com/baidumap/wx_user/blob/master/front_end/pages/message/message.js 后端: https://gitee.com/baidumap/wx_user/blob/master/back_end/src/main/java/com/wx/adapter/api/MiniAppUserController.java