微信生态账号体系-各ID介绍与Unionid的获取
liuian 2025-07-03 17:02 38 浏览
如果你从事微信生态相关工作,对公众号、小程序、企业微信获取 UnionId的方法还有些分不清,那看这篇文章就对了。本文详细地介绍了微信生态账号体系中,各ID介绍与Unionid的获取。欢迎一起学习探讨。
本文主要面向的对象:从事微信生态相关工作,尤其是刚接触不久的产研同学。
01 微信生态各应用之间的主要实体对象
微信生态的各个应用有其各自的定位,一套完整闭环的流程,很难在单一的应用中实现,所以需要我们对各应用都要有所了解。
先打个比方:一个人可以在教育公司工作,可以在娱乐公司工作,也可以自己经营一家店面,可以在国内工作也可以在国外工作,无论在哪工作,都需要纳税。
每个公司都有自己的统一社会信用代码,每个人都有身份证号,在每家公司的工号,这跟微信生态种各个ID之间的关系是十分相似的。
注:企业微信员工的员工id、部门id并未在此体现,下文会有介绍。
讲账号体系,unionid绝对是重之重。这是微信生态中的“OneID”,是识别用户身份的唯一标识,决定了多矩阵产品运营时业务能否贯通。
以下讲述均在应用已绑定开放平台的前提下展开。
02 公众号、小程序Unionid的获取
公众号获取Unionid
公众号获取unionid分为两种场景:
场景一:用户已经关注公众号
这个场景相对简单,用户关注之后所有的营销、服务等动作都可直接获取
- 根据openid获取unionid,该方法用户无感知,不会产生用户操作成本;
- 网页非静默授权(snsapi_userinfo),该方法用户无感知,不会产生用户操作成本;除了unionid外,会同时获取用户的头像、昵称;
场景二:用户没有关注公众号
实际应用场景举例:经过公众号授权构建后的H5商城、带追踪功能营销素材,用户在微信客户端点击后可以实现对客户行为的跟踪等。
网页非静默授权(snsapi_userinfo),使用时需注意的是:
该方法会阻断用户的操作流程,并需要妥善处理用户“拒绝/取消”的场景;
在发起非静默授权之前,务必要规范使用,否则会触发“快照”模式,获取到的都是虚拟数据,无法使用。
小程序获取Unionid
开发模式:自研
开发模式:第三方授权
wx.login+component_access_token,该方法用户无感知,不会产生用户操作成本;
公众号与小程序获取Unionid的对比
公众号/小程序第三方授权与自研的方式获取unionid方式大致相同,只需要用对token、component_access_token、authorizer_access_token即可。
从以上获取方式而言,小程序除了getPaidUnionId,其余获取用户unionid的方法都需要依赖前端之后获取到的code。也就是说,对于纯后端的开发或三方对接来讲,是无法直接从小程序处获取unionid的。
相比小程序获取unionid而言,公众号非静默授权获取unionid的方式并不合理,因为这种方式把获取unionid与客户昵称、头像混在一起了,本质上是没有做好数据权限的分类。(我个人把生态内的数据分为了公开数据:appid等、内部数据:unionid等、隐私数据:头像昵称等)
商家为了贯通业务,强行弹窗让用户授权,对C端用户体验不好,对商家容易造成流量损失。
03 企业微信Unionid的获取
企业微信与其他应用的不同之处
- 定位不同:企业微信是由企业号演变而来的,但现在企业微信的定位已经完全不是“应用”了,而是一个集营销、办公于一体的“工作台”,是国内私域运营的主阵地。
- 获取unionid的配置不同:企业微信不可以直接绑定到开放平台,而是通过绑定微信开发者ID(一个已经绑定开放平台、与企业微信同主体、认证过的小程序或公众号的appid)来实现的。
- 拥有独立的id名称:同等功能效力下,external_userid=openid、corpid=appid、服务商的corpid=component_appid、chat_id=opengid。
- 有独立的组织架构:部门:department、员工:userid,且企业员工是没有unionid的。
- 数据隔离非常明显:为响应个保法,企微做了两次大的id升级,现在基本上分为两种:
不同开发模式的数据隔离,对同一个微信用户,自建应用的id数据为明文,三方应用与自建代开发应用的external_userid、corpid、userid全部为密文,且三方应用与自建代开发应用无法直接获取C端用户的unionid。
不同服务商的数据隔离,对同一个微信用户,不同的服务商拿到的external_userid、corpid、userid不同且全部为密文。
此图片来源自企微官方API
企业微信获取Unionid
开发模式:自建应用
自建应用获取unionid是十分方便的,直接调用
开发模式:自建代开发应用/第三方应用
这种模式是无法直接获取C端用户的unionid的,那如何打通多矩阵运营业务场景呢?
企微提供了unionid转external_userid的接口,无论使用的是企业自己的公众号/小程序还是服务商的,都可以调此接口。如果用的是企业自己的小程序,获取的unionid可以直接存储入库,以方便后面开展业务。
需要注意的是,unionid(即微信开放平台账号主体)与openid(即小程序或服务号账号主体)需要认证,且主体名称需与当前授权企业的主体名称一致,或者主体名称需与服务商的主体名称一致。
场景一:加好友后,营销素材的追踪
在私域运营当中,通常将经过公众号授权后的H5当做抓手,在C端用户打开、浏览该链接时进行打标签、通知跟进人等运营动作。
业务实现逻辑是:在公众号/小程序等应用中获取到unionid之后,转换成external_userid,从而判断该C端用户是否已经加过好友且完成唯一身份识别,进而对客户进行预设的业务处理。
场景二:未加好友,短链引流
将有手机号但是还没有加企微好友的客户引流到企微中,想统计具体哪些客户成功加微。
业务实现逻辑:在小程序上获取unionid之后,添加好友之前,此时并不能直接转换成external_userid,而是一个临时id—pending_id,待添加好友之后,可通过external_userid查询pending_id,进而建立unionid与external_userid之间的关系。
视频号获取unionid因为场景比较简单,不在此处讲解。
熟练掌握以上规则之后,才算初识企微生态账号体系,接下来的路还很漫长。我陆续还会输出更多文章,希望可以一起学习探讨。
本文由 @好美呀,你! 原创发布于人人都是产品经理,未经许可,禁止转载
题图来自Unsplash,基于 CC0 协议
该文观点仅代表作者本人,人人都是产品经理平台仅提供信息存储空间服务。
相关推荐
- Spring Boot + Vue.js 实现前后端分离(附源码)
-
作者:梁小生0101链接:juejin.im/post/5c622fb5e51d457f9f2c2381SpringBoot+Vue.js前后端涉及基本概念介绍,搭建记录,本文会列举出用到环...
- C#一步一步实现自己的插件框架(四),从此告别代码紧耦合
-
初学者写程序一般就是拖控件,双击,然后写上执行的代码,这样在窗口中就有很多事件代码,如果要实现各按钮的状态,那得在很多地方修改代码,极为复杂.通过参考CSHARPDEVELOP的代码就说明和网上各位...
- 基于UI组件的Vue可视化布局、快速生成.vue代码
-
一、项目简介基于UI组件的Vue可视化布局、快速生成.vue代码二、实现功能通用(文本、链接、换行、div、图片)支持elementUI支持iViewUI(button、icon、radio、sel...
- 【开源资讯】ViewUI 4.2.0(原 iView)发布,企业级 UI 组件库
-
简介iView作者Aresn于2019年创办了北京视图更新科技有限公司,开始自由、全职地维护iView及其相关的软件。ViewUI即为原先的iView,从2019年10月起...
- Python GUI 编程入门教程 第25章:记账本应用升级—类别统计与图表
-
25.1项目目标在第24章的月份筛选功能基础上,新增:类别输入:记录时选择支出/收入类别,例如:餐饮、交通、购物、工资、理财等类别统计:计算选定月份的各类别总额类别图表:生成饼图,展示各类别所占...
- Python GUI 编程入门教程 第8章:文件处理、数据库操作与网络通信
-
8.1文件操作:处理本地文件与文件对话框在Tkinter应用中,文件操作是常见的需求。Tkinter提供了简单的文件对话框来帮助用户选择文件,并能通过Python内建的文件处理模块来读取和写入文件。...
- 手把手教你用Python做个可视化的“剪刀石头布”小游戏
-
/1前言/最近在学习PyQt5可视化界面,这是一个内容非常丰富的gui库,相对于tkinter库,功能更加强大,界面更加美观,操作也不难。于是我开始小试牛刀,用PyQt5做个可视化的“剪刀石头布”...
- 掌握基础技能快速用Python设计界面
-
我们在设计软件界面的时候,应该掌握一定的基础知识,不能我们看起来非常费解也很累。到后面设计界面的时候,很多基础知识不可能如你开始学的时候讲的那样仔细。熟练掌握Python的基本语法,如变量、数据类型...
- Python GUI 编程入门教程 第22章:综合实战项目——记账本应用
-
22.1项目目标我们要开发一个带数据库的记账本,主要功能:添加收支记录(日期、类别、金额、备注)显示所有记录(表格形式)支持删除记录自动保存到SQLite数据库统计总收支22.2项目结构budge...
- Python GUI 编程入门教程 第10章:高级布局与界面美化
-
10.1高级布局管理:使用grid和placeTkinter提供了三种常用的布局管理方式:pack、grid和place。在本章中,我们重点介绍grid和place,这两种布局方式相较于pack更加...
- 别再手动复制粘贴了!Python一招搞定取PDF内容,效率提升10倍!
-
别再手动复制粘贴了!Python一招搞定取PDF内容,效率提升10倍!还在为PDF内容提取头疼?100页的文档要折腾一下午?今天教你用Python几行代码搞定,10秒钟解决战斗,办公室小白也能轻松学会...
- DearPyGui:GUI 性能秒杀 PyQt,揭秘 GPU 加速的 DearPyGui
-
什么是DearPyGui?嘿,最近我发现了一个超有意思的PythonGUI框架——DearPyGui。名字有点拗口,但它可不是随便起的。它基于C++和GPU渲染,性能吊打传统的Tki...
- Python GUI 编程入门教程 第7章:事件绑定、动画效果与外部交互
-
7.1事件绑定:响应用户操作在Tkinter中,事件绑定允许你为控件添加响应函数,以处理用户的输入事件,如鼠标点击、键盘输入等。事件可以是各种形式的交互,如点击按钮、键盘按键等。7.1.1绑定鼠标...
- Python GUI 编程入门教程 第21章:综合实战项目——记事本应用
-
21.1项目目标我们要实现一个简易版的记事本,具备以下功能:新建、打开、保存文件复制、粘贴、剪切、全选设置字体大小查找文字显示应用信息界面大致效果如下:+----------------------...
- Python GUI 编程入门教程 第14章:构建复杂图形界面
-
14.1界面布局管理在Tkinter中,界面控件的排列是通过布局管理器来实现的。Tkinter提供了三种布局管理器:pack、grid和place,每种布局管理器都有其独特的用途和优势。14.1.1...
- 一周热门
- 最近发表
-
- Spring Boot + Vue.js 实现前后端分离(附源码)
- C#一步一步实现自己的插件框架(四),从此告别代码紧耦合
- 基于UI组件的Vue可视化布局、快速生成.vue代码
- 【开源资讯】ViewUI 4.2.0(原 iView)发布,企业级 UI 组件库
- Python GUI 编程入门教程 第25章:记账本应用升级—类别统计与图表
- Python GUI 编程入门教程 第8章:文件处理、数据库操作与网络通信
- 手把手教你用Python做个可视化的“剪刀石头布”小游戏
- 掌握基础技能快速用Python设计界面
- Python GUI 编程入门教程 第22章:综合实战项目——记账本应用
- Python GUI 编程入门教程 第10章:高级布局与界面美化
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)