公众号消息
这篇解决什么
粉丝往来消息落哪张表、管理端发送走哪条接口。读完能对上 mp_message.sendFrom 和客服消息 /send,不要和模版消息、自动回复规则混成一张表。
默认端口 48080。先接入账号见 公众号接入。
示意图:回调先异步落库。管理端发送是客服消息,sendFrom=2。
从哪改
| 名称 | 说明 | 仓库路径 |
|---|---|---|
| 消息 | @RequestMapping("/mp/message") | ruoyi-office/yudao-module-mp/yudao-module-mp-server/.../controller/admin/message/MpMessageController.java |
| 分页 | GET /page | 权限字在菜单 mp:message:query |
| 发送 | POST /send | mp:message:send |
| 消息表 | mp_message | MpMessageDO |
| 方向 | 1 粉丝→号 / 2 号→粉丝 | MpMessageSendFromEnum |
| 管理端 | 会话列表 | ruoyi-office-vben/apps/web-antd/src/views/mp/message/ |
官方菜单:消息管理 2103(mp/message/index)。查询 2128,发送 2129。
type 用微信 XmlMsgType 字符串。发送校验支持 text、image、voice、video、news、music。接收还可能是 link、location、shortvideo 和各类 event。
字段
三条出站路径不要拧在一起:回调被动回复走 sendOutMessage;管理端走 sendKefuMessage;模版消息另表。
| 名称 | 说明 | 仓库路径 |
|---|---|---|
openid / userId | 粉丝 | MpMessageDO |
sendFrom | 方向 | 同上 |
type / content | 类型、文本 | 同上 |
mediaId / mediaUrl | 媒体 | 同上 |
articles | 图文 JSON | 同上 |
event / eventKey | 菜单点击、扫码 | 同上 |
msgId | 微信消息编号 | 同上 |
路由顺序:先 MessageReceiveHandler 落库(sendFrom=1)。菜单 CLICK 走 公众号菜单 的 reply。默认规则走 自动回复。VIEW 不回消息。
模版消息不写这张表
/mp/message-template/send 调微信模版接口后不插 mp_message。查往来记录不要按模版 templateId 过滤本表。
媒体要先有素材
发图片、语音、视频需要当前账号的 mediaId。收消息时会下载副本写 mediaUrl,见 公众号素材。
按本仓库 DO 生成的 ER。一行一条收或发。
配置与操作
走 消息管理(2103,/mp/message)。查询 2128 mp:message:query,发送 2129 mp:message:send。先选账号和粉丝,再发客服消息:text / image / voice / video / news / music。出站 sendFrom=2。
回调入站先异步落库 sendFrom=1。菜单点击、自动回复、模版发送是另外三条路径;模版不写本表。发媒体要先有当前账号的 mediaId。开启见 公众号功能设计。

本系统截图:公众号管理 → 消息管理。管理端发送是客服消息,不是模版消息。
