微信企业号开发之如何接收消息

移动开发 移动应用
将应用设置在回调模式时,企业可以通过回调URL接收员工回复的消息,以及员工关注、点击菜单、上报地理位置等事件。在接收到事件后,企业可以发送被动响应消息,实现员工与企业的互动。

将应用设置在回调模式时,企业可以通过回调URL接收员工回复的消息,以及员工关注、点击菜单、上报地理位置等事件。

在接收到事件后,企业可以发送被动响应消息,实现员工与企业的互动。

注意,企业在接收消息,以及发送被动响应消息时,消息体都以AES方式加密,以保证传输的安全。具体可参考'建立连接'中的'回调模式'一节。

一、关注与取消关注

员工在关注企业号时,首先要与企业通讯录中的帐号绑定;如果企业开启了二次验证,那么在绑定成功后还需要经过企业的验证,才可以关注成功。

1、员工与通讯录中的帐号绑定

员工关注企业号时,会根据员工的微信号、微信绑定的手机或邮箱,与企业通讯录的帐号匹配。如果匹配到,则绑定成功;否则会提示员工输入手机号或邮箱,验证成功后再与企业通讯录中的帐号匹配。注意,员工的微信版本需要在5.4以上,目前仅支持iOS、Android两个平台。

2、二次验证

企业在开启二次验证时,必须填写企业二次验证页面的url。当员工绑定通讯录中的帐号后,会收到一条图文消息,引导员工到企业的验证页面验证身份,企业在员工验证成功后,调用如下接口即可让员工关注成功。

  • 请求说明

Http请求方式: GET

https://qyapi.weixin.qq.com/cgi-bin/user/authsucc?access_token=ACCESS_TOKEN&userid=USERID

  • 参数说明
参数 必须 说明
access_token 调用接口凭证
userid 员工UserID
  • 权限说明

管理员须拥有userid对应员工的管理权限。

  • 返回结果
  1.    "errcode""0"
  2.    "errmsg""ok" 

3、关注/取消关注事件的推送

员工关注、取消关注企业号的事件,会推送到每个应用在管理端设置的URL;特别的,默认企业小助手可以用于获取整个企业号的关注状况。(以下假设该URL为http://api.3dept.com)。

  • 请求说明

Http请求方式: POST

http://api.3dept.com/?signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323

  • 参数说明
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[UserID]]></FromUserName> 
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[event]]></MsgType> 
  6.    <Event><![CDATA[subscribe]]></Event> 
  7.    <AgentID>1</AgentID> 
  8. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间 (整型)
MsgType 消息类型,此时固定为:event
Event 事件类型,subscribe(订阅)、unsubscribe(取消订阅)
AgentID 企业应用的id,整型。可在应用的设置页面获取;如果id为0,则表示是整个企业号的关注/取消关注事件

#p#

二、接收普通消息

普通消息是指员工向企业号应用发送的消息,包括文本、图片、语音、视频、地理位置等类型。

  • text消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[text]]></MsgType> 
  6.    <Content><![CDATA[this is a test]]></Content> 
  7.    <MsgId>1234567890123456</MsgId> 
  8.    <AgentID>1</AgentID> 
  9. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:text
Content 文本消息内容
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看
  • image消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[text]]></MsgType> 
  6.    <Content><![CDATA[this is a test]]></Content> 
  7.    <MsgId>1234567890123456</MsgId> 
  8.    <AgentID>1</AgentID> 
  9. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:text
Content 文本消息内容
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看
  • image消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[image]]></MsgType> 
  6.    <PicUrl><![CDATA[this is a url]]></PicUrl> 
  7.    <MediaId><![CDATA[media_id]]></MediaId> 
  8.    <MsgId>1234567890123456</MsgId> 
  9.    <AgentID>1</AgentID> 
  10. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:image
PicUrl 图片链接
MediaId 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看
  • voice消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1357290913</CreateTime> 
  5.    <MsgType><![CDATA[voice]]></MsgType> 
  6.    <MediaId><![CDATA[media_id]]></MediaId> 
  7.    <Format><![CDATA[Format]]></Format> 
  8.    <MsgId>1234567890123456</MsgId> 
  9.    <AgentID>1</AgentID> 
  10. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:voice
MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据。
Format 语音格式,如amr,speex等
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看
  • video消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1357290913</CreateTime> 
  5.    <MsgType><![CDATA[video]]></MsgType> 
  6.    <MediaId><![CDATA[media_id]]></MediaId> 
  7.    <ThumbMediaId><![CDATA[thumb_media_id]]></ThumbMediaId> 
  8.    <MsgId>1234567890123456</MsgId> 
  9.    <AgentID>1</AgentID> 
  10. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:video
MediaId 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
ThumbMediaId 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看
  • location消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1351776360</CreateTime> 
  5.    <MsgType><![CDATA[location]]></MsgType> 
  6.    <Location_X>23.134521</Location_X> 
  7.    <Location_Y>113.358803</Location_Y> 
  8.    <Scale>20</Scale> 
  9.    <Label><![CDATA[位置信息]]></Label> 
  10.    <MsgId>1234567890123456</MsgId> 
  11.    <AgentID>1</AgentID> 
  12. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:location
Location_X 地理位置纬度
Location_Y 地理位置经度
Scale 地图缩放大小
Label 地理位置信息
MsgId 消息id,64位整型
AgentID 企业应用的id,整型。可在应用的设置页面查看

#p#

三、接收事件

事件是指员工在企业号上的某些操作行为,比如关注、上报地理位置、点击菜单等。(关注事件请参考’关注与取消关注’)

1、菜单事件推送

员工点击自定义菜单后,微信会把点击事件推送给企业。请注意,点击菜单弹出子菜单,不会产生上报。

  • 参数说明
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[FromUser]]></FromUserName> 
  4.    <CreateTime>123456789</CreateTime> 
  5.    <MsgType><![CDATA[event]]></MsgType> 
  6.    <Event><![CDATA[click]]></Event> 
  7.    <EventKey><![CDATA[EVENTKEY]]></EventKey> 
  8.    <AgentID>001</AgentID> 
  9. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:event
Event 事件类型,可为click或view,对应菜单创建时的类型
EventKey 事件KEY值,与菜单接口中KEY值对应
AgentID 企业应用的id,整型。可在应用的设置页面查看

2、上报地理位置事件

员工同意上报地理位置后,每次在进入应用会话时都会上报一次地理位置,或在进入应用会话后每5秒上报一次地理位置。企业可以在管理端修改应用的以上 设置。上报地理位置时,微信会将此事件推送到企业应用在管理端设置的URL(以下假设该URL为http://api.3dept.com)。

  • 请求说明

Http请求方式: POST

http://api.3dept.com/?signature=ASDFQWEXZCVAQFASDFASDFSS&timestamp=13500001234&nonce=123412323

  • 参数说明
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[FromUser]]></FromUserName> 
  4.    <CreateTime>123456789</CreateTime> 
  5.    <MsgType><![CDATA[event]]></MsgType> 
  6.    <Event><![CDATA[LOCATION]]></Event> 
  7.    <Latitude>23.104105</Latitude> 
  8.    <Longitude>113.320107</Longitude> 
  9.    <Precision>65.000000</Precision> 
  10.    <AgentID>001</AgentID> 
  11. </xml> 
参数 说明
ToUserName 企业号CorpID
FromUserName 员工UserID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:event
Event 事件类型,此时固定为:LOCATION
Latitude 地理位置纬度
Longitude 地理位置经度
Precision 地理位置精度
AgentID 企业应用的id,整型。可在应用的设置页面查看

#p#

四、被动响应消息

企业响应的消息同样应该经过加密,并带上msg_signature、timestamp、nonce及密文,以下是标准的回包:

  1. <xml> 
  2.    <Encrypt><![CDATA[msg_encrypt]]></Encrypt> 
  3.    <MsgSignature><![CDATA[msg_signature]]></MsgSignature> 
  4.    <TimeStamp>timestamp</TimeStamp> 
  5.    <Nonce><![CDATA[nonce]]></Nonce> 
  6. </xml> 

以下是各类型消息的明文XML结构:

  • text消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName>  
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[text]]></MsgType> 
  6.    <Content><![CDATA[this is a test]]></Content> 
  7. </xml> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:text
Content 文本消息内容
  • image消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1348831860</CreateTime> 
  5.    <MsgType><![CDATA[image]]></MsgType> 
  6.    <Image> 
  7.        <MediaId><![CDATA[media_id]]></MediaId> 
  8.    </Image> 
  9. </xml> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:image
MediaId 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。
  • voice消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1357290913</CreateTime> 
  5.    <MsgType><![CDATA[voice]]></MsgType> 
  6.    <Voice> 
  7.        <MediaId><![CDATA[media_id]]></MediaId> 
  8.    </Voice> 
  9. </xml> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:voice
MediaId 语音消息媒体id,可以调用多媒体文件下载接口拉取数据
  • video消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>1357290913</CreateTime> 
  5.    <MsgType><![CDATA[video]]></MsgType> 
  6.    <Video> 
  7.        <MediaId><![CDATA[media_id]]></MediaId> 
  8.        <Title><![CDATA[title]]></Title> 
  9.        <Description><![CDATA[description]]></Description> 
  10.    </Video> 
  11. </xml> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:video
MediaId 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。
Title 视频消息的标题
Description 视频消息的描述
  • news消息
  1. <xml> 
  2.    <ToUserName><![CDATA[toUser]]></ToUserName> 
  3.    <FromUserName><![CDATA[fromUser]]></FromUserName> 
  4.    <CreateTime>12345678</CreateTime> 
  5.    <MsgType><![CDATA[news]]></MsgType> 
  6.    <ArticleCount>2</ArticleCount> 
  7.    <Articles> 
  8.        <item> 
  9.            <Title><![CDATA[title1]]></Title>  
  10.            <Description><![CDATA[description1]]></Description> 
  11.            <PicUrl><![CDATA[picurl]]></PicUrl> 
  12.            <Url><![CDATA[url]]></Url> 
  13.        </item> 
  14.        <item> 
  15.            <Title><![CDATA[title]]></Title> 
  16.            <Description><![CDATA[description]]></Description> 
  17.            <PicUrl><![CDATA[picurl]]></PicUrl> 
  18.            <Url><![CDATA[url]]></Url> 
  19.        </item> 
  20.    </Articles> 
  21. </xml> 
参数 说明
ToUserName 员工UserID
FromUserName 企业号CorpID
CreateTime 消息创建时间(整型)
MsgType 消息类型,此时固定为:news
ArticleCount 多条图文消息信息,默认***个item为大图,注意,如果图文数超过10,则将会无响应
Title 图文消息标题
Description 图文消息描述
PicUrl 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200
Url 点击图文消息跳转链接
责任编辑:闫佳明 来源: 51CTO
相关推荐

2014-09-24 11:32:21

微信企业号开发

2013-11-13 00:14:16

微信微信公号微信公众账号

2014-09-24 09:59:23

微信企业号开发

2014-09-24 10:29:14

微信企业号开发

2014-09-24 11:45:15

微信企业号开发

2014-09-24 11:04:31

微信企业号开发

2014-09-24 13:11:34

信企业号

2013-11-13 00:37:12

微信微信公号微信公众账号

2014-09-24 11:47:41

微信企业号开发

2014-09-25 15:48:51

微信企业号申请认证

2013-11-12 23:32:53

微信公号微信公众账号

2014-09-28 22:26:11

微信企业号

2014-09-24 11:52:37

微信企业号开发

2014-09-28 22:30:13

微信企业号

2013-11-13 00:20:01

微信微信公号微信公众账号

2014-09-25 15:27:28

微信企业号注册流程

2013-11-13 01:25:33

微信微信公号微信公众账号

2014-10-21 15:42:30

微信企业号企业移动平台

2014-09-28 22:34:09

微信企业号

2015-08-24 15:08:50

OpenShiftNode.js微信开发
点赞
收藏

51CTO技术栈公众号