客服号管理
客服号管理
唤醒好友联系人聊天对话接口
URI
/wscrm-bus-api/open/action/batchAdd
请求方式
POST、Content-Type: application/json
说明
打开的动作必须保证已登录该账号和客服号,未登录一分钟后自动失败。
同时打开相同账号和客服号的不同好友会话,依次间隔 10s 打开。
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| tenantId | Long | 是 | 公司 id |
| data | List | 是 | 详情数据 |
data 参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| agentAccount | String | 是 | 坐席账号 |
| whatsId | String | 否 | 客服号(如果不填,会列出来当前客户端已登录的客服号,选择一个作为客服号) |
| friendWhatsId | String | 是 | 好友 whatsapp |
| platformType | int | 是 | 设备类型 1、pc 2、android |
| content | String | 否 | 发送内容 |
| type | int | 是 | 业务类型 1 打开好友会话窗口 |
- 请求示例
{
"tenantId": 500766,
"data": [
{
"agentAccount": "test",
"whatsId": "13633802288",
"friendWhatsId": "8613633800088",
"platformType": 1,
"content": "hello",
"type": "1"
}
]
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| code | int | 是 | 响应码 |
| message | String | 是 | 响应信息 |
| data | String | 是 | 数据回调唯一标识(与添加顺序保持一致) |
- 响应示例
{
"code": 200,
"message": "Success",
"data": ["20c7c02bf11b494286dd165da47388c9"]
}查询唤醒好友联系人执行详情接口
URI
/wscrm-bus-api/open/action/callbackResult
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| tenantId | Long | 是 | 公司 id |
| data | List | 是 | 查询的 ids |
- 请求示例
{
"tenantId": 500766,
"data": ["ad518a4271fa43c8937612c5f60396f8"]
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 数据唯一标识 |
| tenantId | Long | 是 | 公司 id |
| agentAccount | String | 是 | 坐席账号 |
| whatsId | String | 是 | 客服号 |
| friendWhatsId | String | 是 | 好友 whatsapp |
| type | int | 是 | 动作类型 1 打开客户端坐席聊天窗口 |
| executeStatus | String | 是 | 执行结果 0 未执行 1 成功 2 失败 |
| executeTime | String | 是 | 执行时间(默认‘1970-01-01 08:00:01’) |
- 响应示例
{
"code": 200,
"message": "Success",
"data": [
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"tenantId": 500766,
"agentAccount": "ykts02",
"whatsId": "8172727272727",
"friendWhatsId": "8261626162626",
"type": 1,
"executeStatus": 2,
"executeTime": "1970-01-01 08:00:01"
}
]
}客服号上下线异步通知接口
注: 接口加密规则使用 header 头的方式!!!
配置 ID <WA_SYNC_ON_OR_OFF_LINE_STATUS>
WebHook
URI
/api/callback/whatsapp/onlineStatus
请求方式
POST、Content-Type: application/json
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| whatsAppList | List | 是 | 格式[{},{}],详细如下(数量 0-50 条 |
- whatsAppList 参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| whatsId | String | 是 | whatsapp 手机号 |
| status | int | 是 | 状态 10、在线 20、掉线 30、离线 40、封号 |
| detailStatus | int | 是 | 详细状态 (具体请查看下面注释) |
| account | String | 是 | 坐席账号 |
| platformType | int | 是 | 平台类型 1、pc 2、android |
| time | String | 是 | 时间 2024-06-27 19:52:12 |
详细状态介绍: 11、PC 扫码登录 12、PC 上线 21、PC 掉线 31、PC 关闭客户号离线 32、PC 关闭客户端离线 33、PC 触发监控下线 41、封号
- 请求示例
[
{
"whatsId": "8617633819542",
"status": 1,
"detailStatus": 11,
"account":"",
"time":"2024-07-03 15:27:00",
"platformType":1
},
{
"whatsId": "8617633819542",
"status": 1,
"detailStatus": 11,
"account":"",
"time":"2024-07-03 15:27:00",
"platformType":1
}
]
}- 响应示例
{
"code": 200,
"message": "Success",
"data": ""
}客服号操作
批量导入客服号
- 类型
API
URI
/group-dispatch-api/whatsapp/batchInsert
请求方式
POST、Content-Type: application/json
接口说明
批量导入客服号
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| whatsAppList | List | 是 | 客服号列表 |
data 参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | ||
| avatar | String | 否 | 头像 |
| name | String | 否 | 名称 |
| publicKey | String | 是 | 账号公钥 |
| privateKey | String | 是 | 账号私钥 |
| msgPublicKey | String | 是 | 消息公钥 |
| msgPrivateKey | String | 是 | 消息私钥 |
| accountId | String | 是 | 账号 Id |
| nextKeyId | String | 否 | nextKeyId |
| registrationId | String | 否 | 注册 id |
| deviceParams | String | 否 | 设备参数 |
| whatsappType | Integer | 否 | whatsapp 账户类型 1 个人 2 商业,默认个人 |
- 请求示例:
{
"whatsAppList": [
{
"whatsApp": "861821726232",
"whatsappType": 1,
"name": "lee",
"avatar": "https://oss.com/1.img",
"publicKey": "",
"privateKey": "",
"msgPublicKey": "",
"msgPrivateKey": "",
"accountId": "",
"nextKeyId": "",
"registrationId": "",
"deviceParams": ""
}
]
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}查询客服号信息
类型
API
URI
/group-dispatch-api/whatsapp/queryWhatsAppStatus
请求方式
GET、Content-Type: application/json
接口说明
查询所有的客服号信息
请求参数说明
无
响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data List 是 数据
- data 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | ||
| status | int | 是 | 状态 1、正常 2、封号 |
| onlineStatus | int | 是 | 在线状态状态 1、上线中 2、在线 3、下线中 4、离线 |
- 响应示例
{
"data": [
{
"whatsApp": "861821371272",
"status": 1,
"onlineStatus": 1
}
],
"code": 200,
"message": "success"
}批量上线客服号
类型
API
URI
/group-dispatch-api/whatsapp/batchOnline
请求方式
POST、Content-Type: application/json
接口说明
批量上线客服号
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| whatsAppList | List | 是 | 客服号列表 |
- whatsAppList 参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| override | boolean | 是 | 是否覆盖 |
| String | 是 | ||
| avatar | String | 否 | 头像 |
| name | String | 否 | 名称 |
| publicKey | String | 是 | 账号公钥 |
| privateKey | String | 是 | 账号私钥 |
| msgPublicKey | String | 是 | 消息公钥 |
| msgPrivateKey | String | 是 | 消息私钥 |
| nextKeyId | String | 否 | nextKeyId |
| registrationId | String | 否 | 注册 id |
| accountId | String | 否 | 账号 id |
| deviceParams | String | 否 | 设备参数 |
| whatsappType | Integer | 否 | whatsapp 账户类型 1 个人 2 商业,默认个人 |
- 请求示例:
{
"whatsAppList": [
{
"whatsApp": "861821726232",
"whatsappType": 1,
"override": false,
"name": "lee",
"avatar": "http://oss.com/1.img",
"publicKey": "",
"privateKey": "",
"msgPublicKey": "",
"msgPrivateKey": "",
"accountId": "",
"nextKeyId": "",
"registrationId": "",
"deviceParams": ""
}
]
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}批量回收客服号
类型
API
URI
/group-dispatch-api/whatsapp/batchRecycle
请求方式
POST、Content-Type: application/json
接口说明
批量回收客服号
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| whatsAppList | List | 否 | 客服号 |
请求示例:
{
"whatsAppList": ["861821726232", "861821726231"]
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}同步客服号状态
配置 ID <CHANNEL_SYNC_STATUS>
类型
WebHook
URI
/callback/gsTask/syncWhatsAppStatus
请求方式
POST、Content-Type: application/json
接口说明
同步客服号状态
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | 客服号 | |
| status | int | 是 | 状态 1、正常 2、封号 |
| onlineStatus | int | 是 | 在线状态状态 1、上线中 2、在线 3、下线中 4、离线 |
| reason | String | 否 | 失败原因 |
| instanceCode | String | 否 | 扫码ID |
- 请求示例:
{
"whatsApp": "8218132718231",
"status": 1,
"onlineStatus": 1,
"reason": "",
"instanceCode": ""
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}reason(异常原因) 说明
code 描述 1001 配对失败.需要重新扫码 1002 网络异常,需要更换IP 1003 配对码生成频繁 1004 登出
客服号注册
客服号注册(提交手机号)
- 类型
API
URI
/group-dispatch-api/register/submitPhone
请求方式
POST、Content-Type: application/json
接口说明
客服号注册
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| phone | String | 是 | 客服号(手机号) |
| verifyType | int | 是 | 验证码类型 0、短信 1、语音 2、未接来电 3、内部验证码 |
| accountType | int | 是 | 账号类型 1、个人 2、商业 |
| areaCode | String | 是 | 地区码 |
| countryCode | String | 是 | 国家码 |
- 请求示例:
{
"phone": "182172623211",
"verifyType": 1,
"accountType": 2,
"areaCode": "+86",
"countryCode": "CN"
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data int 是 任务 id 响应示例
{
"data": 12,
"code": 200,
"message": "success"
}客服号注册(提交验证码)
- 类型
API
URI
/group-dispatch-api/register/submitVerifyCode
请求方式
POST、Content-Type: application/json
接口说明
客服号注册(验证码)
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| phone | String | 是 | 客服号(手机号) |
| areaCode | String | 是 | 地区码 |
| verifyCode | String | 是 | 验证码 |
- 请求示例:
{
"phone": "1821726232",
"verifyCode": "123456",
"areaCode": "+86"
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}同步客服号注册状态
配置 Id <CHANNEL_REGISTER_STATUS>
类型
WebHook
URI
/group-dispatch-api/register/syncStatus
请求方式
POST、Content-Type: application/json
接口说明
客服号注册状态同步
请求参数说明
| 字段 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| phone | String | 是 | 客服号(手机号) |
| status | int | 是 | 1、成功 0、失败 |
- 请求示例:
{
"phone": "861821726232",
"status": "1"
}响应参数说明
参数名 类型 是否必填 备注 code int 是 状态码 message String 是 描述 data String 是 数据 响应示例
{
"data": "",
"code": 200,
"message": "success"
}客服号扫码
获取配对客户
URI
group-dispatch-api/qrCode/selectPairTarget
请求方式
GET、Content-Type: application/json
请求参数说明
请求示例
- 响应示例
{
"code": 200,
"message": "Success",
"data": [
{
"createTime": "2025-11-05 16:22:07",
"targetTenantName": "xxxx",
"targetTenantId": 10085
},
{
"createTime": "2025-11-21 10:50:37",
"targetTenantName": "yyyy",
"targetTenantId": 10086
}
]
}- 响应参数说明
| 参数名 | 类型 | 备注 |
|---|---|---|
| targetTenantId | int | 配对客户id |
| targetTenantName | String | 配对客户账号 |
| createTime | String | 创建时间 |
获取二维码窗口 ID 接口
URI
/group-dispatch-api/qrCode/preGenerate
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| type | int | 是 | 类型 1、pc 端 2、云电脑 |
| target | int | 否 | 配对客户id |
- 请求示例
{
"type": 1,
"target": 10085
}- 响应示例
{
"code": 200,
"message": "Success",
"data": "ad518a4271fa43c8937612c5f60396f8"
}注:每次请求此接口会预占用一个端口,10分钟之内锁定端口,超过时间未使用或者上线未成功,销毁此端口
获取二维码接口
URI
/group-dispatch-api/qrCode/getQrCode
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 否 | 唯一标识 |
| ipConfig | String | 否 | IP配置.目前只支持SOCKS5 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"ipConfig": "ip:port:user:pass"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": "2@BBisWIG5D2RkAqYI5NhFXG+Mrw/EZGU70YTyammI/3Q/nx4O3e6QNIn4PXYMWfgoO/Hb4CIi7y9G2JXeRAiVloK/QgEM9unZVX8=,1b1JxI522MIxZxMLjhOuE/A5ys2I/hvj7iMWK7ZPSm0=,iSMi+zxKjva1DMVogyRZ/TTOlx1UaLed4fQllsILvDw=,xDt9ykte3QQmklrdLQqgtH6V1NhYM14NhxXfb2UZE3Y=,1"
}获取二维码或者配对码接口
URI
/group-dispatch-api/qrCode/getQrCodeV2
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
| phone | String | 是 | 手机whatsapp账号 |
| ipConfig | String | 否 | IP配置.目前只支持SOCKS5,传过来默认IP可用 |
| isEasy | String | 否 | 默认是88888888,传n则使用原生,传y简易模式(字母和数字2个 PPPP-1111这种),传b是固定8个8 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"phone": "8618733334444",
"ipConfig": "ip:port:user:pass"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": {
"qrcode": "2@BBisWIG5D2RkAqYI5NhFXG+Mrw/EZGU70YTyammI/3Q/nx4O3e6QNIn4PXYMWfgoO/Hb4CIi7y9G2JXeRAiVloK/QgEM9unZVX8=,1b1JxI522MIxZxMLjhOuE/A5ys2I/hvj7iMWK7ZPSm0=,iSMi+z=,1",
"pairCode": "IVEA_IPON"
}
}二维码状态同步接口
WebHook
配置 ID <WA_SYNC_QR_LOGIN_STATUS>
URI
/wscrm-bus-api/open/qrCode/syncLoginStatus
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
| String | 否 | whatsapp 账号 | |
| status | int | 是 | 状态 0、失败 1、成功 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"whatsapp": "817272727272",
"status": 1
}- 响应示例
{
"code": 200,
"message": "Success",
"data": ""
}获取二维码信息接口
URI
/group-dispatch-api/qrCode/getQrCodeInfo
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 否 | 唯一标识 |
| String | 否 | whatsapp 账号 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8"
}- 响应参数说明
| 参数名 | 类型 | 备注 |
|---|---|---|
| status | int | 状态 0、未登录(未扫码成功) 1、登录成功(扫码成功) |
| String | whatsapp 账号 | |
| userName | String | 坐席名称 |
- 响应示例
{
"code": 200,
"message": "Success",
"data": [
{
"status": 1,
"userName": "test",
"whatsApp": "812282828221"
}
]
}客服号上线接口
URI
/group-dispatch-api/qrCode/onLine
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
| ipConfig | String | 否 | IP配置.目前只支持SOCKS5 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"ipConfig": "ip:port:user:pass"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": []
}客服号下线接口
URI
/group-dispatch-api/qrCode/offline
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": []
}客服号登出接口
URI
/group-dispatch-api/qrCode/logOut
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": []
}获取当前用户的总端口数以及当前使用端口数
URI
/group-dispatch-api/qrCode/selectCloudPort
请求方式
GET、Content-Type: application/json
响应示例
{
"code": 200,
"message": "Success",
"data": {
"currentPort": 3,
"maxPort": 2
}
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| currentPort | int | 是 | 当前占用端口数量 |
| maxPort | int | 是 | 最大端口可用额度 |
注:当最大端口数小于当前占用端口数量时,会把后面申请的端口上的号码进行下线处理
查询当前占用端口数详细信息
URI
/group-dispatch-api/qrCode/selectCloudPortDetail
请求方式
GET、Content-Type: application/json
响应示例
{
"code": 200,
"message": "Success",
"data": [
{
"phone": "8618730334344",
"createTime": "2025-07-31 15:40:19",
"id": 8639164839053938688,
"status": 10
},
{
"phone": "8618730334345",
"createTime": "2025-09-10 16:07:25",
"id": 8654029561952415744,
"status": 20
},
{
"phone": null,
"createTime": "2025-09-10 16:07:42",
"id": 8654029632861319168,
"status": null
}
]
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| phone | String | 否 | wa号码 |
| createTime | string | 是 | 端口申请时间 |
| id | String | 是 | 端口申请id |
| status | int | 否 | 号码状态 10 在线 20 掉线 |
注:申请后请及时使用所占用端口,否则会占用端口额度
查询当前云端口的通讯录信息
注: 此操作会存在风控
URI
/group-dispatch-api/qrCode/selectContact?id=xxx
请求方式
GET、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 否 | 唯一标识 |
- 响应示例
{
"code": 200,
"message": "Success",
"data": [
{
"whatsapp": "8618733334444",
"pushName": "Ryan yu",
"isFriend": false,
"firstName": "",
"fullName": ""
},
{
"whatsapp": "8618733334444",
"pushName": "Ryan yu",
"isFriend": false,
"firstName": "",
"fullName": ""
}
]
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | wa号码 | |
| pushName | string | 否 | wa的昵称 |
| isFriend | String | 是 | 是否是联系人 |
| firstName | String | 否 | 联系人 姓氏 |
| fullName | String | 否 | 联系人 名字 |
查询当前云端口的联系人信息
注: 此操作会存在风控,且不区分是否是真的联系人
URI
/group-dispatch-api/qrCode/contact/info
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
| phone | String | 是 | 预想的联系人号码 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8",
"phone": "8618733334444"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": {
"whatsapp": "8618733334444",
"pushName": "Ryan yu",
"isFriend": false,
"firstName": "",
"fullName": ""
}
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | wa号码 | |
| pushName | string | 否 | wa的昵称 |
| isFriend | String | 是 | 是否是联系人 |
| firstName | String | 否 | 联系人 姓氏 |
| fullName | String | 否 | 联系人 名字 |
查询本身whatsapp的信息
注: 头像存在即有地址,同时需要在上线后的段时间内链接有效,超过一定时间无效(whatsapp的地址决定)
URI
/group-dispatch-api/qrCode/info/profile
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| id | String | 是 | 唯一标识 |
- 请求示例
{
"id": "ad518a4271fa43c8937612c5f60396f8"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": {
"whatsapp": "447962xxxxx",
"isBusiness": true,
"businessName": "ygfhvd",
"avatar": "https://pps.whatsapp.net/v/t61.24694-24/534427959_3710828145715675_6315457185020903046_n.jpg?ccb=11-4&oh=01_Q5Aa3wGpxN6bwVlgwn8gUeTao7xlcLxzdrV2pNGhUV-MND4ZOw&oe=69ACF821&_nc_sid=5e03e0&_nc_cat=106",
"pushName": "ygfhvd",
"status": "Nihao",
"chatNum": 11,
"groupNum": 3,
"lastChatTime": 1774339558
}
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | wa号码 | |
| pushName | string | 否 | wa的昵称 |
| isBusiness | boolean | 否 | 是否是商业号 |
| businessName | String | 否 | 商业号昵称 |
| avatar | String | 否 | whatsapp 头像地址 |
| status | String | 否 | 状态 |
| chatNum | int | 否 | 联系人会话数量 |
| groupNum | int | 否 | 群组数量 |
| lastChatTime | bigint | 否 | 最后聊天时间(秒级时间戳) |
设置头像和昵称
注: 头像存在即有地址,同时需要在上线后的段时间内链接有效,超过一定时间无效(whatsapp的地址决定)
URI
/group-dispatch-api/channelInfo/updateAvatarOrNickname
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| type | int | 是 | 类型 0真机 1 云端口,云端口必须在线才能执行 |
| avatar | String | 否 | 头像URL地址,必须可用,且符合whatsapp规范.16px16px 3232 6464 128128 |
| nickname | String | 否 | 昵称 |
| phoneList | array | 是 | 号码 |
- 请求示例
{
"type": 1,
"avatar": "https://oss.com/3021b973ced1b3300664bb3f7a47ee8b.jpeg",
"nickname": "mimanchin",
"phoneList": ["86187303****"]
}- 响应示例
{
"code": 200,
"message": "Success",
"data": ""
}- 响应参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| String | 是 | wa号码 | |
| pushName | string | 否 | wa的昵称 |
| isBusiness | boolean | 否 | 是否是商业号 |
| businessName | String | 否 | 商业号昵称 |
| avatar | String | 否 | whatsapp 头像地址 |
| status | String | 否 | 状态 |
| chatNum | int | 否 | 联系人会话数量 |
| groupNum | int | 否 | 群组数量 |
| lastChatTime | bigint | 否 | 最后聊天时间(秒级时间戳) |
扫码异常信息说明
| code | message |
|---|---|
| 1001 | 当前用户云端口额度不足 |
| 1002 | 当前端口不存在或者已被释放 |
| 1003 | 不支持的类型 |
| 1004 | 未设置配对客户 |
PC 端扫码
创建扫码任务接口
api
URI
/wscrm-bus-api/qrCodeTask/create
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| userId | int | 否 | 指定坐席 id;不传则由服务端自动选坐席 |
| allocationRole | int | 是 | 1、随机 3、指定 |
失败情况
端口数不够;在线坐席的端口不够。
请求示例
{
"userId": 10001,
"allocationRole": 3
}响应示例
taskId
{
"code": 200,
"message": "Success",
"data": "f0d485cb2e5e4c5ca21b74e970043e6c"
}根据任务id获取二维码接口
api
URI
/wscrm-bus-api/qrCodeTask/getQrCode
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| taskId | String | 是 | 创建任务返回的任务 id |
说明
扫码成功之前可重复调用。
请求示例
{
"taskId": "f0d485cb2e5e4c5ca21b74e970043e6c"
}- 响应示例
{
"code": 200,
"message": "Success",
"data": "qr_code"
}同步扫码任务状态接口
WebHook
配置 ID <SCAN_TASK_STATUS_SYNC>
URI
baseURL+uri
请求方式
POST、Content-Type: application/json
请求参数说明
| 参数名 | 类型 | 是否必填 | 备注 |
|---|---|---|---|
| taskId | String | 是 | 创建扫码任务返回的任务 id |
| userId | int | 否 | 坐席 id |
| String | 否 | ||
| taskStatus | int | 是 | 同步状态(参考下面) |
| updateTime | Long | 是 | 更新时间(时间戳:毫秒) |
- 同步状态说明
| 数据值 | 备注 |
|---|---|
| 70 | 扫码成功 |
| 71 | 扫码超时 |
| 80 | 登录成功 |
| 83 | 二维码超时未上报 |
| 84 | 超时未成功登录 |
| 85 | 无可用端口 |
| 90 | 封号 |
- 请求示例
{
"taskId": "f0d485cb2e5e4c5ca21b74e970043e6c",
"userId": 10001,
"taskStatus": 80,
"whatsapp": "86166666666",
"updateTime": 1710236000000
}- 响应示例
{
"code": 200,
"message": "Success",
"data": ""
}