你所在的位置:微信群>互联网推广>正文

微信公众平台开发技术-客服接口

原创
发布时间: 2023-07-15 13:10:09 热度: 222 作者: 李斯特 来源: 微信加 本文共 7826 字 阅读需要 27 分钟
客服接口客服接口的功能是将普通微信用户向公众号发出的消息转发到客服系统。通过客服系统,客服人员可以查看并回复用户,也可以灵活地管控客服人员的登录账号和任务。
客服接口

客服接口的功能是将普通微信用户向公众号发出的消息转发到客服系统。通过客服系统,客服人员可以查看并回复用户,也可以灵活地管控客服人员的登录账号和任务。

公众号处于开发模式时,普通微信用户向公众号发消息时,微信服务器会先将消息传递到开发者填写的 URL 上,如果希望将消息转发到客服系统,则需要开发者在响应包中返回 MsgType 为 transfer_customer_service 的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。出于用户特定的需要,也可以为用户指定客服,那么就可以在返回 transfer_customer_service 消息时,在 XML 中附上 TransInfo 信息指定分配给某个客服账号。

客服接口

客服接口的功能是将普通微信用户向公众号发出的消息转发到客服系统。通过客服系统,客服人员可以查看并回复用户,也可以灵活地管控客服人员的登录账号和任务。

公众号处于开发模式时,普通微信用户向公众号发消息时,微信服务器会先将消息传递到开发者填写的 URL 上,如果希望将消息转发到客服系统,则需要开发者在响应包中返回 MsgType 为 transfer_customer_service 的消息,微信服务器收到响应后会把当次发送的消息转发至客服系统。出于用户特定的需要,也可以为用户指定客服,那么就可以在返回 transfer_customer_service 消息时,在 XML 中附上 TransInfo 信息指定分配给某个客服账号。

消息转发到客服

接入客服接口后,当用户与客服处于会话过程中时,用户发送的消息会直接转发至客服系统,直到客服关闭会话。如果超过 30 min 客服一直没有关闭会话,那么微信服务器将停止转发至客服系统,而继续发送到开发者填写的 URL 上。用户在等待队列中时,用户发送的消息仍然会被推送至开发者填写的 URL 上。

需要特别注意的是,微信服务器只针对微信用户发来的消息进行转发,而对于其他任何事件(包括菜单点击、地理位置上报等)都不应该转接,否则客服在客服系统上就会看到一些无意义的消息。

响应包数据如下:

  1. <xml>   2. <ToUserName><![CDATA[touser]]></ToUserName>   3. <FromUserName><![CDATA[fromuser]]></FromUserName>   4. <CreateTime>1399197672</CreateTime>   5. <MsgType><![CDATA[transfer_customer_service]]></MsgType>   6. </xml>

以上响应数据包中包含 MsgType 为 transfer_customer_service 的消息,故微信服务器会将该消息直接转发至客服系统。

在多客服人员同时登录客服并开启了自动接入且在进行接待的条件下,客户消息转发至客服时,多客服系统会将客户随机分配给其中一个客服人员。若有将某个客户的消息转给指定客服接待的需求,可以在返回 transfer_customer_service 消息时附上 TransInfo 信息以指定一个客服账号 KfAccount。但如果指定的客服处于没有接入能力的状态下(不在线、没有开启自动接入或者自动接入已满),该用户也会被直接接入到指定客服,不再通知其他客服,更不会被其他客服接待。所以建议开发者在指定客服时,要确保该客服具有接入能力,这样才能保证客户能及时地得到服务。

  1. <xml>   2. <ToUserName><![CDATA[touser]]></ToUserName>   3. <FromUserName><![CDATA[fromuser]]></FromUserName>   4. <CreateTime>1399197672</CreateTime>   5. <MsgType><![CDATA[transfer_customer_service]]></MsgType>   6. <TransInfo>   7. <KfAccount><![CDATA[test1@test]]></KfAccount>   8. </TransInfo>   9. </xml>

客服管理

1. 获取客服基本信息

• 接口调用请求说明。

HTTP 请求方式:GET。

https://www.wechatadd.com

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "kf_list" : [   3. {   4. "kf_account" : "test1@test",   5. "kf_headimgurl" : "https://www.wechatadd.com    HvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",   6. "kf_id" : "1001",   7. "kf_nick" : "ntest1",   8. "kf_wx" : "kfwx1"   9. },   10. {   11. "kf_account" : "test2@test",   12. "kf_headimgurl" : "https://www.wechatadd.com    HvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",   13. "kf_id" : "1002",   14. "kf_nick" : "ntest2",   15. "kf_wx" : "kfwx2"   16. },   17. {   18. "kf_account" : "test3@test",   19. "kf_headimgurl" : "https://www.wechatadd.com    HvnphkyGtnvjfUS8Ym0GSaLic0FD3vN0V8PILcibEGb2fPfEOmw/0",   20. "kf_id" : "1003",   21. "kf_nick" : "ntest3",   22. "invite_wx" : "kfwx3",   23. "invite_expire_time" : 123456789,   24. "invite_status" : "waiting"   25. }   26. ]   27. }

表 8-1 对所用参数进行了说明,具体如下。

表 8-1 获取客服基本信息参数说明

2. 添加客服账号

• 调用请求说明。

HTTP 请求方式:POST。

https://www.wechatadd.com

POST 数据示例如下:

  1. {   2. 「kf_account」 : 「test1@test」,   3. 「nickname」 : 「客服 1」   4. }

表 8-2 对所用参数进行了说明,具体如下。

表 8-2 添加客服账号参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号,账号前缀最多 10 个字符,必须是英文、数字字符或者下画线,后缀为微信公众号,长度不超过 30 个字符
nickname 客服昵称,最长 16 个字

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-3 对返回码进行了说明,具体如下。

表 8-3 添加客服账号返回码说明

3. 邀请绑定客服账号

新添加的客服账号是不能直接使用的,只有客服人员用微信号绑定了客服账号后,方可登录以进行操作。此接口发起一个绑定邀请到客服人员微信号,客服人员需要在微信客户端上用该微信号确认,然后账号才可用。尚未绑定微信号的账号可以进行绑定邀请操作,邀请未失效时不能对该账号再次进行绑定邀请。

• 调用请求说明。

HTTP 请求方式:POST。

https://www.wechatadd.com

POST 数据示例如下:

  1. {   2. "kf_account" : "test1@test",   3. "invite_wx" : "test_kfwx"   4. }

表 8-4 对邀请绑定客服账号所用参数进行说明,具体如下。

表 8-4 邀请绑定客服账号参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号
invite_wx 接收绑定邀请的客服微信号

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-5 对返回码进行了说明,具体如下。

表 8-5 邀请绑定客服账号返回码说明

4. 设置客服信息

• 调用请求说明。

HTTP 请求方式:POST。

https://www.wechatadd.com

POST 数据示例如下:

  1. {   2. 「kf_account」 : 「test1@test」,   3. 「nickname」 : 「客服 1」   4. }  

表 8-6 对设置客服信息所用参数进行了说明,具体如下。

表 8-6 设置客服信息参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号
nickname 客服昵称,最长 16 个字

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-7 对返回码进行了说明,具体如下。

表 8-7 设置客服信息返回码说明

5. 上传客服头像

• 调用请求说明。

HTTP 请求方式:POST/FORM。

https://www.wechatadd.com;kf_account=KFACCOUNT

调用示例(使用 curl 命令,用 FORM 表单方式上传一个多媒体文件):

curl -F media=@test.jpg "https://www.wechatadd.com;kf_account=KFACCOUNT"

表 8-8 对上传客服头像所用参数进行了说明,具体如下。

表 8-8 上传客服头像参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号
media form-data 中媒体文件标识,有 filename、filelength、content-type 等信息,文件大小为 5 MB 以内

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-9 对返回码进行了说明,具体如下。

表 8-9 上传客服头像返回码说明

6. 删除客服账号

• 调用请求说明。

HTTP 请求方式:POST/FORM。

https://www.wechatadd.com;kf_account=KFACCOUNT

表 8-10 对删除客服账号所用参数进行了说明,具体如下。

表 8-10 删除客服账号参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-11 对返回码进行了说明,具体如下。

表 8-11 删除客服账号返回码说明

返回码 说明
0 成功
65400 API 不可用,即没有开通或没有升级到新版客服功能
65401 无效客服账号
会话控制

1. 创建会话

此接口在客服和用户之间创建一个会话,如果该客服和用户会话已存在,则直接返回 0。指定的客服账号必须已经绑定微信号且在线。

• 调用请求说明。

HTTP 请求方式:POST。

https://www.wechatadd.com

POST 数据示例如下:

  1. {   2. "kf_account" : "test1@test",   3. "openid" : "OPENID"   4. }

表 8-12 对创建会话所用参数进行了说明,具体如下。

表 8-12 创建会话参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号
openid 粉丝的 OpenID

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

2. 关闭会话

• 调用请求说明。

HTTP 请求方式:POST。

https://www.wechatadd.com

POST 数据示例如下:

  1. {   2. "kf_account" : "test1@test",   3. "openid" : "OPENID"   4. }

表 8-13 对关闭会话所用参数进行了说明,具体如下。

表 8-13 关闭会话参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号
openid 粉丝的 OpenID

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "errcode" : 0,   3. "errmsg" : "ok"   4. }

表 8-14 对返回码进行了说明,具体如下。

表 8-14 关闭会话返回码说明

3. 获取客户会话状态

此接口获取一个客户的会话,如果不存在,则 kf_account 为空。

• 调用请求说明。

HTTP 请求方式:GET。

https://www.wechatadd.com KEN&openid=OPENID

表 8-15 对获取客户会话状态所用参数进行了说明,具体如下。

表 8-15 获取客户会话状态参数说明

参数名称 描述
openid 粉丝的 OpenID

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "createtime" : 123456789,   3. "kf_account" : "test1@test"   4. }

表 8-16 对返回码进行了说明,具体如下。

表 8-16 获取客户会话状态返回码说明

返回码 说明
0 成功
65400 API 不可用,即没有开通或没有升级到新版客服功能
40003 非法的 OpenID

4. 获取客服会话列表

• 调用请求说明。

HTTP 请求方式:GET。

https://www.wechatadd.com;kf_account=KFACCOUNT

表 8-17 对获取客服会话列表所用参数进行说明,具体如下。

表 8-17 获取客服会话列表参数说明

参数名称 描述
kf_account 完整客服账号,格式为账号前缀@微信公众号

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "sessionlist" : [   3. {   4. "createtime" : 123456789,   5. "openid" : "OPENID"   6. },   7. {   8. "createtime" : 123456789,   9. "openid" : "OPENID"   10. }   11. ]   12. }

5. 获取未接入会话列表

• 调用请求说明。

HTTP 请求方式:GET。

https://www.wechatadd.com?access_token=ACCESS_TOKEN 表 8-18 对获取未接入会话列表所用参数进行了说明,具体如下。

表 8-18 获取未接入会话列表参数说明

• 返回说明。

返回数据示例(正确时的 JSON 返回结果):

  1. {   2. "count" : 150,   3. "waitcaselist" : [   4. {   5. "latest_time" : 123456789,   6. "openid" : "OPENID"   7. },   8. {   9. "latest_time" : 123456789,   10. "openid" : "OPENID"   11. }   12. ]   13. }

表 8-19 对返回码进行说明,具体如下。

表 8-19 获取未接入会话列表返回码说明

版权保护: 本文由 李斯特 原创,转载请保留链接: https://www.wechatadd.com/artdet/9559