# 第三方客服系统接入- 修改用户的客服接入状态

客服的用户接入状态,会直接控制机器人是否回复用户,当接入状态为on时代表,此客户已 被客服接入,此时机器人将不进行回答,只有客服提供服务,当接入状态为off时代表,此客户还没有 被客服接入,此时机器人遇到命中的已配置问题,将进行自动回复。

# 配置信息

例如:

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

# 修改客服接入状态接口:

https://chatbot.weixin.qq.com/openapi/kefustate/change/{TOKEN}

接口类型:

POST请求

参数说明:

字段 类型 是否必填 描述
appid string 公众号或小程序的 appid
openid string 用户的微信 openid
kefustate string 客服状态

客服状态说明:

字段 类型 描述
asking string 待接入, 顾客于机器人进行咨询对话
personserving string 已接入, 人工客服已经接入服务该顾客 (老接口状态为on)
complete string 接入完成, 人工客服人员已经完成对该该顾客的相关咨询服务 (老接口状态为off)
needperson string 待转人工, 顾客表达出了希望对接人工客服的意愿,并成功被智能机器人捕获,通常是命中了技能名称中含有“转人工”字样的技能

消息加解密接入指引

比如参数为

<xml>
    <appid><![CDATA[wxxxxx]]></appid>
    <openid><![CDATA[xxxxx]]></openid>
    <kefustate><![CDATA[needperson]]></kefustate>
</xml>

将加密后的数据,以字段 encrypt 放入 body 中

var cryptor = new WXBizMsgCrypt(TOKEN, EncodingAESKey, APPID);
var data = `<xml>
    <appid><![CDATA[wxxxxx]]></appid>
    <openid><![CDATA[xxxxx]]></openid>
    <kefustate><![CDATA[off]]></kefustate>
</xml>`
var encrypted = cryptor.encrypt(data);


curl -X post -d '{"encrypt": encrypted}' "https://chatbot.weixin.qq.com/openapi/kefustate/change/{TOKEN}"

返回值说明:

字段 类型 描述
errcode number 错误码
errmsg string 错误信息

返回格式:

{
  "errcode": 0,
  "errmsg": ""
}

# 错误码说明:

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