将应用设置在回调模式时,企业可以通过回调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对应员工的管理权限。
- 返回结果
- {
- "errcode": "0",
- "errmsg": "ok"
- }
3、关注/取消关注事件的推送
员工关注、取消关注企业号的事件,会推送到每个应用在管理端设置的URL;特别的,默认企业小助手可以用于获取整个企业号的关注状况。(以下假设该URL为http://api.3dept.com)。
- 请求说明
Http请求方式: POST
http://api.3dept.com/?signature=ASDFQWEXZCVAQFASDFASDFSS×tamp=13500001234&nonce=123412323
- 参数说明
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[UserID]]></FromUserName>
- <CreateTime>1348831860</CreateTime>
- <MsgType><![CDATA[event]]></MsgType>
- <Event><![CDATA[subscribe]]></Event>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间 (整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,subscribe(订阅)、unsubscribe(取消订阅) |
AgentID | 企业应用的id,整型。可在应用的设置页面获取;如果id为0,则表示是整个企业号的关注/取消关注事件 |
#p#
二、接收普通消息
普通消息是指员工向企业号应用发送的消息,包括文本、图片、语音、视频、地理位置等类型。
- text消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:text |
Content | 文本消息内容 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
- image消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:text |
Content | 文本消息内容 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
- image消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:image |
PicUrl | 图片链接 |
MediaId | 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
- voice消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:voice |
MediaId | 语音消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
Format | 语音格式,如amr,speex等 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
- video消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:video |
MediaId | 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
ThumbMediaId | 视频消息缩略图的媒体id,可以调用多媒体文件下载接口拉取数据。 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
- location消息
- <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>
- <AgentID>1</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:location |
Location_X | 地理位置纬度 |
Location_Y | 地理位置经度 |
Scale | 地图缩放大小 |
Label | 地理位置信息 |
MsgId | 消息id,64位整型 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
#p#
三、接收事件
事件是指员工在企业号上的某些操作行为,比如关注、上报地理位置、点击菜单等。(关注事件请参考’关注与取消关注’)
1、菜单事件推送
员工点击自定义菜单后,微信会把点击事件推送给企业。请注意,点击菜单弹出子菜单,不会产生上报。
- 参数说明
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[FromUser]]></FromUserName>
- <CreateTime>123456789</CreateTime>
- <MsgType><![CDATA[event]]></MsgType>
- <Event><![CDATA[click]]></Event>
- <EventKey><![CDATA[EVENTKEY]]></EventKey>
- <AgentID>001</AgentID>
- </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×tamp=13500001234&nonce=123412323
- 参数说明
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[FromUser]]></FromUserName>
- <CreateTime>123456789</CreateTime>
- <MsgType><![CDATA[event]]></MsgType>
- <Event><![CDATA[LOCATION]]></Event>
- <Latitude>23.104105</Latitude>
- <Longitude>113.320107</Longitude>
- <Precision>65.000000</Precision>
- <AgentID>001</AgentID>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 企业号CorpID |
FromUserName | 员工UserID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:event |
Event | 事件类型,此时固定为:LOCATION |
Latitude | 地理位置纬度 |
Longitude | 地理位置经度 |
Precision | 地理位置精度 |
AgentID | 企业应用的id,整型。可在应用的设置页面查看 |
#p#
四、被动响应消息
企业响应的消息同样应该经过加密,并带上msg_signature、timestamp、nonce及密文,以下是标准的回包:
- <xml>
- <Encrypt><![CDATA[msg_encrypt]]></Encrypt>
- <MsgSignature><![CDATA[msg_signature]]></MsgSignature>
- <TimeStamp>timestamp</TimeStamp>
- <Nonce><![CDATA[nonce]]></Nonce>
- </xml>
以下是各类型消息的明文XML结构:
- text消息
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>1348831860</CreateTime>
- <MsgType><![CDATA[text]]></MsgType>
- <Content><![CDATA[this is a test]]></Content>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:text |
Content | 文本消息内容 |
- image消息
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>1348831860</CreateTime>
- <MsgType><![CDATA[image]]></MsgType>
- <Image>
- <MediaId><![CDATA[media_id]]></MediaId>
- </Image>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:image |
MediaId | 图片消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
- voice消息
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>1357290913</CreateTime>
- <MsgType><![CDATA[voice]]></MsgType>
- <Voice>
- <MediaId><![CDATA[media_id]]></MediaId>
- </Voice>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:voice |
MediaId | 语音消息媒体id,可以调用多媒体文件下载接口拉取数据 |
- video消息
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>1357290913</CreateTime>
- <MsgType><![CDATA[video]]></MsgType>
- <Video>
- <MediaId><![CDATA[media_id]]></MediaId>
- <Title><![CDATA[title]]></Title>
- <Description><![CDATA[description]]></Description>
- </Video>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:video |
MediaId | 视频消息媒体id,可以调用多媒体文件下载接口拉取数据。 |
Title | 视频消息的标题 |
Description | 视频消息的描述 |
- news消息
- <xml>
- <ToUserName><![CDATA[toUser]]></ToUserName>
- <FromUserName><![CDATA[fromUser]]></FromUserName>
- <CreateTime>12345678</CreateTime>
- <MsgType><![CDATA[news]]></MsgType>
- <ArticleCount>2</ArticleCount>
- <Articles>
- <item>
- <Title><![CDATA[title1]]></Title>
- <Description><![CDATA[description1]]></Description>
- <PicUrl><![CDATA[picurl]]></PicUrl>
- <Url><![CDATA[url]]></Url>
- </item>
- <item>
- <Title><![CDATA[title]]></Title>
- <Description><![CDATA[description]]></Description>
- <PicUrl><![CDATA[picurl]]></PicUrl>
- <Url><![CDATA[url]]></Url>
- </item>
- </Articles>
- </xml>
参数 | 说明 |
---|---|
ToUserName | 员工UserID |
FromUserName | 企业号CorpID |
CreateTime | 消息创建时间(整型) |
MsgType | 消息类型,此时固定为:news |
ArticleCount | 多条图文消息信息,默认***个item为大图,注意,如果图文数超过10,则将会无响应 |
Title | 图文消息标题 |
Description | 图文消息描述 |
PicUrl | 图片链接,支持JPG、PNG格式,较好的效果为大图360*200,小图200*200 |
Url | 点击图文消息跳转链接 |