返回

微信公众号开发(二)消息处理

闲谈

一、前言

在上一篇文章中,我们已经完成了微信公众号的接入认证,成为一名合格的开发者。本文将继续介绍微信公众号开发的第二部分:消息处理。消息处理包括接收消息和回复消息两大部分,掌握了这些内容,开发者就可以实现公众号与用户之间的基本交互了。

二、消息接收

微信公众号的消息接收通过POST请求实现,与微信认证时GET请求的URL是一样的,开发者在填写URL时需注意。接收到的文本消息格式如下:

<xml>
  <ToUserName><![CDATA[gh_e22344f3c285]]></ToUserName>
  <FromUserName><![CDATA[oR5Gjjl_eiZoQR_73VCjo_QKt43Y]]></FromUserName>
  <CreateTime>1508962205</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[你好]]></Content>
  <MsgId>6500687764054666414</MsgId>
</xml>

其中,各个参数的含义如下:

  • ToUserName:开发者微信号
  • FromUserName:发送方帐号(一个OpenID)
  • CreateTime:消息创建时间 (整型)
  • MsgType:消息类型,文本为text,图片为image,语音为voice等等
  • Content:文本消息内容
  • MsgId:消息id,64位整型

三、回复消息

当收到用户的消息后,公众号开发者需要做出相应的回复。回复消息的格式与接收消息类似,也是以XML格式返回。文本消息的回复格式如下:

<xml>
  <ToUserName><![CDATA[oR5Gjjl_eiZoQR_73VCjo_QKt43Y]]></ToUserName>
  <FromUserName><![CDATA[gh_e22344f3c285]]></FromUserName>
  <CreateTime>1508962205</CreateTime>
  <MsgType><![CDATA[text]]></MsgType>
  <Content><![CDATA[你好,我是机器人]]></Content>
</xml>

其中,各个参数的含义如下:

  • ToUserName:接收方帐号(一个OpenID)
  • FromUserName:开发者微信号
  • CreateTime:消息创建时间 (整型)
  • MsgType:消息类型,文本为text,图片为image,语音为voice等等
  • Content:回复的消息内容

注意:回复消息需要在收到消息后8秒内返回,否则微信服务器会认为开发者没有处理此条消息,并且服务器不会对此做出回应。

四、结语

以上就是微信公众号消息处理的基本内容,希望对开发者有所帮助。在下一篇文章中,我们将介绍微信公众号的菜单管理,帮助开发者实现公众号的菜单功能。