# 文字客服调用接口
Written by lgy.

## 概述

假定文字客服运行在192.169.1.2, 默认端口为9876。

和前台交互接口

url：```http://192.169.1.2:9876/Dual```

方式: POST

请求体: 根据不同的业务变化

响应： 请求体不同，响应不同

请求和响应均为json格式

## 登录
消息体

```{"aId":"001", "aBzType":"login"}```

aId: 话务员编号

aBzType: 业务为login

响应：

```{"code":200, "msg":"登录成功！", "avatar":"http://4299d1bb.ngrok.io/wx/attendant/icon.jpg", "nickname":"长燃客服1", "aId":"001", "aBzType":"login"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息

avatar: 话务icon

nickname: 对应的工号的客服名称

## 登出
消息体

```{"aId":"001", "aBzType":"logout"}```

aId: 话务员编号

aBzType: 业务为logout

响应：

```{"code":200, "msg":"登出成功！", "aId":"001", "aBzType":"logout"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息

`如果有未处理完的消息，不能登出`

## 置闲
消息体

```{"aId":"001", "aBzType":"available"}```

aId: 话务员编号

aBzType: 业务为available

响应：

```{"code":200, "msg":"置闲成功！", "aId":"001", "aBzType":"available"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息

## 置忙
消息体

```{"aId":"001", "aBzType":"unavailable"}```

aId: 话务员编号

aBzType: 业务为unavailable

响应：

```{"code":200, "msg":"置忙成功！", "aId":"001", "aBzType":"available"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息

## 提取消息
消息体

```{"aId":"001", "aBzType":"nvl"}```

aId: 话务员编号

aBzType: 业务为nvl

响应：

```{"code":200, "aId":"001", "aBzType":"nvl", "msgs":[{"openid":"oL5ch0q8MjNEuLcsQw4CsImDkEdA", "msgType":"text", "content":"zzzz", "name":"", "userId":"", "time":"17:09:46", "date":"17-11-08", "media":"", "thumbnail":""}, {"openid":"oL5ch0q8MjNEuLcsQw4CsImDkEdA", "msgType":"system", "content":"当前用户未绑定，请协助绑定用户！", "name":"", "userId":"", "time":"08:00:00", "date":"70-01-01", "media":"", "thumbnail":""}]}```

code: 响应码， 200为正确， 500为错误

msgs: 返回消息数组

消息对象：

openid: 微信用户openid

msgType: 消息类别

content：消息内容，只针对text消息

name: 燃气用户姓名

userId: 燃气用户id

time: 消息时间

date: 消息年月日

media: 除text消息外的文件名

thumbnail: media对应的缩略图或转换文件


## 发送消息
消息体

```{"aId":"001", "aBzType":"send", "msgType":"text", "content":"huawuyuangeinidexiaoxi", "openId": "oL5ch0q8MjNEuLcsQw4CsImDkEdA"}```

aId: 话务员编号

aBzType: 业务为send

msgType: 消息类型，支持text, image, viedo, voice

content: 消息内容，如果非text消息为素材Id

响应：

```{"code":200, "msg":"发送成功！", "aId":"001", "aBzType":"send"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息数组

## 绑定通知
消息体

```{"aId":"001", "openId":"oL5ch0q8MjNEuLcsQw4CsImDkEdA", "aBzType":"bind", "name":"王云腾", "userId": "1234567890"}```

aId: 话务员编号

aBzType: 业务为bind

openId: 绑定用户的openid

name: 用户名

userId: 用户id

响应：

```{"code":200, "msg":"绑定成功！", "aId":"001", "aBzType":"bind"}```

code: 响应码， 200为正确， 500为错误

msg: 返回消息数组

三个测试素材
{"code": 200, "msgType": "image", "mediaId": "SWfgB7fqE8PzHiCFji4MQWkvHhlriHi3gvfa3h3560Vv_knxvGpRfImY6VRQZXvY", "fileName": "icon.jpg", "thumbnail": "icon_.jpg"}
{"code": 200, "msgType": "voice", "mediaId": "0LLWKzvdvHd4UyxtDQnGGGQfmfDJrCffwgO1fyiUYd5qyHg_G3ksHr8m541rbiug", "fileName": "qqq.amr", "thumbnail": "qqq_.mp3"}
{"code": 200, "msgType": "video", "mediaId": "_khVFyzb1YNtAZbzKThwXG51_0Jt_We7CgZk1q2a0rM", "fileName": "qqqq.mp4", "thumbnail": "qqqq_.jpg"}