微信公众平台、公众号、小程序联动

欢迎来到我的博客,代码的世界里,每一行都是一个故事


在这里插入图片描述

🎏:你只管努力,剩下的交给时间

🏠 :小破站

微信公众平台、公众号、小程序联动

    • 如何通过unionid获取到微信公众openid
    • 如何根据code获取微信公众openid以及unionid
    • 小程序获取unionid

不管是小程序、公众平台还是微信公众号,最后与平台绑定的唯一关系就是unionid

首先和大家探讨一下相关的知识

1、公众平台可以绑定公众号、小程序、以及网站pc端

2、他们之间通过unionid进行关联

3、不可以直接通过unionid获取到公众号的openid

如何通过unionid获取到微信公众openid

要想通过unionid获取到微信公众号openid。具体有如下几步

1、首先获取到acces_token

2、获取到用户列表

3、获取到用户详细信息(这里面就会存在unionid)获取到用户详细信息

具体代码给大家贴出来,如下所示

public String getWxPublicAccountOpenId(String unionid) {String result = null;// 获取tokenString accessToken = WechatUtil.getWechatAccessToken();int maxQueryNum = 99;if (StrUtil.isNotBlank(accessToken)) {// 获取微信公众号用户列表openidMap<String, Object> getOpenidMap = new HashMap<>(2);log.info("accessToken:{}", accessToken);getOpenidMap.put("access_token", accessToken);getOpenidMap.put("next_openid", "");HttpResponse userOpenidListResponse = HttpRequest.get("https://api.weixin.qq.com/cgi-bin/user/get").form(getOpenidMap).execute();log.info("userOpenidListResponse:{}", JSON.toJSONString(userOpenidListResponse.body()));// 获取详细用户信息if (userOpenidListResponse.isOk()) {JSONObject data = JSON.parseObject(userOpenidListResponse.body()).getJSONObject("data");JSONArray openidList = data.getJSONArray("openid");log.info("openidData:{}", data);if (openidList != null && !openidList.isEmpty()) {JSONArray userInfoList = new JSONArray();int size = openidList.size();// 分块处理openIdList,这里接口只能处理100条for (int i = 0; i < size; i += maxQueryNum) {int end = Math.min(i + maxQueryNum, size);JSONArray subList = new JSONArray(openidList.subList(i, end));JSONObject userInfoJson = WechatUtil.jsonArrayTo(subList);log.info("userInfoJson:{}", JSON.toJSONString(userInfoJson));HttpResponse userInfoResponse = HttpRequest.post("https://api.weixin.qq.com/cgi-bin/user/info/batchget?access_token=" + accessToken).body(JSON.toJSONString(userInfoJson)).execute();log.info("userInfoResponse:{}", JSON.toJSONString(userInfoResponse.body()));if (userInfoResponse.isOk()) {userInfoList.addAll(JSON.parseObject(userInfoResponse.body()).getJSONArray("user_info_list"));}}log.info("userInfoList:{}", userInfoList);for (Object userInfoObj : userInfoList) {JSONObject userInfoJson = (JSONObject) userInfoObj;String openid = userInfoJson.getString("openid");String oldUnionid = userInfoJson.getString("unionid");// 如果获取不到unionid,则跳过if (StrUtil.isBlank(oldUnionid)) {continue;}// 如果取到的unionid和传入的unionid一致,则返回openidif (StrUtil.equals(unionid, oldUnionid)) {result = openid;break;}}}}}return result;
}

如何根据code获取微信公众openid以及unionid

这里使用网页授权

image-20240705172304129

这个网页可以嵌入到公众号,点击授权进行用户绑定
1、前端获取到code,传给后端获取openid以及unionid

2、后端除返回openid以及unionid外,将绑定状态一起返回

3、前端进行判断,如果未进行绑定,即需要登录绑定

小程序获取unionid

官方文档说明

image-20240706135626245

通过code换取oppenid以及unionid

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

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

相关文章

UI组件库---vantList组件接口多次调用大坑问题

问题描述&#xff1a;当使用refesh下拉操作时&#xff0c;vanlist组件会多次调用&#xff08;大概三次&#xff09;&#xff01; 解决方案&#xff1a; 1、接口错误的时候&#xff0c;大量重复请求。 可能接口错误时vant3内部某些变量没重置&#xff0c;导致一直重复请求&am…

利用 STM32 实现多协议物联网网关:Modbus/Zigbee 到以太网/Wi-Fi 的数据桥接

摘要: 随着物联网技术的飞速发展&#xff0c;不同通信协议之间的互联互通成为了构建智能化系统的一大挑战。本文将以实战项目为例&#xff0c;详细介绍如何利用 STM32 微控制器实现 Modbus/Zigbee 与以太网/Wi-Fi 之间的协议转换&#xff0c;从而打通传感器数据上传至服务器的“…

短视频矩阵系统源代码开发---多种剪辑逻辑再次升级

揭秘AI短视频运营秘籍&#xff0c;轻松涨粉&#xff01; 1、数据管理方面&#xff0c;我们提供了全面的账号及视频Top 10的数据统计服务。 2、在AI视频创意制作领域&#xff0c;我们采用原创视频批量剪辑、阶乘算法和去重原理&#xff0c;以提升内容的独特性和吸引力。 3、同…

【pytorch22】激活函数与GPU加速

激活函数 ReLu还是还是可能出现梯度弥散&#xff0c;因为x<0的时候&#xff0c;梯度还是可能小于0 leaky relu&#xff0c;在x<0的时候&#xff0c;梯度就不会为0&#xff0c;梯度不会不动 Relu函数在x0处是不连续的 一种更加光滑的曲线是SELU&#xff0c;是两个函数的…

FOC算法

如下图所示的&#xff0c;是FOC算法的整体流程图&#xff0c;下面图中最重要的部分就是SVPWM和3相全桥电路&#xff0c;和送给SVPWM进行运算&#xff0c;运算之后的结果为三个相差120的马鞍波&#xff0c;然后将这三相马鞍波作为控制全桥MOS开关的三个PWM波的占空比&#xff0c…

判断线程是否存活

isActive()方法&#xff1a;判断当前的线程是否处于活动状态。 活动状态是指线程已经启动且尚未终止&#xff0c;线程处于正在运行或准备开始运行的状态&#xff0c;就认为线程是存活的。 class Alive implements Runnable {Overridepublic void run(){for(int i0;i<4;i){…

C#中,不同命名空间下面完全相同的类对象进行赋值

背景前提&#xff1a; 1、在命名空间ModelA、ModelB下&#xff0c;都有完全相同的类定义ClassX、ClassY、ClassZ &#xff1b; 2、ClassBase是父类&#xff0c;它的子类有&#xff1a;ClassX、ClassY、ClassZ 3、在ModelB下不能访问ModelA&#xff1b; 4、有大量文件&…

前端笔记-day13

文章目录 01-体验vw和vh02-vw适配02-适配.htmldemo.lessdemo.css 03-vw和vh不能混用03-vw和vh.htmldemo.lessdemo.css 04-综合案例-酷我demo.htmldemo.lessbase.lessdemo.css 酷我&#xff08;标准版&#xff09;index.htmlindex.lessindex.css 01-体验vw和vh <!DOCTYPE ht…

记一次线上流量突增问题排查

一.问题 接流量告警出现获取 xx 信息接口调用次数同比往年大促活动猛涨.扩大至 10 倍之多.心里顿时咯噔一下.最近各种严打,顶风作案.某不是摸到电门了.一下子要把自己带走.从此走向求职之路.一时间脑子哇哇的思绪万千. 202x.5.20 大促开门红的调用.这个是往年活动的时候的调用…

如何在 Odoo 16 中生成 CSV 报告

在 Odoo 中&#xff0c;我们需要生成多种类型的文件以用于不同的目的。CSV 报告允许用户从 Odoo 数据库导出结构化数据。CSV 格式受到各种应用程序和工具的广泛支持&#xff0c;因此可以轻松地与外部系统&#xff08;如电子表格&#xff08;例如 Microsoft Excel、Google Sheet…

铁威马NAS教程丨为什么修复文件系统、为卷扩容、增加及删除 SSD 缓存等操作失败?

适用机型&#xff1a; 所有 TNAS 型号 适用版本&#xff1a; 所有 TOS 版本 问题现象&#xff1a; 在尝试修复文件系统、为卷扩容、增加或删除 SSD 缓存时(TOS 5)&#xff0c;可能因卷被其他进程占用而操作失败。 解决方法&#xff1a; 为了成功执行上述操作&#xff0c;您…

谷歌云 | Gemini 大模型赋能 BigQuery 情感分析:解码客户评论,洞悉市场风向

情感分析是企业洞察客户需求和改进产品服务的重要工具。近年来&#xff0c;随着自然语言处理 (NLP) 技术的飞速发展&#xff0c;情感分析变得更加精准高效。Google 推出的 Gemini 模型&#xff0c;作为大型语言模型 (LLM) 的代表&#xff0c;拥有强大的文本处理能力&#xff0c…

生成图质量评价

1. RichHF-18K 论文地址 解决问题&#xff1a; 如何对生成图质量进行算法评价&#xff0c;以优化图片质量&#xff0c;提升模型生成能力 解决思路&#xff1a; 参考多模态模型&#xff0c;构建评价模型&#xff0c;从7个维度分三个分支对生成图进行测评&#xff1a; Tips&…

Python + 读取 / 写入视频

读取并播放视频 这篇教学会介绍OpenCV 里的VideoCapture() 方法&#xff0c;透过这个方法&#xff0c;读取电脑中的视频&#xff0c;或开启电脑的摄影镜头读取视频画面。 因为程式中的OpenCV 会需要使用镜头或GPU&#xff0c;所以请使用本机环境( 参考&#xff1a;使用Python…

如何将overleaf的latex格式转换为word

安装pandoc https://pandoc.org/installing.html 下载安装后&#xff0c;打开windows shell&#xff0c;测试是否安装成功&#xff1a; pandoc -v使用代码转换 进入你防止latex的文件夹&#xff0c;运行以下命令&#xff1a; pandoc -o output.docx -t docx .\main.tex其中…

录制微课的软件有哪些?这些软件你不能错过!

随着在线教育的蓬勃发展&#xff0c;微课已成为一种广受欢迎的教学形式。微课录制软件的选择对于教师而言至关重要&#xff0c;它不仅要具备简单易用的特点&#xff0c;还要能够满足高质量录制的需求。而对于教师来说&#xff0c;录制微课的软件有哪些呢&#xff1f;本文将介绍…

常用金属材料检测试题

一、单选题 1.正火采用的哪一种冷却方式( ) A.风冷 B.炉冷 C.油冷 D.空冷 参考答案:D 2.哪个合金属于弹簧钢?( ) A.20Cr B.9SiCr C.65Mn D.W18Cr4V 参考答案:C 3.T8A是什么工具钢?( ) A.碳素工具钢 B

【日常记录】【插件】js 获取浏览器信息、操作系统等相关信息

文章目录 1. 原生方式2. 插件的方式2.1 Bowser 的基本使用2.2 UAParser2.3 Platform.js 参考链接 1. 原生方式 原生方式可以通过 navigator.userAgent 来获取 需要写一个正则来匹配&#xff0c;获取相关的信息 2. 插件的方式 获取浏览器版本相关信息的库主要有以下几个 Bowser&…

无人机在应急救援中的几种应急方案

1.消防应急方案 MS190无人机消防应急载荷&#xff1a;配备有水基灭火弹、水枪、灭火弹抛投器等设备。也可携带不同的任务载荷&#xff0c;根据救援需求灵活配置&#xff0c;能够在火灾现场进行侦察、监测和灭火作业。 2.系留照明应急方案 M30系列无人机系留装置&#xff1a;…

高德API接入安卓相关问题说明

高德API接入安卓相关问题说明 我们都在怀念过去&#xff0c;失去后我们才懂得珍惜&#xff0c;有些人或事早已经远去&#xff0c;可是还是会想起曾经拥有的岁月&#xff0c;会是一种喜悦&#xff0c;会是一种遗憾…… 目前Android开发已经普遍使用Android Studio&#xff0c;开…