# 工作手机接口文档 V0.1

# 1. 接入指引

# 1.1 接口说明

所有的接口需使用HTTPS协议、JSON数据格式、UTF8编码。格式如下:

请求方式:GET/POST(HTTPS)
请求地址:https://{domain}/workos/endPoint/getBindRsaCode?userCode=USER_CODE&staffCode=STAFF_CODE
         {domain}:需要替换成真实的域名地址
请求参数:
...
参数说明:
...
返回结果:
...
参数说明:
...
  • 请求方式,标明接口调用的HTTP方法,区分HttpGet/HttpPost请求。所有的请求都为https协议

  • 请求地址,参数中标注大写的单词,表示为需要替换的变量。在上面的例子中 USER_CODE 及 STAFF_CODE为需要替换的变量,根据实际获取值更新。假如,这里我们获取到的USER_CODE=UID000000000000001,STAFF_CODE=SID00000000001,那么上述的请求在发送时为:

    https://api-workos-paas.xzm.cn/workos/endPoint/getBindRsaCode?userCode=UID000000000000001&staffCode=SID00000000001
    
  • 返回结果/参数说明,标明返回参数示例及说明。特别留意,所有接口返回包里都有code、msg、data。开发者需根据code是否为40000判断是否调用成功(code意义请见 3.全局错误码。而msg仅作参考,后续可能会有变动,因此不可作为是否调用成功的判据),根据msg获取错误信息提示(调用成功时为空),根据data获取成功调用的响应参数

# 2. 设备管理

# 2.1 创建手机终端设备

请求方式:POST

请求地址: https://{domain}/workos/endPoint/createEndPoint

请求头:

{
    "Content-Type": "application/json;charset=UTF-8"
}

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
deviceImei1 string 终端设备IMEI 位置:设置--我的设备--全部参数--状态信息--IMEI
endTime int64 到期时间,秒级时间戳,无限期则为0

请求示例:

{
  "userCode": "UID2022042710270001",
  "deviceImei1": "868609051409026",
  "endTime": 1677569096
}

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object

返回结果示例:

{
    "code": 40000,
    "msg": "请求成功",
    "data": {}
}

# 2.2 获取手机终端设备列表(带分页)

请求方式:GET

请求地址: https://{domain}/workos/endPoint/getEndPointPageList

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号
pageNum int 页码
pageSize int 每页数量

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getEndPointPageList?userCode=UID2022042710270001&staffCode=SID202202714021000&pageNum=1&pageSize=10

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.current int 当前页码
data.pageSize int 当前分页大小
data.total int 数据总条数
data.pages int 分页总页数
data.list array 对象列表
data.list.endTime int64 终端使用有效期
data.list.staffCode string 员工编号
data.list.mealType int64 套餐类型,1:基础版,2:高级版
data.list.activationTime string 系统激活时间,UNIX时间戳(毫秒)恢复出厂设置后会改变
data.list.bindTime int64 员工绑定时间,秒级时间戳
data.list.deviceBrand string 设备品牌
data.list.deviceCard string 设备SIM卡槽数量,默认值为0
data.list.deviceCpu string 设备CPU
data.list.deviceDpi string 设备屏幕像素密度
data.list.deviceHost string 设备主机地址HOST
data.list.deviceImei1 string 设备IMEI1,不插卡的时候可以获取到
data.list.deviceMemory string 设备运行内存
data.list.deviceModel string 设备型号
data.list.deviceResolution string 设备屏幕分辨率
data.list.deviceSerial string 设备手机序列号
data.list.deviceStorage string 设备总存储空间
data.list.systemAndroid string 系统android版本
data.list.systemLanguage string 系统语音,zh:汉语,en:英语
data.list.systemOs string 系统OS版本,比如小米的MIUI版本号
data.list.systemRom string 系统ROM版本,即厂商整合的系统版本
data.list.systemRoot string 系统ROOT状况

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": {
    "current": 1,
    "pages": 4,
    "size": 10,
    "total": 40,
    "list": [
      {
        "activationTime": "1647941433000",
        "bindTime": 1676258790,
        "deviceBrand": "Xiaomi",
        "deviceCard": "0",
        "deviceCpu": "arm64-v8a",
        "deviceDpi": "2.88",
        "deviceHost": "c5-miui-ota-bd211.bj",
        "deviceImei1": "868609051409026",
        "deviceMemory": "5663",
        "deviceModel": "M2103K19C",
        "deviceResolution": "1080*2167",
        "deviceSerial": "",
        "deviceStorage": "110845",
        "endTime": 1701321700,
        "mealType":2,
        "staffCode": "SID202202714021000",
        "systemAndroid": "11",
        "systemLanguage": "zh",
        "systemOs": "V12.22.3.22.EP.XZM.K19",
        "systemRom": "MIUI V12",
        "systemRoot": "1"
      }
    ]
  }
}

# 2.3 获取手机终端绑定二维码信息

请求方式:GET

请求地址: https://{domain}/workos/endPoint/getBindRsaCode

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号
mealType int64 套餐类型:1:基础版,2:高级版

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getBindRsaCode?userCode=UID2022042710270001&staffCode=SID202202714021000

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.expiresIn int64 过期时间,秒级时间戳
data.rsaCode string 二维码信息
data.ticket string 二维码ticket

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": {
    "expiresIn": 600,
    "rsaCode": "EVAQmM1BfHviHX7LljP0/NR2vtCFBg5M6d5zktRHPEo7zd2aWeIYI1wmOKXsl/7yIwbp5O7tGDICcd6ntQvmBgmRIAwlpyZcovT4zqdXul/8fn9abaV8/c1ub+ivERuRKX0/xqL7J8MBg7VXC7xZWP2yzVZkf4pwaisxKF446nV5a2pzHImg7pn/Qm6BGRtxM0uvCPh3wHdgffv9VtvsnHwkKp9z8f61bx6rtooIB+HGCFuWM4mWGauxW+g2UGP8e+lZfOLSYF0LW88w/a0VkCFsC2slWC9cAbzUIfbxLmw7vq70eFMbVLVIpiHiypT+rl8iVgxeM3UXwNjpYjW4XQ==",
    "ticket": "717a204a4b0b4e2e8936f8a9d0462339"
  }
}

# 2.4 间隔扫描手机终端绑定状态

请求方式:GET

请求地址: https://{domain}/workos/endPoint/getTicketBindStatus

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号
ticket string 二维码ticket

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getTicketBindStatus?userCode=UID2022042710270001&staffCode=SID202202714021000&ticket=cbe4c74049a641d29212257527c0fb8f

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data boolean true绑定、false未绑定

返回结果示例:

{
    "code": 40000,
    "msg": "请求成功",
    "data": true
}

# 2.5 获取已绑定终端的员工列表数组

请求方式:GET

请求地址: https://{domain}/workos/endPoint/getBindStaffCodeList

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getBindStaffCodeList?userCode=UID2022042710270001

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data[] string[] 绑定员工的数组列表

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": [
    "SID202202714021000"
  ]
}

# 2.6 修改手机终端设备到期时间

请求方式:POST

请求地址: https://{domain}/workos/endPoint/updateEndPoint

请求头:

{
    "Content-Type": "application/json;charset=UTF-8"
}

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
deviceImei1 string 终端设备IMEI
endTime int64 到期时间,秒级时间戳,无限期则为0

请求示例:

{
  "userCode": "UID2022042710270001",
  "deviceImei1": "868609051409026",
  "endTime": 1896105599
}

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object

返回结果示例:

{
    "code": 40000,
    "msg": "请求成功",
    "data": {}
}

# 2.7 解绑工作手机终端设备

请求方式: GET

请求地址: https://{domain}/endPoint/unBindEndPoint

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号

请求示例:

https://api-workos-paas.xzm.cn/endPoint/unBindEndPoint?userCode=UID2022042710270001&staffCode=SID202202714021000

返回结果参数说明:

参数名 参数类型 说明
code int64 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object

返回结果示例:

{
    "code": 40000,
    "msg": "请求成功",
    "data": {}
}

# 3. 通话相关

# 3.1 获取终端通话数据(带分页)

请求方式:POST

请求地址: https://{domain}/workos/record/call/getCallRecordPageList

请求头:

{
    "Content-Type": "application/json;charset=UTF-8"
}

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCodeList string[] 员工编号集合
actPhone string 客户号码
beginTime int64 时间范围:开始时间,秒级时间戳
endTime int64 时间范围:结束时间,秒级时间戳
callStatus int 接通情况,1:接通,2:未接通
callType int 呼叫类型,1:呼入,2:呼出,3:多方通话
pageNum int 页码
pageSize int 每页数量

请求示例:

{
  "actPhone": "17686406613",
  "beginTime": 1673625600,
  "endTime": 1676303999,
  "callStatus": 2,
  "callType": 2,
  "userCode": "UID2022042710270001",
  "staffCodeList": [
    "SID202202714021000"
  ],
  "pageNum": 1,
  "pageSize": 10
}

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.current int 当前页码
data.pageSize int 当前分页大小
data.total int 数据总条数
data.pages int 分页总页数
data.list array 对象列表
data.list.actPhone string 接收(去电)号码,即客户号码
data.list.answerTime int64 应答时间,秒级时间戳
data.list.callType int 电话呼叫类型,1:呼入,2:呼出,3:多方通话
data.list.createTime int64 创建时间,秒级时间戳
data.list.duration int64 通话时长(秒)
data.list.filePath string 录音路径
data.list.fileSize int64 录音文件大小,字节单位
data.list.hungupTime int64 结束时间,秒级时间戳
data.list.staffCode string 员工编号
data.list.startTime int64 开始时间
data.list.userCode string 用户编号
data.list.uuid string 通话标示,当前设备唯一标示

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": {
    "current": 0,
    "pages": 0,
    "size": 0,
    "total": 0,
    "list": [
      {
        "actPhone": "17686406613",
        "answerTime": 1676082537,
        "callType": 2,
        "createTime": 1676082543,
        "duration": 5,
        "filePath": "https://local-number-400.oss-cn-beijing.aliyuncs.com/UID2022042710270001/cbf61d0a95e94f25afd4e9a84975d987.mp3",
        "fileSize": 18720,
        "hungupTime": 1676082542,
        "staffCode": "SID202202714021000",
        "startTime": 1676082530,
        "userCode": "UID2022042710270001",
        "uuid": "a365f4e3-0b94-4a05-a8e1-b1d0bbb14861"
      }
    ]
  }
}

# 4. 短信相关

# 4.1 获取终端短信数据(带分页)

请求方式:POST

请求地址: https://{domain}/workos/record/sms/getSmsRecordPageList

请求头:

{
    "Content-Type": "application/json;charset=UTF-8"
}

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCodeList string[] 员工编号集合
actPhone string 客户号码
beginTime string 时间范围:开始时间,秒级时间戳
endTime int64 时间范围:结束时间,秒级时间戳
phoneType string 客户号码类型,1:手机号,2:其他
smsType int 收发类型,1:接收,2:发送
pageNum int 页码
pageSize int 每页数量

请求示例:

{
  "actPhone": "13361554921",
  "beginTime": 1673625600,
  "endTime": 1676303999,
  "pageNum": 1,
  "smsType": 2,
  "staffCodeList": [
    "SID202202714021000"
  ],
  "userCode": "UID2022042710270001",
  "pageSize": 10,
  "phoneType": 1
}

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.current int 当前页码
data.pageSize int 当前分页大小
data.pages int 分页总页数
data.total int 数据总条数
data.list array 对象列表
data.list.actPhone string 短信接收(来信)号码,即客户号码
data.list.createTime int64 创建时间,秒级时间戳
data.list.phoneType int 短信接收号码类型,1:手机号,2:其他
data.list.smsContent string 短信内容
data.list.smsType int 短信消息收发类型, 1:接收,2:发送
data.list.staffCode string 员工编号
data.list.userCode string 用户编号
data.list.uuid string 短信标识,当前设备唯一

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": {
    "current": 1,
    "pages": 12,
    "size": 10,
    "total": 115,
    "list": [
      {
        "actPhone": "17686406613",
        "createTime": 1676258795,
        "phoneType": 1,
        "smsContent": "222",
        "smsType": 1,
        "staffCode": "SID202202714021000",
        "userCode": "UID2022042710270001",
        "uuid": "134ca0ff-4100-4341-9156-0b054ec7457e"
      }
    ]
  }
}

# 5. 定位相关

# 5.1 获取实时定位数据

请求方式:POST

请求地址: https://{domain}/workos/record/call/getLocationRealPageList

请求头:

{
    "Content-Type": "application/json;charset=UTF-8"
}

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCodeList string[] 员工编号集合

请求示例:

{
  "userCode": "UID2022042710270001",
  "staffCodeList": [
    "SID202202714021000"
  ]
}

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.list array 对象列表
data.list.recordLat string 地址定位维度,以保存时间定位为准
data.list.recordLng string 地址定位经度,以保存时间定位为准
data.list.recordLocation string 定位地点,比如上海市宝山区共泉路100号
data.list.recordPlace string 定位地名简称
data.list.staffCode string 员工编号

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": [
    {
      "recordLat": "1676258791",
      "recordLng": "36.705379",
      "recordLocation": "119.196677",
      "recordPlace": "中动大厦A座",
      "staffCode": "SID202202714021000"
    }
  ]
}

# 5.2 获取员工某月定位数据分布状况

请求方式:GET

请求地址: https://{domain}/workos/record/location/getLocationTrackSignList

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号
collectMonth string 轨迹汇总日期,格式如:2022-10

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getLocationTrackSignList?userCode=UID2022042710270001&staffCode=SID202202714021000&collectMonth=2023-02

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.list array 对象列表
data.list.collectDay string 汇总日期,格式如:2022-10-11

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": [
    {
      "collectDay": "2023-02-01"
    }
  ]
}

# 5.3 获取员工的某日的定位轨迹数据

请求方式:GET

请求地址: https://{domain}/workos/record/location/getLocationTrackList

请求参数说明

参数名 参数类型 是否必传 说明
userCode string 用户编号
staffCode string 员工编号
collectDay string 轨迹汇总日期,格式如:2022-10-10

请求示例:

https://api-workos-paas.xzm.cn/workos/endPoint/getLocationTrackList?userCode=UID2022042710270001&staffCode=SID202202714021000&collectDay=2023-02-13

返回结果参数说明:

参数名 参数类型 说明
code int 错误码;40000表示接口调用成功,没有错误信息
msg string 接口请求错误信息; 当 code = 40000 时,该值为空
data object
data.list array 对象列表
data.list.collectDay string 汇总日期,格式如:2022-10-11
data.list.collectLevel int 汇总顺序,大于0的正整数,数值越大时间越往后
data.list.dwellTime int 驻留时间,默认值为0,单位分钟
data.list.lastTime int64 上次汇总时间,秒级时间戳
data.list.recordLat string 地址定位维度,以保存时间定位为准
data.list.recordLng string 地址定位经度,以保存时间定位为准
data.list.recordLocation string 定位地点,比如上海市宝山区共泉路100号
data.list.recordPlace string 定位地名简称

返回结果示例:

{
  "code": 40000,
  "msg": "请求成功",
  "data": [
    {
      "collectDay": "2023-02-13",
      "collectLevel": 1,
      "dwellTime": 1676217621,
      "lastTime": 668,
      "recordLat": "36.705462",
      "recordLng": "119.196782",
      "recordLocation": "山东省潍坊市奎文区金光路10002号",
      "recordPlace": "中动大厦A座"
    }
  ]
}

# 6.会话存档

提示:会话存档接口系高级功能,请联系客服咨询!

# 全局错误码

错误码(code) 错误说明(msg)
40001 数据请求参数异常,详情参见msg返回信息
40002 服务不可用,详情参见msg返回信息
40029 无效用户数据请求(数据不存在)
40030 不允许操作(特定业务场景不允许),详情参见msg返回信息
40303 工作手机绑定二维码已过期
40304 工作手机已完成绑定