Appearance
回调消息释义(完全版)
Eyun 平台会把微信原生消息二次处理后推送到回调地址。完全版字段更丰富,适合需要区分文本、图片、视频、语音、群通知、好友通知等场景的接入方。
注意
- 回调事件类型较多,本文档覆盖常见字段和常见类型;未列出的字段可按业务需要自行调试处理。
- 消息可能因网络重放或历史同步而重复推送,调用方必须做消息排重,优先使用
newMsgId,并结合timestamp做兜底。
响应参数
| 参数名 | 类型 | 说明 |
|---|---|---|
| wcId | string | 当前微信 ID |
| account | string | 开发者账号 |
| messageType | int | Eyun 归类后的消息类型 |
| data | object | 消息体 |
| data.wId | string | 登录实例标识 |
| data.fromUser | string | 发送者微信 ID |
| data.fromGroup | string | 来源群号,群消息时有值 |
| data.toUser | string | 接收者微信 ID |
| data.msgId | number | 消息 ID |
| data.newMsgId | number | 新消息 ID,建议用于排重 |
| data.msgType | int | 微信原生消息子类型 |
| data.timestamp | number | 消息时间戳 |
| data.content | string | 消息内容;文本为普通字符串,图片/视频/文件等通常为 XML |
| data.self | boolean | 是否为自己发送的消息 |
| data.msgSource | string | 消息来源扩展信息,部分群消息存在 |
| data.length | number | 语音等媒体消息长度字段 |
| data.voiceLength | number | 语音播放时长字段 |
messageType 取值
| 值 | 含义 |
|---|---|
0 | 好友请求 |
2 | 群名片 |
3 | 个人名片 |
4 | 下线通知 |
5 | 私聊文本 |
6 | 私聊图片 |
7 | 私聊视频 |
8 | 私聊语音 |
9 | 群聊文本 |
10 | 群聊图片 |
11 | 群聊视频 |
12 | 群聊语音 |
13 | 私聊其他类型 |
14 | 群通知一,需结合 msgType 判断 |
15 | 好友相关通知 |
16 | 群通知二,常见于入群、移出、群名更改、备注变更等 |
17 | 删除相关通知 |
msgType 常见取值
| 值 | 含义 |
|---|---|
47 | 动图表情 |
48 | 地图位置 |
49 | 复合类型,需根据 content 中的 type 字段继续区分 |
51 | 手机在群聊会话界面事件 |
10002 | 群系统通知,例如入群、移出、改群名等 |
msgType=49 常见子类型
| content.type | 含义 |
|---|---|
5 | 链接 |
6 | 文件 |
8 | 输入法表情 |
19 | 聊天记录 |
33 / 36 | 小程序 |
2000 | 收付款 |
2001 | 红包 |
回调示例
私聊文本
json
{
"account": "180132123321",
"messageType": 5,
"wcId": "wxid_ctqh94e1ahe722",
"data": {
"wId": "0768a034-4292-4cf6-bd85-379312eb9dc1",
"content": "这是一条文本内容",
"fromUser": "wxid_6j310kguyobz22",
"msgId": 1713244061,
"newMsgId": 769189154845429899,
"self": false,
"timestamp": 1619157348,
"toUser": "wxid_ctqh94e1ahe722"
}
}群聊文本
json
{
"account": "180132123321",
"messageType": 9,
"wcId": "wxid_ctqh94e1ahe722",
"data": {
"wId": "0768a034-4292-4cf6-bd85-379312eb9dc1",
"content": "大家好呀",
"fromGroup": "22135005646@chatroom",
"fromUser": "wxid_6j310kguyobz22",
"msgId": 1713244067,
"msgSource": "<msgsource><silence>0</silence><membercount>3</membercount></msgsource>",
"newMsgId": 1798994407239534576,
"self": false,
"timestamp": 1619157466,
"toUser": "wxid_ctqh94e1ahe722"
}
}图片消息
json
{
"account": "180132123321",
"messageType": 6,
"wcId": "wxid_ctqh94e1ahe722",
"data": {
"wId": "0768a034-4292-4cf6-bd85-379312eb9dc1",
"content": "<?xml version=\"1.0\"?><msg><img aeskey=\"be0b1aee...\" cdnthumburl=\"3072020100...\" cdnmidimgurl=\"3072020100...\" length=\"24880\" md5=\"6a3bd872fbdab1a48ae004c703ea68c3\" /></msg>",
"fromUser": "wxid_6j310kguyobz22",
"msgId": 1713244079,
"newMsgId": 2838595706480537677,
"self": false,
"timestamp": 1619158263,
"toUser": "wxid_ctqh94e1ahe722"
}
}语音消息
json
{
"account": "180132123321",
"messageType": 8,
"wcId": "wxid_ctqh94e1ahe722",
"data": {
"wId": "0768a034-4292-4cf6-bd85-379312eb9dc1",
"content": "<msg><voicemsg voiceformat=\"4\" voicelength=\"5320\" length=\"6307\" bufid=\"508882508695339372\" fromusername=\"wxid_6j310kguyobz22\" /></msg>",
"fromUser": "wxid_6j310kguyobz22",
"length": 1853,
"msgId": 1713244080,
"newMsgId": 4167247400520123082,
"self": false,
"timestamp": 1619158387,
"toUser": "wxid_ctqh94e1ahe722",
"voiceLength": 1347
}
}使用建议
- 接入方应先按
messageType做一级分流,再按msgType或 XML 中的type做细分。 - 媒体消息下载时,优先把回调中的
content原样传给下载接口。 - 群消息要同时关注
fromGroup和fromUser,避免把群成员误判为私聊联系人。