曹操出行&电信两融接口协议
请求域名
正式环境:
https://cop.caocaokeji.cn
沙箱环境:
https://sandbox-cop.caocaokeji.cn
参数签名 签名步骤
1.参数内加入时间戳字段(timestamp)、client _id 字段
2.参数组合完成后加入 sign _key 字段,值是平台发放的签名 key
3 . 所有的参数(包括 sign _key)根据 key 升序排序,并拼接成字符串(key1value1key2value2 ...),对字符串进行 md5 得到的值就是参数签名 4.生成的参数签名(key 为 sign)加入参数列表中。
相关环境签名对
沙箱环境 client _id: 19c967e245913549 sign _key: 233deec1aad00196f3f1be6ad028c41e
签名代码示例
public static String sign(Map <String, String > param, String signKey)
{
// param 是要发到曹操平台的所有参数集合(包括 client _id、timestamp) //
signKey 是曹操平台发放的 sign _key
param.put( "sign _key ", signKey);
List infoIds = new ArrayList < >(param.entrySet());
Collections.sort(infoIds, Comparator.comparing(Map.Entry <String,
String >::getKey));
String paramStr = convert2Str(infoIds);
try {
// 对 paramStr 进行 md5,字母小 写 String md5 = md5(paramStr); return
md5;
} catch (Exception e) {
throw new RuntimeException(e);
} finally {
// 签名完成后,移除签名 key
param.remove( "sign _key "); }
}
public static String convert2Str(List <Map.Entry <String, String > >
params) { StringBuilder sb = new StringBuilder();
for (Map.Entry <String, String > entry : params) {
sb.append(entry.getKey()).append(entry.getValue()); }
return sb.toString(); }
请求 URL /v2/common/taximeterinfoUpload 请求方式 http/POST
参数列表
参数名 | 类型 | 描述 |
---|---|---|
client _id | String | 开放平台申请的 client _id |
timestamp | Long | 时间戳 |
sign | String | 参数签名 |
version | String | 版本 |
sequence | String | 全局唯一码 |
status | Integer | 修改后的计价器状态 1 - 空车 2 - 载客 |
carnum | String | 车牌号 |
collecttime | Long | 采集时间 |
devicetime | Long | 设备上传时间 |
servertime | Long | 服务器上传时间 |
返回值
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
返回示例
{
"msg ": "成功 ", "code ": 200, "data ": {
"sequence ": "2893814f-1702-4362-85ce-d493cd85fbf3 ", "version ":
"testVersion ",
"carnum ": "浙 A88888 " },
"success ": true,
}
错误码信息
code | message | 描述 |
---|---|---|
200 | SUCCESS | 成功 |
1 | 系统错误 | 系统错误 |
2 | 参数错误 | 参数错误 |
62006 | 车辆信息不存在 | 车辆信息不存在 |
请求 url
请求方式
参数列表
变量名 | 类型 | 含义 | 备注 |
---|---|---|---|
client _id | String | 开放平台申请的 client _id | |
timestamp | Long | 时间戳 | |
sign | String | 参数签名 | |
version | String | 版本 | |
sequence | String | 全局唯一码 | |
uniqueid | String | 内部唯一性标识 | |
phone | String | 司机手机号 | |
carnum | String | 车牌号 | |
upLat | Long | 上车经度 | |
uplng | Long | 上车维度 | |
upaccuracy | Long | 上车精度 | |
starttime | String | 用车时间 | |
citycode | String | 城市编码 | |
downLat | Long | 下车经度 | |
downlng | Long | 下车维度 | |
downaccuracy | Long | 下车精度 | |
paytime | Long | 支付时间 | |
ordermileage | Long | 订单里程(公里) | |
orderduration | Integer | 订单时长 | |
ordermoney | Long | 订单金额 |
返回值
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
请求 url: 请求方式: 参数列表
参数名 | 参数类型 | 描述 |
---|---|---|
client _id | String | 开放平台申请的 client _id |
timestamp | Long | 时间戳 |
sign | String | 参数签名 |
version | String | 版本 |
sequence | String | 全局唯一码 |
lat | Long | 经度 |
lng | Long | 维度 |
accuracy | Long | 精度 |
collecttime | Long | 采集时间 |
devicetime | Long | 设备上传时间 |
Servertime | Long | 服务器上报时间 |
应答格式
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
请求 url: 请求方式: 请求格式
参数名 | 参数类型 | 描述 |
---|---|---|
client _id | String | 开放平台申请的 client _id |
timestamp | Long | 时间戳 |
sign | String | 参数签名 |
version | String | 版本 |
sequence | String | 全局唯一码 |
carnum | String | 车牌号 |
total | Integer | 车内人数(模糊人数) |
collecttime | Long | 采集时间 |
devicetime | Long | 设备上传时间 |
Servertime | Long | 服务器上报时间 |
应答格式
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
请求 url: 请求方式: 请求格式
参数名 | 参数类型 | 描述 |
---|---|---|
client _id | String | 开放平台申请的 client _id |
timestamp | Long | 时间戳 |
sign | String | 参数签名 |
version | String | 版本 |
sequence | String | 全局唯一码 |
carnum | String | 车牌号 |
collecttime | Long | 采集时间 |
devicetime | Long | 设备上传时间 |
Servertime | Long | 服务器上报时间 |
应答格式
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
请求 url: 请求方式:
请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | 开放平台申请的 client _id | 是 | String | |
timestamp | 时间戳 | 是 | Long | |
sign | 参数签名 | 是 | String | |
version | 版本 | 是 | String | |
sequence | 全局唯一码 | 是 | String | |
devicelist | 设备列表 | 是 | { "deviceId ": "1 ",//设备 ID "carNum ": "浙 a1221212 " // 车牌 },{ ....} |
响应参数列表
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer | 返回值,成功 200 |
message | String | 调用信息 |
验证方式与曹操相同
参数签名 签名步骤
1.参数内加入时间戳字段(timestamp)、client _id 字段 2.参数组合完成后加入 sign _key 字段,值是平台发放的签名 key
3 . 所有的参数(包括 sign _key)根据 key 升序排序,并拼接成字符串(key1value1key2value2 ...),对字符串进行 md5 得到的值就是参数签名
4.生成的参数签名(key 为 sign)加入参数列表中
请求域名
测试的:http://dev-openapi.caocaovip.com:8082
正式的:http://openapi.caocaovip.com:8080
请求 url:
/vehicle/status
请求方式:
http/POST
请求格式(同时兼容老版本)
字段名 | 类型 | 描述 |
---|---|---|
client _id timestamp | String Long String | 开放平台申请的client _id 时间戳 参数签名 |
sign version | String | |
sequence | String | 全局唯一码 |
carnum | String | 车牌 |
status | Integer | 车辆线上接单状态 0 - 空闲,1 - 在运营 |
collecttime | Long | 采集时间 |
devicetime | Long | 设备上传时间 |
servertime | Long | 服务器上传时间 |
返回值
字段名 | 类型 | 描述 |
---|---|---|
version | String | 版本号 |
sequence | String | 全局唯一码 |
code | Integer |
返回值,成功 200
message String 调用信息
返回示例
{
"message ": " success ", "code ": 200,
"data ": {
"sequence ": "2893814f-1702-4362-85ce-d493cd85fbf3 ", "version ":
"testVersion "
} }
错误码信息
code | message | data |
---|---|---|
200 | success | 数据 |
300 | 系统错误/或异常 | FAIL |
401 | 接口验证失败 | FAIL |
404 | 车辆信息不存在 | FAIL |
录像录音文件获取流程
接口描述:分页查询设备录像文件列表 接口类型:get 接口 URL:/cameraDeviceInfo/RecordFileList 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 | |
starttime | String | 是 | 开始时间 | |
endtime | String | 是 | 结束时间 | |
status | Number | 否 | 上传状态 | 0 表示未上传 1 表示 上传成功 |
channel | Number | 否 | 摄像头位置 | 0-前摄像头,1-后摄像头 |
pageNum | Number | 否 | 页码 | |
pageSize | Number | 否 | 分页大小 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 response | number | 200 |
data | 录像文件列表 | Object | { "pageNum": "1", "pageSize": "10", "totalNum": "30", "content": [{ "filename": "deviceid_20190221151356.mp4", "url": "https://download1-caocaovip- com.oss-cn- hangzhou.aliyuncs.com/record/deviceid/ 20190221/deviceid_20190221151356.mp 4" "status": 0, //0 表示未上传,1 表示上传成 功 "channel": 1,//0-前摄像头,1-后摄像头 "endtime": 1432143134 "filename": "deviceid_20190221152356.mp4" "url": "https://download1-caocaovip- com.oss-cn- hangzhou.aliyuncs.com/record/deviceid/ 20190221/deviceid_20190221152356.mp 4" "status": 0, //0 表示未上传,1 表示上传成功 "channel": 1,//0-前摄像头,1-后摄像头 "starttime": 1231241235, "endtime": 1432143134, }] } |
Message | String | success |
接口描述:分页查询录音文件列表 接口类型:get
接口 URL:/cameraDeviceInfo/RecordAudioFileList 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 | |
pageNum | Number | 否 | 页码 | |
pageSize | Number | 否 | 分页大小 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 resopne | number | 200 |
data | 录音文件列表 | object | { "pageNum": "1", "pageSize": "10", "totalNum": "30", "content": [{ "filename": "deviceid_20190221151356.mp3", "url": "https://download1-caocaovip- com.oss-cn- hangzhou.aliyuncs.com/record/deviceid/20 190221/deviceid_20190221151356.mp3", "status": 1, "starttime": , "endtime":},{ "filename": "deviceid_20190221152356.mp3", "url": "https://download1-caocaovip- com.oss-cn- hangzhou.aliyuncs.com/record/deviceid/20 190221/deviceid_20190221152356.mp3", "status": 1, "starttime": , "endtime": }] } |
Messag e | String | success |
接口类型:get 接口 URL:recordFileStatus 请求参数列表
变量名 | 类型 | 必填 | 含义 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 | |
channel | Number | 否 | 摄像头编号 0-前摄像头 1-后摄 像头 |
|
fileName | String | 否 | 文件名称 | 文件名称 |
type | Number | 否 | 文件类型 | "type ":0, 0-录音文件 1-录像文件 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | object | String | { "status ": 0, //0 表示未上传,1 表示上传成功 "filename ": "deviceid _20190221151356.mp4 ", "url ": "[https://download1-caocaovip-com.oss-]{.underline}](https://download1-caocaovip-com.oss-) cn- hangzhou.aliyuncs.com/record/deviceid/201902]{.underline}](http://hangzhou.aliyuncs.com/record/deviceid/201902) 21/deviceid _20190221151356.mp4 " } |
Messag | String | success |
接口描述:此接口为通知电信平台,将车载设备的录音录像文件上传到平台,并返回 对应的 url,在查看录像录音之前,需要先判断文件状态是否为已上传
接口类型:get 接口 URL:/cameraDeviceInfo/recordFilePlay 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 | |
channel | Number | 是 | 摄像头编号 0-前摄像头,1-后摄 像头 | |
fileName | String | 是 | 文件名称 文件名称 | |
type | Number | 是 | 文件类型 "type ":0, //0-录音文 件 1-录像文件 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | object | String | { "status ": 0, //0 表示未上传,1 表示上传 成功,2 表示上传失败 "filename ": "deviceid _20190221151356.mp4 ", "url": "https://download1-caocaovip- com.oss-cn- hangzhou.aliyuncs.com/record/device } |
Message | String | success |
接口名称:设备轨迹查询 接口描述:设备轨迹查询,一次查询轨迹时间不能超过2
小时 接口类型:get
接口 URL:/cameraDeviceInfo/deviceTrail
请求参数列表
变量名 | 类型 | 必填 | 含义 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 | |
startTime | String | 是 | 开始时间 | |
endTime | String | 是 | 结束时间 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | 位置信息 | Object | { "timestamp ": 时间戳, "lat ": 经度,"lng": 维度, "status": 0 //如果这个点和 上个点之间终端没有上报位 置,则会出现这个字段,1 是异常, 0 是正常 },...] |
Message | String | success |
摄像头 设备号,品牌型号,厂家,内存容量,分辨率 接口名称:摄像头信息查询 接口描述:摄像头信息查询 接口类型:get
接口 URL:/cameraDeviceInfo/baseInfo 请求参数列表
变量名 | 类型 | 必填 | 含义 | 备注 |
---|---|---|---|---|
client _id | String | 是 | 开放平台申请的 client _id | |
timestamp | Long | 是 | 时间戳 | |
sign | String | 是 | 参数签名 | |
version | String | 是 | 版本 | |
sequence | String | 是 | 全局唯一码 | |
carnum | String | 是 | 车牌号 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | 位置信息 | Object | { "deviceId ": "20190221151356 ", "cameraModel ": " ", //厂商型号 "factory ": " ",//工厂名称 "memoryCapacity ": 0,//内存容量 "resolution ": "4CIF " //分辨率, }, ... ] |
Message | String | success |
接口名称:查询计价器计价信息 接口描述:查询计价器计价信息,一次查询时间不能超过 24 小时 接口类型:get 接口 URL:/taximeter/query 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | 开放平台申请的 client _id | 是 | String | |
timestamp | 时间戳 | 是 | Long | |
sign | 参数签名 | 是 | String | |
version | 版本 | 是 | String | |
sequence | 全局唯一码 | 是 | String | |
carnum | 车牌号 | 是 | String | |
pageNum | 页码 | 否 | Number | |
pageSize | 分页大小 | 否 | Number | |
starttime | 开始时间 | 是 | String | |
endtime | 结束时间 | 是 | String |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | object | 计价器信息: { "pageNum": "1", "pageSize": "10", "totalNum": "30", "content":[{ "status": 1, //0 表示未连接,1 表示已连接 "price": 32,//元 "duration": 654, //毫秒 "mileage": 13,//公里 "time": 123456789,//统计时间 (毫秒) "operationState": 0 //0 表示不 在运营状态,1 表示在运营状态 "starttime": 13,//开始时间 "stoptime": 123456789,//结束 时间 "waittime": 0 //等待时间 }, { "status": 1, //0 表示未连接,1 表示已连接 "price": 32,//元 "duration": 654, //毫秒 "mileage": 13, //公里 "time": 123456789,//统计时间 (毫秒) "operationState": 0 //0 表示不 在运营状态,1 表示在运营状态 "starttime": 13,//开始时间 "stoptime": 123456789,//结束 时间 "waittime": 0 //等待时间 }] } |
|
| Message | | String | success |
接口名称:平台操作日志分页查询 接口描述:平台操作日志分页查询,一次日志查询时间不能超过 24 小时
接口类型:get 接口 URL:/cameraDeviceInfo/deviceGeneralPageQry 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client_id | 开放平台申请的 client_id | 是 | String | |
timestamp | 时间戳 | 是 | Long | |
sign | 参数签名 | 是 | String | |
version | 版本 | 是 | String | |
sequence | 全局唯一码 | 是 | String | |
carnum | 车牌号 | 否 | String | |
phone | 手机号码 | 否 | String | 司机的手机号码 |
userName | 姓名 | 否 | String | 司机的姓名 |
pageNum | 页码 | 否 | Number | |
pageSize | 分页大小 | 否 | Number | |
startTime | 开始时间 | 是 | Long | 开始时间 |
endTime | 结束时间 | 是 | Long | 结束时间 |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | Number | 200 |
data | object | 设备信息列表: { "pageNum": "1", "pageSize": "10", "totalNum": "30", "content": [{ "deviceId": "1",//设备 ID "alarmType": 0,//类型 "desc": "摄像头异常",//描述 "alarmTime": 1,//时间 "driverId": 1212,//司机 "driverName": "test",//司机姓名 "carNum": "浙 a1221212", "companyName": "testcompany",//公司 名称 "state": 0 //状态 },{....}] } |
| Message | | String | success |
接口名称:设备列表查询 接口描述:设备列表查询
接口类型:get 接口 URL:/cameraDeviceInfo/deviceCaoCaoPageQry 请求参数列表
变量名 | 含义 | 必填 | 类型 | 备注 |
---|---|---|---|---|
client _id | 开放平台申请的 client _id | 是 | String | |
timestamp | 时间戳 | 是 | Long | |
sign | 参数签名 | 是 | String | |
version | 版本 | 是 | String | |
sequence | 全局唯一码 | 是 | String | |
pageNum | 页码 | 否 | Number | |
pageSize | 分页大小 | 否 | Number |
响应参数列表
变量名 | 含义 | 类型 | 备注 |
---|---|---|---|
code | 返回码 | number | 200 |
data | object | 设备信息列表: { "pageNum": "1", "pageSize": "10", "totalNum": "30", "content": [{ "deviceId": "1",//设备 ID "carNum": "浙 a1221212" //车 牌 },{....}] } |
|
Message | String | success |