微信小程序 如何订阅消息?

news2025/1/17 9:06:52

微信公众号

微信公众号分为两种类型:订阅号和服务号,它们在功能和使用方式上有一些区别。

1.订阅号(Subscription Account):

	主要用于向用户提供信息、资讯、新闻等更新性内容。
	每天可以发送1条群发消息给所有关注者。
	发送的消息在用户的订阅号消息列表中按时间排序显示,不会直接发送到用户的主要聊天列表。
	用户关注后,默认不会收到订阅号的模板消息和客服消息。

2.服务号(Service Account):

提供更多的功能,可以与用户进行交互和提供个性化服务。
可以通过模板消息和客服消息与用户进行互动,推送更多种类的消息类型。
可以每月发送4条群发消息给所有关注者,且每条消息可以发送给更多用户。
发送的消息会直接显示在用户的主要聊天列表中。

微信公众号的类型是在注册时选择的,一旦选择了订阅号或服务号,无法直接转换。如果您主要是提供资讯和更新性内容,订阅号可能更适合;如果您需要与用户进行更多的互动和提供个性化服务,服务号则更适合。

订阅消息

订阅消息,一般更适用于小程序或小游戏,程序按照一定的触发规则,来给用户推送已订阅的消息。

微信订阅消息,官方文档

订阅步骤:

1.设置订阅模板

在这里插入图片描述

2.前端授权订阅


wx.requestSubscribeMessage({
	tmplIds: tmplIds,
	success (res) {
		console.log("订阅消息成功:",res);
		let temlIdsOk:string[]=[];
		for(let tmplId of tmplIds){
			//1.accept 接受  2.reject 拒绝 3.ban 被后台禁用 4.filter 该模板因为模板标题同名被后台过滤 
			if(res[tmplId]=="accept"){
				temlIdsOk.push(tmplId);
			}
		}
		if(func)func(temlIdsOk);
	},
	fail(res){
		console.log("订阅消息失败:",res,res.errCode);
		/*10001	参数传空了
		10002 网络问题,请求消息列表失败
		10003 网络问题,订阅请求发送失败
		10004 参数类型错误
		10005 无法展示 UI,一般是小游戏这个时候退后台了导致的
		
		20001 没有模板数据  
		20002模板消息类型 既有一次性的又有永久的 
		20003 模板消息数量超过上限 
		20004 用户关闭了主开关,无法进行订阅 
		20005 小游戏被禁封
		*/
	}
})

在这里插入图片描述

订阅消息有两种方式:一次性订阅和长期订阅。

一次性订阅(Once Subscription):

	1.适用于临时性的订阅需求,例如用户只需要接收一次性的通知或事件提醒。
	
	2.选择订阅某个特定的模板消息,没有勾选“总是保持以上选择”。
	
	3.用户在收到一次性订阅消息后,将无法再次收到相关的订阅消息。
	

长期订阅(Long-term Subscription):


	1.适用于长期性的订阅需求,用户需要持续接收某个特定类型的消息推送。
	
	2.选择订阅某个模板消息,并勾选“总是保持以上选择”。

	3.用户可以随时在微信设置中取消对某个或所有模板消息的订阅权限,或者重新进行订阅选择。
	

订阅后,会出现在小程序,设置列表
在这里插入图片描述

3.后端发送消息:

首先须在MP后台:开发 -> 开发管理 -> 开发设置 -> 开启消息推送

在这里插入图片描述
开启消息推送,需要一次简单验证:

1.填写好url和token

在这里插入图片描述
2.编写验证代码,验证服务器地址的有效性


private function checkSignature()
{
    $signature = $_GET["signature"];
    $timestamp = $_GET["timestamp"];
    $nonce = $_GET["nonce"];
		
		$echostr= $_GET["echostr"];
		//填写的TOKEN
    $token = TOKEN;
    $tmpArr = array($token, $timestamp, $nonce);
    sort($tmpArr, SORT_STRING);
    $tmpStr = implode( $tmpArr );
    $tmpStr = sha1( $tmpStr );

    if ($tmpStr == $signature ) {
        return $echostr;
    } else {
        return "验证失败";
    }
}


3.点击绿色按钮,提交,微信会访问一次第一步填写的url,若是返回的echostr,则配置成功。

4.后端推送订阅消息

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

//请求参数
//调用凭证
access_token
//推送用户 openId
touser
//模板id 需用户订阅才可以
template_id
//模板数据
data   { "key1": { "value": any }

5.微信收到消息:

消息会出现在"服务通知"里边。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1154192.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

墨者学院 身份认证失效漏洞实战

一、题目信息 二、漏洞利用 1.通过抓包,抓取test登录信息 发现card_id号以及一些回显的账号密码信息 搜索了一下这个id,发现是测试的头像 2.修改id号 分析请求包的逻辑,发现是请求了头像资源后再去请求头像id的详情包,所以根据…

el-dropdown自定义样式,不影响其他组件

原来的样式: 修改后的样式: 给el-dropdown-menu添加类名dropdown-menu <el-dropdown-menu slot"dropdown" class"dropdown-menu"><router-link to"/user/profile"><el-dro…

mysql出现Deadlock死锁排查

参考: https://www.yisu.com/zixun/664543.html 查看mysql死锁日志 show engine innodb status找到信息中LATEST DETECTED DEADLOCK这一行&#xff0c;可以看到mysql的死锁信息详情 ------------------------ LATEST DETECTED DEADLOCK ------------------------ 2023-10-31…

VS LiveShare使用操作介绍

VS LiveShare的使用教程 文章简介下载过程 文章简介 本篇文章主要介绍了如何安装和使用LiveShare的过程。 下载过程 1.在扩展->管理扩展&#xff0c;搜索Live Share后&#xff0c;下载对应的安装包&#xff0c;安装后对VS进行重启 2.安装后界面右上角会出现Live Share标…

酷克数据出席永洪科技用户大会 携手驱动商业智能升级

10月27日&#xff0c;第7届永洪科技全国用户大会在北京召开。酷克数据作为国内云原生数仓代表企业&#xff0c;受邀出席本次大会&#xff0c;全面展示了云数仓领域最新前沿技术&#xff0c;并进行主题演讲。 携手合作 助力企业释放数据价值 数据仓库是商业智能&#xff08;BI…

什么是接口自动化测试?接口自动化测试的目的是什么?

1、什么是接口测试 接口测试是对系统或组件之间的接口的测试。主要用于检测外部系统与系统间以及内部各个子系统间的交互点。测试重点是检查数据交换、传递和控制管理过程&#xff0c;以及系统间的相互逻辑依赖关系等。 2、接口测试的目的 1> 尽早介入软件测试流程&#…

ubuntu(18.04) 安装 blast 并在php中调用

1、下载 https://ftp.ncbi.nlm.nih.gov/blast/executables/blast/LATEST/2、解压&#xff0c;配置环境变量 tar zvxf ncbi-blast-2.14.1-x64-linux.tar.gz解压后改名为 blast 配置环境变量&#xff0c;可以不配置 使用的时候直接绝对路径使用&#xff08;本次使用绝对路径&am…

我用好说 AI 做二次元人设

你有没有想过自己做一部原创作品&#xff1f; 就像开发《星露谷物语》那样&#xff0c;自己把控作品的 角色、故事、载体、宣传 等方方面面&#xff0c;让 idea 不再只是灵光一闪。 以前是 “万事开头难”&#xff0c;可能第一步都举步维艰。但现在有了 AI 就不同了&#xff…

iOS 系统获取 Bundle ID、平台公钥、签名 MD5 值的指引

1. 获取 Bundle ID&#xff1a;使用 APP 对应的 IOS 开发者账号登录 Developer 控制台&#xff0c;找到下图标识符&#xff08;英文&#xff09;&#xff0c;单击进入 Certificates,Identifiers&Profiles 页面。 2. 在 Certificates,Identifiers&Profiles 页面&#xf…

Playwright已经是目前最好的测试自动化工具了吗?

作者观点&#xff1a;很长时间以来&#xff0c;Selenium是QA工程师寻求测试自动化解决方案的首选测试框架。它能够测试任何浏览器&#xff08;这在IE浏览器的统治时期尤其重要&#xff09;和任何平台。然而&#xff0c;现在看来&#xff0c;那个时代已经过去了。 今天&#xf…

Origin科研绘图与学术图表绘制从入门到精通

目录 前言 1. PDF基线的绘制 2. XRD图的绘制 3. 点线图的绘制 4. 如何快速掌握Orign 前言 Hello小伙伴好&#xff0c;最近在忙于三篇小论文&#xff0c;在大量的处理数据和画图中。对于一篇好的学术论文图是不可缺少的&#xff0c;可以说如果你的数据平平无奇&#xff…

【JavaEE初阶】 认识文件与Java中操作文件

文章目录 &#x1f334;认识文件&#x1f6a9;树型结构组织和目录&#x1f6a9;文件路径&#xff08;Path&#xff09;&#x1f6a9;知识扩展 &#x1f38d;Java 中操作文件&#x1f6a9;File 概述&#x1f4cc;属性&#x1f4cc;构造方法&#x1f4cc;方法 &#x1f6a9;File使…

LIS检验科信息管理系统源码 标本核收、采集检验结果、书写检验报告、质量控制

LIS检验科信息管理系统源码 LIS是采用软件解决数据接收方式的医疗系统之一&#xff0c;强化了病人从开检验单检验&#xff0c;到最后检验报告的各项步骤&#xff0c;更替代了以前的缓慢、不可靠的纯手工数据接收方式&#xff0c;使得医疗检验的步骤更有条理、效率更高、检验结果…

一致性哈希揭秘,深入解析其工作原理

前言 在进行一致性哈希介绍前&#xff0c;先思考2个问题&#xff1a; 什么是Hash一致性Hash和Hash的关系是什么 对于第一个问题Hash的定义 Hash也成散列&#xff0c;基本原理就是把任意长度的输入&#xff0c;通过hash算法变成固定长度的输出。 对于第二个问题&#xff0c…

关于 MapboxGL 在 Vue 中的简单使用

前言问题 关于我为什么使用了 在线的 js引入方法&#xff0c;而不是使用 npm 直接下载依赖问题&#xff0c;之前有一篇文章讲过原因&#xff1a;关于 Vue-iClient-MapboxGL 的使用注意事项 网上提供的 vue-iclient-mapboxgl 比较多&#xff0c;但是我这里使用的是 iclient-su…

win11系统msvcp120.dll丢失的解决方法,亲测有效的详细方法

在计算机使用过程中&#xff0c;我们常常会遇到一些错误提示&#xff0c;其中之一就是“msvcp120.dll丢失”这个错误通常会导致某些应用程序无法正常运行。为了解决这个问题&#xff0c;我们需要采取一些修复措施。本文将介绍五个修复msvcp120.dll丢失的方法&#xff0c;帮助大…

Linux 虚拟内存参数配置

一、问题出发点 Jun 1 10:30:21 audit1 kernel: swapper: page allocation failure. order:1, mode:0x20 Jun 1 10:30:21 audit1 kernel: Pid: 0, comm: swapper Tainted: G --------------- T 2.6.32-431.20.3.el6.x86_64 #1 Jun 1 10:30:21 audit1 kernel: Call Trace: Jun …

Vue+element el-date-picker 时间日期选择器设置默认值,选择框不显示问题(已解决)

时间选择器默认值的问题 显示的时候如果用下面的方式赋值将不会显示出来&#xff1a; this.deviceFormData.time[0] that.$filterArray.formatDatehh(start);this.deviceFormData.time[1] that.$filterArray.formatDateEnd(end);实际上是有数据的&#xff0c;但是不会显示出…

18、SpringCloud -- 沙箱环境测试支付宝支付

目录 沙箱环境测试支付宝支付下载安装密钥:安装:生成密钥:沙箱环境配置支付宝SDK配置下载SDK&DEMO支付宝SDK导入支付宝SDK配置配置tomcat访问端口占用问题:解决方法:1、旧版沙箱配置-成功旧版沙箱自定义密钥2、新版沙箱配置-失败测试:1、点击付款2、模拟登录买家的账…

租赁小程序定制开发-让租赁业务更加高效

租赁小程序&#xff0c;让租赁变得更加方便。你可以在平台上找到各种商品&#xff0c;从生活用品到设备&#xff0c;只需简单的搜索和预订操作。而且&#xff0c;支付也可以在线完成&#xff0c;无需到店付款。当租赁期满&#xff0c;商品可以方便地归还&#xff0c;同时&#…