当普通微信用户向公众账号发消息时,微信服务器将POST消息的XML数据包到开发者填写的URL上。
请注意:
- 关于重试的消息排重,推荐使用msgid排重。
 - 微信服务器在五秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次。假如服务器无法保证在五秒内处理并回复,可以直接回复空串,微信服务器不会对此作任何处理,并且不会发起重试。详情请见“发送消息-被动回复消息”。
 - 如果开发者需要对用户消息在5秒内立即做出回应,即使用“发送消息-被动回复消息”接口向用户被动回复消息时,可以在
 
公众平台官网的开发者中心处设置消息加密。开启加密后,用户发来的消息和开发者回复的消息都会被加密(但开发者通过客服接口等API调用形式向用户发送消息,则不受影响)。关于消息加解密的详细说明,请见“发送消息-被动回复消息加解密说明”。 各消息类型的推送XML数据包结构如下:
# 文本消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[this is a test]]></Content>
  <MsgId>1234567890123456</MsgId>
  <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 消息类型,文本为text | 
| Content | 文本消息内容 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
# 图片消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1348831860</CreateTime>
  <MsgType><![CDATA[image]]></MsgType>
  <PicUrl><![CDATA[this is a url]]></PicUrl>
  <MediaId><![CDATA[media_id]]></MediaId>
  <MsgId>1234567890123456</MsgId>
   <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 消息类型,图片为image | 
| PicUrl | 图片链接(由系统生成) | 
| MediaId | 图片消息媒体id,可以调用获取临时素材接口拉取数据。 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
# 语音消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1357290913</CreateTime>
  <MsgType><![CDATA[voice]]></MsgType>
  <MediaId><![CDATA[media_id]]></MediaId>
  <Format><![CDATA[Format]]></Format>
  <MsgId>1234567890123456</MsgId>
  <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
  <MediaId16K><![CDATA[media_id_16k]]></MediaId16K>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 语音为voice | 
| MediaId | 语音消息媒体id,可以调用获取临时素材接口拉取数据,Format为amr时返回8K采样率amr语音。 | 
| Format | 语音格式,如amr,speex等 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
| MediaId16K | 16K采样率语音消息媒体id,可以调用获取临时素材接口拉取数据,返回16K采样率amr/speex语音。 | 
# 视频消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1357290913</CreateTime>
  <MsgType><![CDATA[video]]></MsgType>
  <MediaId><![CDATA[media_id]]></MediaId>
  <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
  <MsgId>1234567890123456</MsgId>
   <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 视频为video | 
| MediaId | 视频消息媒体id,可以调用获取临时素材接口拉取数据。 | 
| ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
# 小视频消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1357290913</CreateTime>
  <MsgType><![CDATA[shortvideo]]></MsgType>
  <MediaId><![CDATA[media_id]]></MediaId>
  <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId>
  <MsgId>1234567890123456</MsgId>
   <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 小视频为shortvideo | 
| MediaId | 视频消息媒体id,可以调用获取临时素材接口拉取数据。 | 
| ThumbMediaId | 视频消息缩略图的媒体id,可以调用获取临时素材接口拉取数据。 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
# 地理位置消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1351776360</CreateTime>
  <MsgType><![CDATA[location]]></MsgType>
  <Location_X>23.134521</Location_X>
  <Location_Y>113.358803</Location_Y>
  <Scale>20</Scale>
  <Label><![CDATA[位置信息]]></Label>
  <MsgId>1234567890123456</MsgId>
   <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 开发者微信号 | 
| FromUserName | 发送方账号(一个OpenID) | 
| CreateTime | 消息创建时间 (整型) | 
| MsgType | 消息类型,地理位置为location | 
| Location_X | 地理位置纬度 | 
| Location_Y | 地理位置经度 | 
| Scale | 地图缩放大小 | 
| Label | 地理位置信息 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) | 
# 链接消息
<xml>
  <ToUserName><![CDATA[toUser]]></ToUserName>
  <FromUserName><![CDATA[fromUser]]></FromUserName>
  <CreateTime>1351776360</CreateTime>
  <MsgType><![CDATA[link]]></MsgType>
  <Title><![CDATA[公众平台官网链接]]></Title>
  <Description><![CDATA[公众平台官网链接]]></Description>
  <Url><![CDATA[url]]></Url>
  <MsgId>1234567890123456</MsgId>
   <MsgDataId>xxxx</MsgDataId>
  <Idx>xxxx</Idx>
</xml>
| 参数 | 描述 | 
|---|---|
| ToUserName | 接收方微信号 | 
| FromUserName | 发送方微信号,若为普通用户,则是一个OpenID | 
| CreateTime | 消息创建时间 | 
| MsgType | 消息类型,链接为link | 
| Title | 消息标题 | 
| Description | 消息描述 | 
| Url | 消息链接 | 
| MsgId | 消息id,64位整型 | 
| MsgDataId | 消息的数据ID(消息如果来自文章时才有) | 
| Idx | 多图文时第几篇文章,从1开始(消息如果来自文章时才有) |