微信公众号 - 消息管理

公众号可以接收用户发送的各类消息,并进行自动回复。消息以XML格式在微信服务器与开发者服务器间传递。

消息类型

类型 MsgType 说明
文本消息 text 用户发送的文字内容
图片消息 image 用户发送的图片,包含PicUrl和MediaId
语音消息 voice 用户发送的语音,开启识别后含Recognition字段
视频消息 video 用户发送的视频,包含MediaId和ThumbMediaId
位置消息 location 用户发送的地理位置,包含经纬度
事件推送 event 关注/取关、菜单点击、扫码等事件

被动回复消息 - 处理示例

const xml2js = require('xml2js') app.post('/wechat', async (req, res) => { const xmlData = await getRawBody(req) const { xml } = await xml2js.parseStringPromise(xmlData) const msgType = xml.MsgType[0] const fromUser = xml.FromUserName[0] const toUser = xml.ToUserName[0] let replyContent = '感谢您的消息!' if (msgType === 'text') { const content = xml.Content[0] if (content.includes('帮助')) { replyContent = '回复以下关键词获取信息:\n1. 天气\n2. 新闻\n3. 签到' } } else if (msgType === 'event') { const event = xml.Event[0] if (event === 'subscribe') { replyContent = '欢迎关注!回复"帮助"查看功能列表' } } const reply = `<xml> <ToUserName><![CDATA[${fromUser}]]></ToUserName> <FromUserName><![CDATA[${toUser}]]></FromUserName> <CreateTime>${Math.floor(Date.now() / 1000)}</CreateTime> <MsgType><![CDATA[text]]></MsgType> <Content><![CDATA[${replyContent}]]></Content> </xml>` res.type('application/xml') res.send(reply) })
← Mp Development Mp Menu →