我的编程空间,编程开发者的网络收藏夹
学习永远不晚

小程序订阅消息

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

小程序订阅消息

小程序的订阅通知,可以极大提升用户的使用体验感,消息能力是小程序能力中的重要组成。

小程序的订阅通知权限申请会以卡片的形式从底部弹出,用户点击订阅消息按钮之后,微信会向开发者服务器推送消息。

消息类型

1. 一次性订阅消息

一次性订阅,相当于用户给使用的小程序门票,用户每约定一次,开发者就会有一次向用户发送消息的机会,开发者不可无限制的i向用户发送消息,每条消息可单独订阅或退订。

2. 长期订阅消息

一次性订阅消息可满足小程序的大部分服务场景需求,用户订阅一次后,开发者可长期下发多条消息。

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

使用说明

1.获取模板id

在微信公众平台手动配置获取模板 ID:

登录 https://mp.weixin.qq.com 获取模板,如果没有合适的模板,可以申请添加新模板,审核通过后可使用。

 

2.获取下发权限

一次性订阅消息、长期订阅消息,详见接口 wx.requestSubscribeMessage

设备订阅消息,详见接口 wx.requestSubscribeDeviceMessage

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

一次性订阅消息、长期订阅消息,详见服务端接口 subscribeMessage.send,次数限制:开通支付能力的小程序下发上限是3kw/日,没开通的是1kw/日。

注意事项

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

订阅消息事件推送

1、当用户触发订阅消息弹框后,用户的相关行为事件结果会推送至开发者所配置的服务器地址或微信云托管服务。

XML格式示例

            1610969440                                                        2                                                    2            

JSON 格式示例

{  "ToUserName": "gh_123456789abc",  "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc",  "CreateTime": "1620973045",  "MsgType": "event",  "Event": "subscribe_msg_popup_event",  "List": [   {        "TemplateId": "hD-ixGOhYmUfjOnI8MCzQMPshzGVeux_2vzyvQu7O68",        "SubscribeStatusString": "accept",        "PopupScene": "0"    }], }

若 "List" 只有一个对象,则只返回对象本身;若 "List" 多于一个对象,则返回一个包含所有对象的数组。

参数说明

参数说明
ToUserName小程序帐号ID
FromUserName用户openid
CreateTime时间戳
TemplateId模板id(一次订阅可能有多个id)
SubscribeStatusString订阅结果(accept接收;reject拒收)
PopupScene弹框场景,0代表在小程序页面内,小程序外为空
MsgType消息类型
Event事件类型

参数处理

xml转map工具类

public static Map xmlToMap(String xml) throws Exception {    Map map = new HashMap();    Document document = DocumentHelper.parseText(xml);    Element root = document.getRootElement();    List elements = root.elements();    for (Element element : elements) {        map.put(element.getName(), element.getText());    }    return map;}

因为推送的是时间戳格式,转换成"yyyy-MM-dd:HH-mm-ss"格式

long timestamp = Long.parseLong(subscribeTimeStamp);//将时间戳转换为long类型Date date = new Date(timestamp * 1000);//将时间戳转换为Date类型SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd:HH-mm-ss");//设置时间格式String subscribeTime = sdf.format(date);//将时间戳转换为String类型

当用户在手机端服务通知里消息卡片右上角“...”管理消息时,相应的行为事件会推送至开发者所配置的服务器地址或微信云托管服务。(目前只推送取消订阅的事件,即对消息设置“拒收”)

XML 格式示例

            1610969440                                                      

JSON 格式示例

{      "ToUserName": "gh_123456789abc",      "FromUserName": "o7esq5OI1Uej6Xixw1lA2H7XDVbc",      "CreateTime": "1610968440",      "MsgType": "event",      "Event": "subscribe_msg_change_event",      "List": [  {                "TemplateId":"BEwX0BOT3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8",                "SubscribeStatusString": "reject"      }],}

这里变换的只有SubscribeStatusString参数reject为拒收accept为接收

调用订阅消息接口发送消息给用户的最终结果,会推送下发结果事件至开发者所配置的服务器地址或微信云托管服务。

XML 格式示例

            1610969468                                       1700827132819554304            0                        

JSON 格式示例

{    "ToUserName": "gh_123456789abc",    "FromUserName": "o7esq5PHRGBQYmeNyfG064wEFVpQ",    "CreateTime": "1620963428",    "MsgType": "event",    "Event": "subscribe_msg_sent_event",    "List": {        "TemplateId": "BEwX0BO-T3MqK3Uc5oTU3CGBqzjpndk2jzUf7VfExd8",        "MsgID": "1864323726461255680",        "ErrorCode": "0",        "ErrorStatus": "success"      }      }

"ErrorCode": "0" 表示成功

来源地址:https://blog.csdn.net/ssghzxc/article/details/130273305

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

小程序订阅消息

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

微信小程序——服务通知,发送订阅消息

一、什么是消息推送 二、整体效果 三、实现步骤 1 小程序开通订阅消息 2 postApi测试效果 三、uniapp配置 这里有个需要特别注意的点,我们要给用户发送消息,就必须引导用户授权,如下 因为用户不点击允许,你是没有办法
2023-08-16

小程序 如何申请长期订阅(设备消息)?

前言 现在长期订阅模板被好多人滥用了,比如我司没有特殊资质的话是很难申请,这个时候如果想实现长期订阅模板怎么办?刚好我司有蜻蜓设备可以试试设备信息 设备消息是长期订阅消息的一种,用户只需订阅一次,后续可根据设备状态的更新向用户发送服务通知。
2023-08-30

uniapp小程序订阅消息推送+Thinkphp5后端代码教程示例

记录一下通过uniapp开发小程序消息推送的实例,配合后端tp推送,之前写的项目是微信小程序而且后端是原生php,这次通过项目记录一下 目录 回顾access_token获取规则以及思路 第一步:设计前端触发订阅事件第二步:设
2023-08-16

uni-app结合.NET 7实现微信小程序订阅消息推送

uni-app结合.NET7实现微信小程序订阅消息推送,可跨平台开发应用并推送订阅消息。创建.NET7API项目并安装Microsoft.Azure.NotificationHubs包。获取NotificationHub连接字符串和密钥,配置NotificationHub模板。在API项目中编写控制器用于发送订阅消息。在uni-app项目中安装@dcloudio/uni-notification插件,启用订阅消息权限。集成subscribeMessageAPI订阅消息,通过onReceiveSubscri
uni-app结合.NET 7实现微信小程序订阅消息推送
2024-04-02

uni-app结合.NET 7实现微信小程序订阅消息推送

本文主要介绍了uni-app结合.NET 7实现微信小程序订阅消息推送,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
2023-02-05

uniapp微信小程序订阅消息发送服务通知--超详细

uniapp微信小程序订阅消息发送服务通知 由于公司需求,刚学完的小程序的我,要求开发一个直播通知的微信小程序,学了vue的我,选择还是使用uniapp开发,wx原生语法学完已经快忘了。在利用uniapp写代码的过程中,遇到很多问题,通过这
2023-08-16

小程序发送模板消息给用户 —— 一次性模板实现“长期订阅”

大家好!我是我玩亚索我会C,在写小程序时,我们会有向用户发送消息的需求,比如发送提醒通知,或者是一些重要通知来形成一个服务的闭环。这就要用到微信的发送消息功能了,下面我使用Java语言来详细演示下如何使用一次性订阅消息发送消息给用户。
2023-08-17

【微信小程序】wx.requestSubscribeMessage无法唤起小程序订阅弹窗

报错信息:requestSubscribeMessage:fail can only be invoked by user TAP gesture. 报错原因:在某个场景的方法里面调用而不是直接通过用户点击 解决方法:一般可做成显示一个弹框
2023-08-17

Spring boot+redis实现消息发布与订阅

一.创建spring boot项目 org.springframework.boot spring-boot-starter-data-redis org.spr
Spring boot+redis实现消息发布与订阅
2017-09-29

vue中消息订阅与发布如何使用

这篇文章主要介绍“vue中消息订阅与发布如何使用”,在日常操作中,相信很多人在vue中消息订阅与发布如何使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue中消息订阅与发布如何使用”的疑惑有所帮助!接下来
2023-07-05

【赵强老师】Redis的消息发布与订阅

Redis 作为一个publish/subscribe server,起到了消息路由的功能。订阅者可以通过subscribe和psubscribe命令向Redis server订阅自己感兴趣的消息类型,当发布者通过publish命令向Redis server发
【赵强老师】Redis的消息发布与订阅
2021-07-29

C#如何用RabbitMQ实现消息订阅与发布

这篇文章给大家分享的是有关C#如何用RabbitMQ实现消息订阅与发布的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。Fanout交换机模型扇形交换机,采用广播模式,根据绑定的交换机,路由到与之对应的所有队列。一个
2023-06-15

编程热搜

  • Android:VolumeShaper
    VolumeShaper(支持版本改一下,minsdkversion:26,android8.0(api26)进一步学习对声音的编辑,可以让音频的声音有变化的播放 VolumeShaper.Configuration的三个参数 durati
    Android:VolumeShaper
  • Android崩溃异常捕获方法
    开发中最让人头疼的是应用突然爆炸,然后跳回到桌面。而且我们常常不知道这种状况会何时出现,在应用调试阶段还好,还可以通过调试工具的日志查看错误出现在哪里。但平时使用的时候给你闹崩溃,那你就欲哭无泪了。 那么今天主要讲一下如何去捕捉系统出现的U
    Android崩溃异常捕获方法
  • android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
    系统的设置–>电池–>使用情况中,统计的能耗的使用情况也是以power_profile.xml的value作为基础参数的1、我的手机中power_profile.xml的内容: HTC t328w代码如下:
    android开发教程之获取power_profile.xml文件的方法(android运行时能耗值)
  • Android SQLite数据库基本操作方法
    程序的最主要的功能在于对数据进行操作,通过对数据进行操作来实现某个功能。而数据库就是很重要的一个方面的,Android中内置了小巧轻便,功能却很强的一个数据库–SQLite数据库。那么就来看一下在Android程序中怎么去操作SQLite数
    Android SQLite数据库基本操作方法
  • ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
    工作的时候为了方便直接打开编辑文件,一些常用的软件或者文件我们会放在桌面,但是在ubuntu20.04下直接直接拖拽文件到桌面根本没有效果,在进入桌面后发现软件列表中的软件只能收藏到面板,无法复制到桌面使用,不知道为什么会这样,似乎并不是很
    ubuntu21.04怎么创建桌面快捷图标?ubuntu软件放到桌面的技巧
  • android获取当前手机号示例程序
    代码如下: public String getLocalNumber() { TelephonyManager tManager =
    android获取当前手机号示例程序
  • Android音视频开发(三)TextureView
    简介 TextureView与SurfaceView类似,可用于显示视频或OpenGL场景。 与SurfaceView的区别 SurfaceView不能使用变换和缩放等操作,不能叠加(Overlay)两个SurfaceView。 Textu
    Android音视频开发(三)TextureView
  • android获取屏幕高度和宽度的实现方法
    本文实例讲述了android获取屏幕高度和宽度的实现方法。分享给大家供大家参考。具体分析如下: 我们需要获取Android手机或Pad的屏幕的物理尺寸,以便于界面的设计或是其他功能的实现。下面就介绍讲一讲如何获取屏幕的物理尺寸 下面的代码即
    android获取屏幕高度和宽度的实现方法
  • Android自定义popupwindow实例代码
    先来看看效果图:一、布局
  • Android第一次实验
    一、实验原理 1.1实验目标 编程实现用户名与密码的存储与调用。 1.2实验要求 设计用户登录界面、登录成功界面、用户注册界面,用户注册时,将其用户名、密码保存到SharedPreference中,登录时输入用户名、密码,读取SharedP
    Android第一次实验

目录