公众号接收图片消息

1. 图片消息XML结构特点

用户向公众号发送图片时,微信服务器POST推送的XML消息:

  • 新增2个节点:
    • PicUrl:图片临时访问链接(可直接浏览器打开,链接有有效期)
    • MediaId:媒体资源ID,推荐用这个ID调用微信多媒体下载接口,下载原图
  • 没有Content节点(文本消息才会有Content)
  • 判断消息类型:MsgType="image",以此区分图片消息

2. 代码逻辑(C#示例)

// 判断消息类型
case "image":
    ImageHandle(xmldoc);
    break;

// 处理图片消息
private void ImageHandle(XmlDocument xmldoc)
{
    // 读取图片链接节点
    XmlNode PicUrl = xmldoc.SelectSingleNode("/xml/PicUrl");
    // 将图片链接存入缓存,有效期3600秒
    SetCacheDateTime("PicUrl", PicUrl.InnerText, 3600);
}
Code language: JavaScript (javascript)

3. 关键说明

  1. PicUrl是临时地址:图片链接只能短期访问,不能永久保存图片,如需持久存储,要通过MediaId调用微信接口下载图片。
  2. 消息路由:微信把用户消息POST推送到你配置的公众号服务器地址,服务器解析XML,判断MsgType做对应处理。
  3. 示例得到的图片链接格式: [http://mmbiz.qpic.cn/mmbiz_jpg/xxxxxx](http://mmbiz.qpic.cn/mmbiz_jpg/xxxxxx)

4. 和文本消息对比

消息类型MsgTypeXML节点
文本消息textContent
图片消息imagePicUrl、MediaId(无Content)

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注