突发!如何应对微信小程序与公众号下发统一消息接口调整

news2024/9/23 1:34:33

image.png

前言

国庆节前夕,被同事突然Q到:“咱们的公众号消息推送是不是要修改?”,我一脸茫然,紧接着,他直接甩给我一个链接,我打开后一看。一瞬间愉快的心情完全被打乱了。

image.png

但是,不要慌,没什么大不了的,大不了国庆节三倍工资加班干完,哈哈哈...

这是一件什么事情呢,看下图:

image.png

意思就是说:之前使用“微信公众号下发统一消息接口”的服务不让你用了,你需要换一种方式来实现它,微信官方还给出了适配指引!

image.png

看到这里,我只想说,wechat,你可以,仗势欺人是不?你考虑广大开发者了吗?你考虑广大的用户体验了吗?还声称是为了优化多个同一功能接口对开发者造成困扰?你这是专门给广大开发者造成困扰!

进入正题

以上也就是发发牢骚,我们毕竟是渺小的开发者,三言两语击不起几个浪花,懒得理我们。

牢骚发完,我们是不是该考虑一下如何适配了?毕竟国庆节还真不想加班!(内心深处:8天假呢,可怎么耍啊?)

时间线

微信团队是8月22日发出的消息,说在9月20日起将不能使用该功能,但是我发现的时候已经是9月25日了,但是我们的推送消息依然可以使用(有点奇怪),说明还没有完全切换,可能考虑到我们的用户量比较大的原因?算了,不管这个了。

如何做

紧接着,我仔细的研读了一下微信的这个文档,思考了一番,无非就是两种方案:

  1. 彻底改正

  2. 还能救一下

方案一:彻底改正?

其实我是倾向于彻底改正的,因为这样是最保险的方式,因为它是标准的推送功能。那就是标准化使用公众号模版消息接口,下面是重要的步骤:

  1. 重新写个微信公众号 h5 页面,授权获取 jscode,再来换取公众号 openid。

  2. 使用 openid 按照文档下发微信公众号模版消息。

方案二:还能救一下?

这种方案其实就是一个不想改的方案,虽然有自己的好处,但是不好的地方太大了,稍后再说,先说一下步骤:

准备工作

  1. 必须有一个微信开放平台(需要收费,记得是300元?感觉就是为了 money)。

  2. 小程序与公众号同一主体。

  3. 小程序和公众号和微信开放平台关联。

实现步骤

准备好以上的工作后,可以进行曲折的适配工作了

  1. 由于小程序和公众号都关联了微信开放平台,我们再次使用小程序微信登录时会多返回一个 unionid,通过这个 unionid 做关联。

  2. 获取微信公众号的关注列表,可以批量拿到关注人的 openid。

  3. 使用小程序 openid 通过 unionid 拿到对应的公众号的 openid,确认是同一个人。

  4. 使用公众号 openid 按照文档下发微信公众号模版消息。

唉,真费劲,翻来覆去的最终还是拿到公众号openid下发模版消息,这方式真是够曲折的!!!

唯一性说明

同一个用户,在同主体的小程序和公众号下,会有各自的 openid ,不相同,不能混用。

同一个用户,在同主体的小程序、公众号等下面只有 1 个 unionid,有多个 公众号openid 和多个小程序openid 。 unionid 是同主体应用下唯一身份证,可以查询对应的公众号openid和小程序openid。因此,unionid 的覆盖率是最高的。

当用户关注公众号,浏览公众号下面H5时,可以同时获取 unionid、公众号openid。而浏览小程序时,可以同时获取小程序 unionid、openid。不管哪种操作都能拿到 unionid。

在单个小程序或公众号里,openid 是唯一的。当同一个小程序主体下有多个小程序时,每个小程序有自己的 openid,因此需要 unionid 进行唯一身份标识,即:unionid 是同个主体下不同小程序的用户唯一标识。

着手实现

以上两种方案都给整的明白的,那就开始着手实现吧!

虽然上述方案是有了,但是有一个问题,两种都有它各自的优缺点!

彻底改正的方案

  1. 费时费力,几天时间完不成,前后端需重写,测试需要重测,bug不可预测。

  2. 就算完成了,需要用户重新绑定,谈何用户体验?

还能救一下方案

  1. 前端不用重写,后端需要改造,工作量不大,可以完成?

  2. 还是需要用户重新绑定,也无用户体验。

  3. 其实就是野路子,实现不标准,后面肯定需要重构。

等等,我有一个更好的方式,可以让你安稳的度过中秋国庆双节假期!

结语

以上就是双节前夕发生的一些趣味事情,那么接下来我会将两种方式的具体实现都会和大家探讨一下,敬请期待!

对于微信平台8月22日发布的“小程序与公众号下发统一消息接口调整通知”,你是怎么看的?可以评论区“发泄”一下。如果你有更好的方案,欢迎联系我,我们共同探讨一下。

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

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

相关文章

基于开源WQ装备数据的知识图谱全流程构建

随着大数据和人工智能技术的快速发展,构建领域特定的知识图谱已成为信息管理和决策支持的重要手段。武器装备知识图谱不仅能够对复杂的武器系统进行结构化展示,还可以通过关系推理揭示武器与装备之间的潜在联系。 1、技术路线 本文将详细介绍如何基于开…

Leetcode第414周赛第二题:3281. 范围内整数的最大得分

一:题目: 给你一个整数数组 start 和一个整数 d,代表 n 个区间 [start[i], start[i] d]。 你需要选择 n 个整数,其中第 i 个整数必须属于第 i 个区间。所选整数的 得分 定义为所选整数两两之间的 最小 绝对差。 返回所选整数的…

程序员如何写笔记?

word。没错,我也看了网上一大堆软件,还有git管理等等。个人认为如果笔记只是记录个人的经验积累,一个word就够了,那些notepad,laTex个人觉得不够简练。word。 1.word可以插入任何文件附件(目前最大的word 200MB也没出现…

Python编码系列—Python社区驱动开发:共创开源生态的力量

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

Furion友好异常

一、一图流 二、注册友好异常服务 在 Furion 框架中,友好异常处理服务可以通过 AddFriendlyException 方法进行注册,这个方法通常在项目的启动配置中使用。 using Microsoft.Extensions.DependencyInjection;namespace YourNamespace {[AppStartup(800…

组件拆分综合案例——商城首页

欢迎大家订阅【Vue2Vue3】入门到实践 专栏,开启你的 Vue 学习之旅! 文章目录 一、传统的 HTML/CSS 写法二、现代的 Vue.js 组件化写法 本篇文章参考黑马程序员 【组件拆分综合案例——商城首页】 一、传统的 HTML/CSS 写法 App.vue文件: &l…

JAVA便捷同城圈信息汇聚服务预约任务发布平台系统小程序源码

​便捷同城圈,信息汇聚服务预约任务发布平台系统 🏙️ 开篇:同城生活,一键触达 在这个快节奏的城市里,你是否经常为找不到靠谱的服务、错过重要的信息或是有小任务却找不到人帮忙而烦恼?别担心&#xff0c…

运维学习————GitLab的搭建和使用

目录 一、简介 1、概念 2、 好处 3、优势 二、 下载安装 1、准备工作 2、下载安装 3、配置 三、常用命令 四、GitLab的使用 1、解决无法访问 ​编辑2、修改密码 3、gitlab结合linux的使用 1、使用用户名和密码操作 2、使用ssh秘钥操作 4、卸载GitLab 5、gi…

铁路故障多分类数据集(猫脸码客 第183期 )

铁路故障多分类数据集研究:基于深度学习的ECARRNet模型 引言 东南亚地区以其庞大的铁路网络著称,这一基础设施在促进区域经济发展、加强国家间联系方面发挥着不可替代的作用。然而,随着铁路网络的不断扩展和运营时间的增长,铁路…

OpenCV结构分析与形状描述符(11)椭圆拟合函数fitEllipse()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 围绕一组2D点拟合一个椭圆。 该函数计算出一个椭圆,该椭圆在最小二乘意义上最好地拟合一组2D点。它返回一个内切椭圆的旋转矩形。使…

oracle TAB$ 基表删除恢复

接客户服务请求,说是一个好久没有用的数据库在打开时遭遇ora-00600 16703 1403 28 错误,这中一看就是oracle 的tab$基表被删除了。 客户环境 aix 平台; 索性数据库比较小只有10G左右,懒得的弄bbed,直接oracle dul 抽…

【信创】Linux终端禁用USB存储 _ 统信 _ 麒麟 _ 方德

原文链接:【信创】Linux终端禁用USB存储 | 统信 | 麒麟 | 方德 Hello,大家好啊!今天给大家带来一篇关于在Linux终端下禁用USB存储设备的文章。禁用USB存储设备可以提高系统的安全性,防止未经授权的人员将数据拷贝到外部存储设备或…

VMware Fusion 13.6 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式

VMware Fusion 13.6 OEM BIOS 2.7 - 在 macOS 中运行 Windows 虚拟机的最佳方式 VMware Fusion 13 原版 App 中集成 OEM BIOS 请访问原文链接:https://sysin.cn/blog/vmware-fusion-13-oem/,查看最新版。原创作品,转载请保留出处。 作者主…

中国家庭收入调查(CHIP)数据合集(1988-2018年)

中国家庭收入调查(CHIP)是一项重要的社会学研究资源,它通过入户调查的方式收集了包含家庭收支信息以及其他相关的家庭和个人信息。CHIP数据合集涵盖了多个年份,包括2018、2013、2008、2007、2002、1999、1995、1988年,…

词嵌入(一):基于矩阵分解的静态词嵌入(VSM、TF-IDF、SVD)

文章目录 一、从几种直观思路的不足谈到理想的Word Representation1.1 独热编码1.2 共现矩阵1.3 理想的Word Representation应当满足的要求 二、静态词嵌入与动态词嵌入三、基于矩阵分解的静态词嵌入3.1 Distributional Hypothesis3.2 向量空间模型(Vector Space Mo…

【详解】网络隔离环境下,跨网文件交换存在的核心问题及解决方法

一、为什么要进行网络隔离? 随着互联网技术的发展和推进,人们对于网络使用的场景也越来越多元化,而网络黑客入侵、病毒攻击、网络泄密等安全事件的不断发生,也让人们认识到网络安全的重要性。企业、社会、国家机构在日常经营管理…

基于Pytorch框架的深度学习U2Net网络精细天空分割系统源码

第一步:准备数据 头发分割数据,总共有10276张图片,里面的像素值为0和1,所以看起来全部是黑的,不影响使用 第二步:搭建模型 级联模式 通常多个类似U-Net按顺序堆叠,以建立级联模型&#xff0c…

STM32(十二):DMA直接存储器存取

DMA(Direct Memory Access)直接存储器存取 DMA可以提供外设和存储器或者存储器和存储器之间的高速数据传输,无须CPU干预,节省了CPU的资源。(运行内存SRAM、程序存储器Flash、寄存器) 12个独立可配置的通道&…

【stata】自写命令分享twfe_stgdid,一键完成staggered-DID

1. 命令简介 仿照CSDID命令一键出实证结果、出图,我写了一个twfe_stgdid命令。基于双向固定效应模型(TWFE)一键式完成staggered-DID分析。TWFE估计did estimator时难以避免负权重带来的问题(异质性处理效应)。所以&am…

C++11新特性——右值引用与移动语义

左值引用和右值引用 在C中,左值是一个表示数据的表达式,我们可以获取它的地址,一般可以对它赋值,通常可以出现在左边或右边,左值引用就是对左值的引用,相当于给左值起了一个别名。 例子: int …