# 第三方客服系统接入 - 接收用户和机器人消息

# 配置信息

例如:

  • APPID: xxxxxxxxxxxxxxx
  • TOKEN: xxxxxxxxxxxxxxx
  • EncodingAESKey: xxxxxxxxxxxxxxx

# 配置人工客服回调接口:

请按照下面路径配置好人工客服回调接口

发布管理 -> 应用绑定 -> 开放API -> 回调地址

authentication

注意:当客服接入状态为1已接入时,第三方客服系统将不会接收到机器人回答的数据上报

接口类型:

POST请求

Content-type: application/json 的 json 请求

# 请求参数说明:

字段 类型 是否必填 描述
encrypted string 对话内容加密后字符串

# 消息加解密说明:

请参考 消息加解密接入指引 进行消息的解密

注意在使用消息解密的过程中,MsgSignature,TimeStamp,Nonce 3 个字段直接填入空字符串, 仅进行解密既可,不需要进行签名校验, 另外再使用官方提供的解密 demo 时注意不能直接使用,因为返回的数据结果不是包在 xml 中的

<xml>
    <Encrypt>
    <![CDATA[LDFAmKFr7U/RMmwRbsR676wjym90byw7+hhh226e8bu6KVYy00HheIsVER4eMgz/VBtofSaeXXQBz6fVdkN2CzBUaTtjJeTCXEIDfTBNxpw/QRLGLq
    qMZHA3I+JiBxrrSzd2yXuXst7TdkVgY4lZEHQcWk85x1niT79XLaWQog+OnBV31eZbXGPPv8dZciKqGo0meTYi+fkMEJdyS8OE7NjO79vpIyIw7hMBtEXPBK/tJGN5m5SoAS
    6I4rRZ8Zl8umKxXqgr7N8ZOs6DB9tokpvSl9wT9T3E62rufaKP5EL1imJUd1pngxy09EP24O8Th4bCrdUcZpJio2l11vE6bWK2s5WrLuO0cKY2GP2unQ4fDxh0L4ePmNOVFJ
    wp9Hyvd0BAsleXA4jWeOMw5nH3Vn49/Q/ZAQ2HN3dB0bMA+6KJYLvIzTz/Iz6vEjk8ZkK+AbhW5eldnyRDXP/OWfZH2P3WQZUwc/G/LGmS3ekqMwQThhS2Eg5t4yHv0mAIei
    07Lknip8nnwgEeF4R9hOGutE9ETsGG4CP1LHTQ4fgYchOMfB3wANOjIt9xendbhHbu51Z4OKnA0F+MlgZomiqweT1v/+LUxcsFAZ1J+Vtt0FQXElDKg+YyQnRCiLl3I+GJ/c
    xSj86XwClZC3NNhAkVU11SvxcXEYh9smckV/qRP2Acsvdls0UqZVWnPtzgx8hc8QBZaeH+JeiaPQD88frNvA==]]> </Encrypt>
    <MsgSignature></MsgSignature>
    <TimeStamp>1411034505</TimeStamp>
    <Nonce></Nonce>
</xml>

而是直接将Encrypt 返回在 JSON 中,直接调用官方 Demo 示例中的decrypt方法就可以了 而不是 decryptMsg

解密后的数据格式如下:


<xml>
  <userid>用户的唯一ID,(通常为用户在微信的openid)</userid>
  <appid>应用的appid</appid>
  <content>
    <msg>机器人或用户的的内容</msg>
  </content>
  <event>userEnter</event>
  <from>对话来源ID 0/1/2</from>
  <kfstate>客服接入状态 0/1/2/3</kfstate>
  <channel>渠道id 0</channel>
  <assessment>用户评价0/1/2/3/4/5</assessment>
  <createtime>unix时间戳</createtime>
</xml>

content 字段为复合型数据结构 , 当 from === 0 时为顾客发送的问题, 可能为纯文本或富文本, 当 from === 1 时为机器人自动回复的内容,当 from === 2 时为人工客服回复的内容

# 返回值说明:

字段 类型 是否必填 描述
userid string 用户的微信 openid
appid string 公众号或小程序的 appid
content object 机器人回复或顾客问题
channel number 渠道 ID,详见渠道对映表
from number 对话来源
event string 用户触发事件
kfstate number 客服接入状态
assessment number 客户评价

# 客服接入状态(kfstate):

状态 ID 描述
0 智能客服 -- 待接入 (asking)
1 人工客服 -- 已接入 (personserving)
2 结束人工客服(对话) -- 对话关闭 (complete)
3 待人工接入 -- 待转人工 (needperson)

# 对话来源(from):

来源 ID 描述
0 用户发出的内容
1 机器人回复的内容
2 客服在微信对话开放平台上进行回复时的内容

# 渠道说明(channel):

渠道 ID 渠道描述
0 接入方式为,扫码绑定的公众号、小程序接入智能对话的渠道
2 接入方式为,通过开放接口方式接入智能对话的渠道
6 接入方式为,小程序插件接入智能对话的渠道
7 接入方式为,网页 H5 机器人智能对话的渠道

# 客服触发事件(event):

事件 Key 描述 支持的渠道
userEnter 用户进入 H5 机器人
userQuit 用户离开 H5 机器人
customerStuffEnter 客服人员开始接入 所有渠道
customerStuffQuit 客服人员关闭离开 所有渠道

事件 customerStuffEnter/customerStuffQuit 出现时 会额外补充一个字段 customerInfo

字段名称 描述
customerInfo.name 客服人员的微信昵称
customerInfo.avatar 客服人员的头像
customerInfo.openid 客服人员的微信 openid

# 客户评价(assessment):

assessment 描述
0 非客户评价消息
1 很满意
2 满意
3 一般
4 不满
5 很不满

# 错误码说明:

{
    errcode: 1001,
    errmsg: "TOKEN is not valid"
}
错误码 描述
1001 token 无效
1002 机器人审核没有通过
1003 签名缺少 userid 字段
1004 签名字段为空
1005 签名过期或无效
1006 签名校验失败,缺少 userid 字段