公众号接入
这篇解决什么
公众号运营凭据落哪张表、微信后台要填哪条回调。读完能对上 mp_account 和 /admin-api/mp/open/{appId},不要去改三方登录客户端。
默认端口 48080。先开模块见 公众号功能设计。会员 H5 授权见 微信公众号登录。
示意图:列表里维护凭据。微信只打开放接口,按 appId 找账号。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 账号 | @RequestMapping("/mp/account") | ruoyi-office/yudao-module-mp/yudao-module-mp-server/.../controller/admin/account/MpAccountController.java |
| 回调 | /mp/open/{appId} | MpOpenController |
| 账号表 | mp_account | MpAccountDO |
| 工厂 | 按账号建 WxJava 客户端 | DefaultMpServiceFactory |
| 管理端 | 列表、表单 | ruoyi-office-vben/apps/web-antd/src/views/mp/account/ |
官方菜单:账号管理 2085(mp/account/index)。按钮权限含 mp:account:qr-code、mp:account:clear-quota。
GET /mp/open/{appId} 校验签名后回 echostr。POST 解析明文或 AES,再交给 WxMpMessageRouter。接口已放行,不走登录。
字段
account 是微信号,不是 appId。多租户下 appId 全局唯一。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
name / account | 名称、微信号 | MpAccountDO |
appId / appSecret | 开发者凭据 | 同上 |
token / aesKey | 回调校验、消息加解密 | 同上 |
qrCodeUrl | 调生成二维码后回写 | 同上 |
列表「服务器地址」是前端拼的:http://服务端地址/admin-api/mp/open/${appId}。表里没有运营 URL 列(schema 遗留 url 未映射到 DO)。
账号缓存在内存,按 appId 查,约 60 秒刷新。AccessToken 由 WxJava 写入 Redis,前缀 wx(wx.mp.config-storage.type: RedisTemplate)。starter 的 wx.mp.app-id 只是占位。
和社交登录分表
system_social_client 的 WECHAT_MP = 31 给会员授权。这里的 token / aesKey 只服务消息回调。同一微信应用可以复用 appId,两张表各自建行。
回调要公网
本机地址微信打不进来。Token、AESKey 必须和微信后台一致。先能开账号列表,再填公网域名。
按本仓库 DO 生成的 ER。一张账号对应一个微信公众号。
配置与操作
走 账号管理(2085,mp/account/index)。填 name、微信号 account、appId / appSecret、token / aesKey。列表「服务器地址」是前端拼的:http://服务端地址/admin-api/mp/open/${appId},填进微信后台。按钮含 mp:account:qr-code、mp:account:clear-quota。
保存后微信 GET/POST /mp/open/{appId} 按 appId 找账号。账号缓存在内存,约 60 秒刷新。Token、AESKey 必须和微信后台一致,回调要公网。system_social_client 的公众号登录是另一张表。开启见 公众号功能设计。

本系统截图:公众号管理 → 账号管理(/mp/account)。列表「服务器地址」是前端拼的回调。
