概述

使用场景

经销商自己有一套系统,想在这个基础上扩充相关GPS功能。 经销商的客户的账号由经销商自己的系统管理,用于登录经销商的系统。 经销商系统的账号和汽车在线平台的账号对应关系,经销商自己管理,经销商使用汽车在线平台的账号来获取相应设备数据。设备IMEI由经销商自己的系统管理,经销商可根据imei获取设备数据。 经销商的应用服务器调用API接口。

使用方法

经销商提供他的几米平台登录账号和密码来获取appKey,appSecret 通过appkey、appSecret调用api接口获取访问令牌(access_token)。 经销商在应用服务器端使用该接口获取所需的数据。

协议格式

公共约定

约定


请求:Context-Type:application/x-www-form-urlencoded
时间统一采用UTC时间,国内是北京时间,格式 国外环境,时间是零时区UTC时间,格式

返回数据公共属性

参数 类型 描述
code Int 结果码
message String Code描述

Code解释

code 描述
-1 -1 系统繁忙
0 0 成功
1xxx 1001 参数错误(缺少必选参数或格式错误),具体查看接口描述
1002 非法用户/非法设备(查询的账号或设备不是自己的或下级的)
1003 重复提交操作
1004 非法访问,token异常!(token失效或不存在)
1005 非法访问,ip访问超过限定次数!
1006 非法访问,请求频率过高!
1007 非法访问,请求方法错误!
1008 非法访问,来路异常!
1009 非法访问,来路异常!
1010 无权限操作!
12001 创建平台账号操作失败
12002 转移设备操作失败
12003 创建电子围栏操作失败
12004 删除电子围栏操作失败
12005 发送指令失败
12006 更新设备信息失败
12007 当前围栏名称已存在
12008 围栏超过创建个数
12009 围栏名称存在特殊字符
12010 保存围栏告警失败
12011 非法用户,删除围栏失败
12012 删除围栏失败
12020 车辆创建失败
12021 车辆更新失败
12022 车辆删除失败
12023 车辆移动失败
12024 车辆绑定设备失败
12025 车辆解绑设备失败

业务错误码

业务 错误码 描述
创建账号 213 账号已存在
214 操作账号不存在
215 用户类型错误,可能原因:1,新建用户类型为空;2,新建用户类型不存在;3,当前登录用户无权限新加该类型用户
100001 没有创建平台账号的权限
转移设备 217 目标用户不存在
218 操作用户只能往下级用户转移/销售设备
219 imei列表不合法
220 imei数量超出限制
修改设备 223 车辆图标无效
电子围栏 41001 超过机型支持围栏数
41002 围栏名已存在
41003 设备不在线
41004 电子围栏操作失败
指令 225 超时
226 参数错误
227 指令未正确执行
228 设备不在线
229 网络错误,连接断开等
238 设备中断
240 数据错误
243 设备不支持
252 设备忙
255 设备成功
车辆 230 车辆不存在
231 没有权限操作此车辆
232 车辆不可删除
233 车辆绑定IMEI错误
234 车辆解绑IMEI错误
235 车牌号重复

通信流程

API数据流程

API列表

接口类别 method参数名称 描述
认证API jimi.oauth.token.get 获取access_token
jimi.oauth.token.refresh 刷新access_token
用户API jimi.user.child.createPlatformUsers 为指定账号创建子账号
jimi.user.child.list 查询账号下的所有子账户信息
jimi.user.device.list 查询账户下所有设备信息
jimi.user.device.location.list 查询账户下所有设备最新位置信息
设备API jimi.device.location.get 根据IMEI获取最新定位数据
jimi.open.device.getDetails 根据IMEI获取设备详细信息
jimi.device.track.list 根据IMEI获取轨迹数据
jimi.open.device.bind 为设备IMEI绑定用户
jimi.open.device.unbind 为设备IMEI解除绑定用户
jimi.open.device.move 转移设备
jimi.openH5.device.getLocation 根据IMEI获取设备最新定位页面
jimi.openH5.device.getTrackList 根据IMEI获取设备轨迹页面
车辆管理API jimi.open.car.create 创建车辆信息
jimi.open.car.update 修改车辆信息
jimi.open.car.delete 删除车辆信息
jimi.open.car.move 车辆转移
jimi.open.car.device.bind 车辆绑定IMEI设备
jimi.open.car.device.unbind 车辆解绑IMEI设备
jimi.open.car.device.details 查询车辆详情
jimi.open.car.device.list 查询账号下的所有车辆信息
指令API jimi.open.instruction.list 获取设备支持的指令列表
jimi.open.instruction.send 指定设备发送指令
jimi.open.instruction.result 获取设备指令结果
围栏API jimi.open.device.fence.create 为设备imei创建电子围栏
jimi.open.device.fence.delete 为设备imei删除电子围栏
jimi.open.device.fence.get 获取设备电子围栏信息
jimi.open.plat.fence.create 创建平台围栏
jimi.open.plat.fence.delete 删除平台围栏
LBS-API jimi.lbs.address.get wifi、基站定位解析
消息服务 jimi.push.device.alarm 推送设备告警信息
报表统计API jimi.open.report.state 查询状态统计
jimi.open.report.lowbattery 查询电量过低统计
jimi.open.report.alarm 查询告警总览统计

协议详情

调用入口

调用 API的服务URL地址,文档中所有接口都使用该url访问

调用环境 服务地址(HTTP)
国内正式环境 http://fkapi.tuqiangol.com/route/rest

认证

由几米服务平台给出api连接地址、有效的appkey和appSecret,用户通过
获取。 调用API时传入,并对请求参数进行签名,几米服务器端会验证
请求参数是否合法。

通用参数

参数名称 参数类型 是否必填 参数说明 取值说明 默认值
method String API接口名称
timestamp String 时间戳,格式为yyyy-MM-dd HH:mm:ss允许与系统时间误差正负10分钟,例如:2012-03-25 20:00:00
app_key String 几米分给客户的APP_KEY
sign String API输入参数签名结果
sign_method String 可选,指定签名方式。系统默认md5,支持方式有:md5 md5 md5
v String 可选,指定API版本。系统默认1.0 1.0:进行签名校验
format String 可选,指定响应格式。系统默认json json

API签名

为了防止API调用过程中被黑客恶意篡改,调用任何一个API都需要携带签名,TOP服务端会根据请求参数,对签名进行验证,签名不合法的请求将会被拒绝。TOP目前支持的签名算法有: MD5(本接口通用参数里面sign_method的值为md5),签名大体过程如下:

对所有API请求参数(包括公共参数和业务参数,但除去sign参数和byte[]类型的参数),根据参数名称的ASCII码表的顺序排序。如: foo=1, bar=2, foo_bar=3, foobar=4排序后的顺序是bar=2, foo=1, foo_bar=3, foobar=4

将排序好的参数名和参数值拼装在一起,根据上面的示例得到的结果为:bar2foo1foo_bar3foobar4

把拼装好的字符串采用utf-8编码,使用签名算法对编码后的字节流进行摘要。如果使用MD5算法,则需要在拼装的字符串前后加上app的secret后,再进行摘要,如:md5(secret+bar2foo1foo_bar3foobar4+secret)

将摘要得到的字节流结果使用十六进制表示,如: hex(“helloworld”.getBytes(“utf-8”)) = “68656C6C6F776F726C64”


说明:MD5是128位长度的摘要算法,用16进制表示,一个十六进制的字符能表示4个位,所以签名后的字符串长度固定为32个十六进制字符。

算法

JAVA代码示例:


public static String signTopRequest(Map params, String secret, String signMethod) throws IOException {
    // 第一步:检查参数是否已经排序
    String[] keys = params.keySet().toArray(new String[0]);
    Arrays.sort(keys);
 
    // 第二步:把所有参数名和参数值串在一起
    StringBuilder query = new StringBuilder();
    if ("md5".equals(signMethod)) {
        query.append(secret);
    }
    for (String key : keys) {
        String value = params.get(key);
        if (StringUtils.areNotEmpty(key, value)) {
            query.append(key).append(value);
        }
    }
 
    // 第三步:使用MD5/HMAC加密
    byte[] bytes;
    if ("hmac".equals(signMethod)) {
        bytes = encryptHMAC(query.toString(), secret);
    } else {
        query.append(secret);
        bytes = encryptMD5(query.toString());
    }
 
    // 第四步:把二进制转化为大写的十六进制
    return byte2hex(bytes);
}
 
public static byte[] encryptHMAC(String data, String secret) throws IOException {
    byte[] bytes = null;
    try {
        SecretKey secretKey = new SecretKeySpec(secret.getBytes("UTF-8"), "HmacMD5");
        Mac mac = Mac.getInstance(secretKey.getAlgorithm());
        mac.init(secretKey);
        bytes = mac.doFinal(data.getBytes("UTF-8"));
    } catch (GeneralSecurityException gse) {
        throw new IOException(gse.toString());
    }
    return bytes;
}
 
public static byte[] encryptMD5(String data) throws IOException {
    return encryptMD5(data.getBytes("UTF-8"));
}

private static byte[] encryptMD5(byte[] bytes) throws IOException {
	MessageDigest md = null;
	try {
		md = MessageDigest.getInstance("MD5");
	} catch (NoSuchAlgorithmException e) {
		throw new IOException(e.toString());
	}
	return md.digest(bytes);
}
 
public static String byte2hex(byte[] bytes) {
    StringBuilder sign = new StringBuilder();
    for (int i = 0; i < bytes.length; i++) {
        String hex = Integer.toHexString(bytes[i] & 0xFF);
        if (hex.length() == 1) {
            sign.append("0");
        }
        sign.append(hex.toUpperCase());
    }
    return sign.toString();
}
                            

IOS代码示例:


#import "JAVAToOC.h"
#import <CommonCrypto/CommonDigest.h>
@implementation JAVAToOC

+ (NSString *)signToRequest:(NSDictionary *)params
                     secret:(NSString *)secret
                 signMethod:(NSString *)signMethod
{
    
    //第一步:参数按ASCII码表排序
    NSArray *keys = params.allKeys;
    
    NSStringCompareOptions comparisonOptions =NSCaseInsensitiveSearch|NSNumericSearch|
    NSWidthInsensitiveSearch|NSForcedOrderingSearch;
    NSComparator sort = ^(NSString *obj1,NSString *obj2){
        NSRange range =NSMakeRange(0,obj1.length);
        return [obj1 compare:obj2 options:comparisonOptions range:range];
    };
    NSArray *keysSort = [keys sortedArrayUsingComparator:sort];
   
    //第二步:把所有参数名和参数串在一起
    NSMutableString *appendStr = [[NSMutableString alloc] init];
    if ([@"md5" isEqualToString:signMethod]) {
        [appendStr appendString:secret];
    }
    
    for (NSString *key in keysSort) {
        NSString *value = params[key];
        if (value) {
            [appendStr appendString:[NSString stringWithFormat:@"%@%@",key,value]];
        }
    }
    // 第三步:使用MD5加密
    [appendStr appendString:secret];
    NSString *md5Result = [self md5HexDigest:appendStr];
    
    return md5Result;
}

//MARK - md5加密
+ (NSString *) md5HexDigest:(NSString *)str
{
    const char *original_str = [str UTF8String];
    unsigned char result[CC_MD5_DIGEST_LENGTH];
    CC_MD5(original_str, strlen(original_str), result);
    NSMutableString *hash = [NSMutableString string];
    for (int i = 0; i < 16; i++)
    [hash appendFormat:@"%02X", result[i]];
    return [hash uppercaseString];
}

@end
                            

获取accesstoken

接口说明

获取后续访问接口的令牌,1分钟内只能访请求1次,在有效期内访问token不变。

请求URL

本接口通用参数里面method的值为jimi.oauth.token.get

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名称 参数类型 是否必填 参数说明 取值说明 默认值
user_id String 用户ID
user_pwd_md5 String 用户ID密码的MD5 使用commons-codec.jar DigestUtils.md5Hex(pwd.getBety()); MD5结果是小写的
expires_in String access token的有效期,以秒为单位 60-7200

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 结果

result参数列表:

参数 类型 描述
accessToken String 后续接口访问的访问令牌,对应到公司下的帐号
expiresIn String 有效期
account String 请求的账号
appKey String 几米分给给客户的APP_KEY
refreshToken String 刷新令牌,用于更新accessToken
time String 令牌生成的时间

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "appKey": "8FB345B8693CCD003CC2DAB123456789",
    "account": "jimitest",
    "accessToken": "7da3330ec28e3996b6ef4a7123456789",
    "expiresIn": 60,
    "refreshToken": "7da3330ec28e3996b6ef4a7123456789",
    "time": "2017-06-15 10:00:00"
  }
}
                    

错误返回示例:

{"code":xxx,"message":"账号或密码错误"}

刷新accesstoken

接口说明

该接口用于在accessToken即将失效时,通过该接口强制更新令牌,1分钟内只能访请求1次。

请求URL

本接口通用参数里面method的值为jimi.oauth.token.refresh

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
   

参数名称 参数类型 是否必填 参数说明 取值说明 默认值
access_token String 授权的令牌
refresh_token String 授权的刷新令牌
expires_in String access token的有效期,以秒为单位 60-7200

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 结果

result参数列表:

参数 类型 描述
accessToken String 后续接口访问的访问令牌,对应到公司下的帐号
expiresIn String 有效期
account String 请求的账号
appKey String 几米分给给客户的APP_KEY
refreshToken String 刷新令牌,用于更新accessToken
time String 令牌生成的时间

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "appKey": "8FB345B8693CCD003CC2DAB123456789",
    "account": "jimitest",
    "accessToken": "7da3330ec28e3996b6ef4a7123456789",
    "expiresIn": 60,
    "refreshToken": "7da3330ec28e3996b6ef4a7123456789",
    "time": "2017-06-15 10:00:00"
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法请求,token无效"}

创建平台账号

接口说明

为指定账号创建子账号。

请求URL

本接口通用参数里面method的值为jimi.user.child.createPlatformUsers

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
   

参数名称 参数类型 是否必填 参数说明 取值说明 默认值
access_token String 授权的令牌
top_account String 上级账号 取值范围3-30字符
nick_name String 客户名称 取值范围3-50字符
account_type String 新增账号类型 (8:代理商,9:机构)说明:代理商可建用户:代理商,机构;机构可建用户:机构
account String 登录账号 取值范围3-30字符
password String 密码,采用md5加密后的值,小写 一个32位固定值使用commons-codec.jar
DigestUtils.md5Hex(pwd.getBety());
phone String 手机号 取值范围0-20字符
email String 邮箱 取值范围0-50字符
contact String 联系人 取值范围0-50字符
company_name String 公司名 取值范围0-50字符

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 结果

正确返回示例:

{
  "code": 0,
  "message": "添加成功",
  "result": null
}
                    

错误返回示例:

{"code":12001,"message":"创建用户失败,结果码:213"}

根据账户,获取该账户下的所有子账户信息

接口说明

查询账号下的所有子账户信息。

请求URL

本接口通用参数里面 method的值为jimi.user.child.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
target String 要查询的用户账号(获取token时使用的账户或者其子账户)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的参数

result参数列表:

参数 类型 描述
account String 登录帐号
name String 显示名称
type Int 帐号类型 1:普通用户
address String 所在地
birth String 生日
companyName String 公司名
email String 邮箱
phone String 联系电话
enabledFlag Int 标志:1可用,0不可用
remark String 备注

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "account": "123123",
      "name": "测试",
      "type": 8,
      "displayFlag": 1,
      "address": null,
      "birth": "2017-04-22 00:00:00",
      "companyName": "",
      "email": "",
      "phone": "",
      "language": "zh",
      "sex": 0,
      "enabledFlag": 1,
      "remark": null
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"查询的账号不存在"}

根据账户,获取该账户下的所有IMEI信息

接口说明

查询账户下所有设备信息。

请求URL

本接口通用参数里面method的值为jimi.user.device.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
target String 要查询的用户账号(获取token时使用的账户或者其子账户)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
imei String 设备IMEI
deviceName String 设备名称
mcType String 设备型号
mcTypeUseScope String 机型使用范围(aotomobile:汽车 electromobile:电动车 personal:个人 pet:宠物 plane:飞机 others:其他)
equipType String 设备类型(WIRED:有线 WIRELESS:无线)
sim String Sim卡号
expiration String 到期时间,格式yyyy-MM-dd HH:mm:ss
activationTime String 激活时间,格式yyyy-MM-dd HH:mm:ss
reMark String 备注
vehicleName String 车辆名称
vehicleIcon String 车辆图标
vehicleNumber String 车牌号
carFrame String 车架号
driverName String 司机名称
driverPhone String 司机电话
engineNumber String 电机发动机号

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "imei": "868120145233604",
      "deviceName": "868120145233604",
      "mcType": "GT300L",
      "mcTypeUseScope": "personal",
      "sim": "415451",
      "expiration": "2037-04-01 23:59:59",
      "activationTime": "2017-04-01 11:02:20",
      "reMark": "test",
      "vehicleName": null,
      "vehicleIcon": "bus",
      "vehicleNumber": "粤B3604",
      "vehicleModels": null,
      "carFrame": "2235",
      "driverName": "driver",
      "driverPhone": "13825036579",
      "enabledFlag": 1,
      "engineNumber": "8565674"
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"查询的账号不存在"}

根据账户,获取该账户下所有IMEI的最新定位数据

接口说明

获取一个账户名下所有设备最新位置信息。

请求URL

本接口通用参数里面method的值为jimi.user.device.location.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
target String 要查询的用户账号(获取token时使用的账户或者其子账户)
map_type String 如果要显示在百度地图上,map_type=BAIDU此时返回的经纬度将经过baidu校准方式校准 如果要显示在google地图上,map_type=GOOGLE,此时返回的经纬度将经过google校准方式校准 map_type如果不填,则返回原始经纬度

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result数据:

参数 类型 描述
imei String 设备IMEI
deviceName String 设备名称
icon String 车辆图标
status String 设备状态 0,离线; 1,在线
lat Double 经度 (如果设备过期,值为0)
lng Double 纬度 (如果设备过期,值为0)
expireFlag String 是否过期1-未过期 0-过期
activationFlag String 是否激活1-激活 0-未激活
posType String 卫星定位-GPS, 基站定位-LBS, WIFI定位-WIFI, 蓝牙定位-BEACON
gpsTime String GPS定位时间
hbTime String 心跳时间
speed String 速度 (单位:km/h)
accStatus String Acc状态 0:关闭 1:打开
electQuantity String 设备电量(0-100),部分设备型号不支持

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "imei": "868120145233604",
      "deviceName": "868120145233604",
      "icon": "bus",
      "status": "0",
      "posType": "GPS",
      "lat": 22.577282,
      "lng": 113.916604,
      "hbTime": "2017-04-26 09:14:50",
      "accStatus": "0",
      "speed": "0",
      "gpsTime": "2017-04-26 09:17:46",
      "activationFlag": "1",
      "expireFlag": "1",
      "electQuantity": "60",
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"查询的账号不存在"}

根据IMEI获取最新定位数据

接口说明

获取单个或多个设备最新的位置信息

请求URL

本接口通用参数里面method的值为jimi.device.location.get

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imeis String 设备imei号,多个中间用英文逗号隔开; 如果设备过多,建议采用POST方式(一次最多100个IMEI)
map_type String 如果要显示在百度地图上,map_type=BAIDU此时返回的经纬度将经过baidu校准方式校准 如果要显示在google地图上,map_type=GOOGLE,此时返回的经纬度将经过google校准方式校准 map_type如果不填,则返回原始经纬度

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据
参数 类型 描述
imei String 设备IMEI
deviceName String 设备名称
icon String 车辆图标
status String 设备状态 0,离线; 1,在线
lat Double 经度 (如果设备过期,值为0)
lng Double 纬度 (如果设备过期,值为0)
expireFlag String 是否过期 1-未过期 0-过期
activationFlag String 是否激活 1-激活 0-未激活
posType String 卫星定位-GPS, 基站定位-LBS, WIFI定位-WIFI, 蓝牙定位-BEACON
gpsTime String GPS定位时间
hbTime String 心跳时间 UTC秒数(如果设备过期,值为0)
speed String 速度 (单位:km/h)
accStatus String Acc状态 0:关闭 1:打开
electQuantity String 设备电量(0-100),部分设备型号不支持

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "imei": "868120145233604",
      "deviceName": "868120145233604",
      "icon": "bus",
      "status": "0",
      "posType": "GPS",
      "lat": 22.577282,
      "lng": 113.916604,
      "hbTime": "2017-04-26 09:14:50",
      "accStatus": "0",
      "speed": "0",
      "gpsTime": "2017-04-26 09:17:46",
      "activationFlag": "1",
      "expireFlag": "1",
      "electQuantity": "60",
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法设备"}

根据IMEI获取设备详细信息

接口说明

获取单个或多个设备的详细信息

请求URL

本接口通用参数里面method的值为jimi.open.device.getDetails

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imeis String 设备imei号,多个中间用英文逗号隔开; 如果设备过多,建议采用POST方式(一次最多100个IMEI)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据
参数 类型 描述
imei String 设备IMEI
deviceName String 设备名称
account String 所属用户账号
activationTime String 激活时间
expiration String 过期时间
mcType String 机型
sim String 卡号
driverPhone String 司机电话
driverName String 司机名称
vehicleIcon String 车辆图标
equipType String 设备类型(WIRED:有线 WIRELESS:无线)
mcTypeUseScope String 机型使用范围(aotomobile:汽车 electromobile:电动车 personal:个人 pet:宠物 plane:飞机 others:其他)
reMark String 备注
vehicleName String 车辆名称
vehicleNumber String 车牌号
carFrame String 车架号
idCard String 身份证
engineNumber String 发动机号
installTime String 安装时间

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "imei": "987456123012358",
      "deviceName": "123456788012354ui",
      "account": "jimitest",
      "activationTime": "2016-10-27 11:44:29",
      "expiration": "2036-10-27 11:44:29",
      "mcType": "ET200",
      "driverPhone": "25",
      "vehicleIcon": "taxi",
      "equipType": "WIRED",
      "mcTypeUseScope": "electromobile",
      "reMark": "123456788012354",
      "sn": "123456788012354",
      "vehicleName": null,
      "vehicleNumber": "123456788012354u",
      "carFrame": "123456788012354",
      "idCard": "123456788012354",
      "engineNumber": "123456788012354",
      "installTime": null,
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法设备"}

根据IMEI获取轨迹数据

接口说明

允许有线设备获取三个月内,时间跨度不超过2天的轨迹数据。

允许无线设备获取三个月内,时间跨度不超过60天的轨迹数据。

请求URL

本接口通用参数里面 method的值为jimi.device.track.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号(一次只能一个IMEI)
begin_time String 开始时间,格式为yyyy-MM-dd HH:mm:ss
end_time String 结束时间,格式为yyyy-MM-dd HH:mm:ss
end_time不应大于当前时间。
map_type String 如果要显示在百度地图上,map_type=BAIDU此时返回的经纬度将经过baidu校准方式校准 如果要显示在google地图上,map_type=GOOGLE,此时返回的经纬度将经过google校准方式校准 map_type如果不填,则返回原始经纬度

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result数据列表:

参数 类型 描述
lng Double 经度
lat Double 纬度
gps Time String gps定位时间 格式yyyy-MM-dd HH:mm:ss
direction String 方位,正北开始的一个360度的极坐标方向
gpsSpeed String GPS速度
posType String 定位类型1是卫星定位 2是基站定位 3是wifi定位

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "lat": 22.577144898887813,
      "lng": 113.91674845964586,
      "gpsTime": "2017-04-26 00:00:58",
      "direction": 0,
      "gpsSpeed": -1,
      "posType": 3
    },
    {
      "lat": 22.57708,
      "lng": 113.916631,
      "gpsTime": "2017-04-26 00:01:30",
      "direction": 184,
      "gpsSpeed": 0,
      "posType": 1
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"IMEI不存在{353419031939627}"}
{" code ":xxx,"message":"该设备已过期{353419031939627}"}

转移设备

接口说明

将账号上的设备转移到指定账号上。

请求URL

本接口通用参数里面 method的值为jimi.open.device.move

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
src_account String 原用户账号(必须是授权账号的下级)
dest_account String 目标用户账号(必须是授权账号的下级)
imeis String 设备imei列表,使用逗号分隔,最多支持500个

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "转移设备成功",
  "result": null
}
                    

错误返回示例:

{"code":12002,"message":"转移设备失败,结果码:217"}

创建车辆信息

接口说明

指定账号下创建车辆信息。如果指定账号下存在相同的车牌号,则返回该车辆的信息,不对其进行更新操作。

请求URL

本接口通用参数里面 method的值为jimi.open.car.create

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 绑定账号(包含子级账号)
carOwnerName String 车主姓名
carPlateNumber String 车牌号(此项必须唯一,不可重复)
carOwnerPhone String 车主手机号
cardType String 证件类型[IDCARD-身份证,PASSPORT-护照]
carOwnerIdCard String 车主证件号
carModel String 车型
carEngineNumber String 发动机号
carFrameNumber String 车架号
carType String 车辆类型[NEWCAR-新车;USEDCAR-二手车;IMPORTEDCAR-进口车]
loanMonth String 贷款期限(整数格式)
loanSum String 贷款额度(金额格式)
overallSum String 总评额度(金额格式)
salesman String 业务员
homeAddress String 家庭住址
workAddress String 工作单位地址
sex String 1 性别[0-女,1-男],不填默认 1
carColor String 车辆颜色
loanDate String 贷款日期,格式:yyyy-MM-dd
repaymentType String 还款方式,[STAGES-等额本金, ONCE-先息后本]

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
carId String 车辆编号
carOwnerName String 车主名称
carPlateNumber String 车牌号
carOwnerPhone String 车主手机号
cardType String 证件类型[IDCARD-身份证,PASSPORT-护照]
carOwnerIdCard String 证件号码
carModel String 车型
carEngineNumber String 发动机号
carFrameNumber String 车架号
carType String 车辆类型[NEWCAR-新车;USEDCAR-二手车;IMPORTEDCAR-进口车]
loanMonth Integer 贷款期限
loanSum Double 贷款额度
overallSum Double 总评额度
salesman String 业务员
homeAddress String 家庭住址
workAddress String 工作单位地址
sex String 性别[0-女,1-男]
carColor String 车辆颜色
loanDate String 贷款日期,格式:yyyy-MM-dd
repaymentType String 还款方式,[STAGES-等额本金, ONCE-先息后本]
bindAccount String 绑定账号
createTime String 创建时间

正确返回示例:

{
  "code": 0,
  "message": "添加成功",
  "result": {
    "id": 5756,
    "carOwnerName": "测试车主",
    "carOwnerPhone": "12356456456465456456",
    "cardType": "IDCARD",
    "carOwnerIdCard": "4526011995132565221",
    "carPlateNumber": "TX85512",
    "carModel": "Tc1",
    "carEngineNumber": "axsq123456",
    "carFrameNumber": "axsq12345623",
    "carType": "NEWCAR",
    "createTime": "2018-05-23 19:03:56",
    "overallSum": 18000,
    "loanMonth": "12",
    "loanSum": 15000,
    "salesman": "wwq",
    "homeAddress": "测试地址1",
    "workAddress": "测试地址2",
    "sex": 1,
    "carColor": "蓝色",
    "loanDate": "2018-08-15",
    "repaymentType": "STAGES"
    "bindAccount": "jimitest"
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}

修改车辆信息

接口说明

通过车辆ID更新车辆信息,可更新子账户下的车辆。请求参数为空的情况下,自动设置值为空或者0

请求URL

本接口通用参数里面 method的值为jimi.open.car.update

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
carId String 车辆ID
carOwnerName String 车主姓名
carPlateNumber String 车牌号(此项必须唯一,不可重复)
carOwnerPhone String 车主手机号
cardType String 证件类型[IDCARD-身份证,PASSPORT-护照]
carOwnerIdCard String 车主证件号
carModel String 车型
carEngineNumber String 发动机号
carFrameNumber String 车架号
carType String 车辆类型[NEWCAR-新车;USEDCAR-二手车;IMPORTEDCAR-进口车]
loanMonth String 贷款期限(整数格式)
loanSum String 贷款额度(金额格式)
overallSum String 总评额度(金额格式)
salesman String 业务员
homeAddress String 家庭住址
workAddress String 工作单位地址
sex String 1 性别[0-女,1-男],不填默认 1
carColor String 车辆颜色
loanDate String 贷款日期,格式:yyyy-MM-dd
repaymentType String 还款方式,[STAGES-等额本金, ONCE-先息后本]

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "编辑成功",
  "result": null
}
                    

错误返回示例:

{"code":xxx,"message":"车牌号已经存在"}

删除车辆信息

接口说明

通过车辆ID删除车辆信息,只有未绑定设备的车辆才可进行删除操作。

请求URL

本接口通用参数里面 method的值为jimi.open.car.delete

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
carId String 车辆ID

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "删除车辆成功",
  "result": null
}
                    

错误返回示例:

{"code":230,"message":"车辆不存在"}

车辆转移

接口说明

指定账号进行车辆转移。

请求URL

本接口通用参数里面 method的值为jimi.open.car.move

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
carIds String 车辆ID,多个用逗号隔开
account String 转移账号(包含子级账号)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "转移车辆成功",
  "result": null
}
                    

错误返回示例:

{"code":230,"message":"车辆不存在"}

车辆绑定IMEI设备

接口说明

对指定车辆进行IMEI号的绑定操作,已安装的设备不可进行绑定。

请求URL

本接口通用参数里面 method的值为jimi.open.car.device.bind

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 账号,包含子级账号(车辆ID与IMEI必须在此账号下)
carId String 车辆ID
imei String 设备imei号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "绑定设备成功",
  "result": null
}
                    

错误返回示例:

{"code": 233,"message": "IMEI不存此账号下在或者已绑定其他车辆上"}

车辆解绑IMEI设备

接口说明

对指定车辆进行IMEI号的绑定操作,已安装的设备不可进行绑定。

请求URL

本接口通用参数里面 method的值为jimi.open.car.device.unbind

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 账号,包含子级账号(车辆ID与IMEI必须在此账号下)
carId String 车辆ID
imei String 设备imei号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "解绑设备成功",
  "result": null
}
                    

错误返回示例:

{"code": 232,"message": "该设备不属于此车辆下无法解绑"}

查询车辆详情

接口说明

通过车辆编号获取车辆详细信息。

请求URL

本接口通用参数里面 method的值为jimi.open.car.device.details

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
carIds String 车辆ID,多个用逗号隔开。建议采用POST方式(一次最多100个carId)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
carId String 车辆编号
bindUserAccount String 绑定车辆账号
carOwnerName String 车主名称
carPlateNumber String 车牌号
carOwnerPhone String 车主手机号
cardType String 证件类型[IDCARD-身份证,PASSPORT-护照]
carOwnerIdCard String 证件号码
carModel String 车型
carFrameNumber String 车架号
carEngineNumber String 发动机号
carType String 车辆类型[NEWCAR-新车;USEDCAR-二手车;IMPORTEDCAR-进口车]
loanMonth String 贷款期限
loanSum String 贷款额度
overallSum String 总评额度
salesman String 业务员
homeAddress String 家庭住址
workAddress String 工作单位地址
sex String 性别[0-女,1-男]
carColor String 车辆颜色
loanDate String 贷款日期,格式:yyyy-MM-dd
repaymentType String 还款方式,[STAGES-等额本金, ONCE-先息后本]
imeis String 安装设备IMEI,多个用逗号隔开
createTime String 创建时间
updateTime String 修改时间
equtList String 安装设备详情列表

equtList参数列表:

参数 类型 描述
imei 设备IMEI号
deviceName String 设备名称
activationTime String 激活时间
expiration String 过期时间
mcType String 设备机型
equipType String 设备类型(WIRED:有线 WIRELESS:无线)
sim String 卡号
driverPhone String 电话
vehicleIcon String 车辆图标
mcTypeUseScope String 机型使用范围(aotomobile:汽车 electromobile:电动车 personal:个人 pet:宠物 plane:飞机 others:其他)
reMark String 备注
installTime String 安装时间

正确返回示例:

{
  "code": 0,
  "message": "成功",
  "result": [
    {
	"carId": 5750,
	"bindUserAccount": "huangwm",
	"carOwnerName": "测试车辆3",
	"carOwnerPhone": null,
	"cardType": "IDCARD",
	"carOwnerIdCard": "12312312112321",
	"carPlateNumber": "TX12321",
	"carModel": "TW12321",
	"carEngineNumber": "qas123",
	"carFrameNumber": "qwe123",
	"carType": "NEWCAR",
	"overallSum": 18000,
	"loanMonth": "12",
	"loanSum": 15000,
	"salesman": "wwq",
	"homeAddress": "测试地址1",
	"workAddress": "测试地址2",
	"sex": 1,
	"carColor": "蓝色",
	"loanDate": "2018-08-15",
	"repaymentType": "STAGES",
	"imeis": "201803161655008,201804271524201",
	"createTime": "2018-05-23 19:03:56",
	"updateTime": "2018-05-23 19:03:56",
	"equtList": [
        {
          "imei": "201803161655008",
          "deviceName": "ET110-55008",
          "activationTime": null,
          "expiration": null,
          "mcType": "ET110",
          "sim": "",
          "driverPhone": null,
          "vehicleIcon": "automobile",
          "equipType": "WIRED",
          "mcTypeUseScope": "electromobile",
          "reMark": null,
          "installTime": "2018-05-22"
        },
        {
          "imei": "201804271524201",
          "deviceName": "ET100-24201",
          "activationTime": null,
          "expiration": null,
          "mcType": "ET100",
          "sim": "",
          "driverPhone": null,
          "vehicleIcon": "automobile",
          "equipType": "WIRED",
          "mcTypeUseScope": "electromobile",
          "reMark": null,
          "installTime": "2018-05-22"
        }
      ]
    }
	......
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}

查询账号下的所有车辆信息

接口说明

通过车辆编号获取车辆详细信息。

请求URL

本接口通用参数里面 method的值为jimi.open.car.device.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 账号(包含子级账号)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
carId String 车辆编号
carOwnerName String 车主名称
carPlateNumber String 车牌号
carOwnerPhone String 车主手机号
cardType String 证件类型[IDCARD-身份证,PASSPORT-护照]
carOwnerIdCard String 证件号码
carModel String 车型
carFrameNumber String 车架号
carEngineNumber String 发动机号
carType String 车辆类型[NEWCAR-新车;USEDCAR-二手车;IMPORTEDCAR-进口车]
loanMonth Integer 贷款期限
loanSum Double 贷款额度
overallSum Double 总评额度
salesman String 业务员
homeAddress String 家庭住址
workAddress String 工作单位地址
sex String 性别[0-女,1-男]
carColor String 车辆颜色
loanDate String 贷款日期,格式:yyyy-MM-dd
repaymentType String 还款方式,[STAGES-等额本金, ONCE-先息后本]
imeis String 安装设备IMEI,多个用逗号隔开
createTime String 创建时间
updateTime String 修改时间

正确返回示例:

{
  "code": 0,
  "message": "成功",
  "result": [
	{
	  "carId": 5756,
	  "carOwnerName": "测试车主",
	  "carOwnerPhone": "12356456456465456456",
	  "cardType": "IDCARD",
	  "carOwnerIdCard": "4526011995132565221",
	  "carPlateNumber": "TX85512",
	  "carModel": "Tc1",
	  "carEngineNumber": "axsq123456",
	  "carFrameNumber": "axsq12345623",
	  "carType": "NEWCAR",
	  "overallSum": 18000,
	  "loanMonth": "12",
	  "loanSum": 15000,
	  "salesman": "wwq",
	  "homeAddress": "测试地址1",
	  "workAddress": "测试地址2",
	  "sex": 1,
	  "carColor": "蓝色",
	  "loanDate": "2018-08-15",
	  "repaymentType": "STAGES"
	  "imeis": null,
	  "createTime": "2018-05-23 19:03:56",
	  "updateTime": "2018-05-23 19:03:56"
	},
	{
	  "carId": 5750,
	  "carOwnerName": "测试车辆3",
	  "carOwnerPhone": null,
	  "cardType": "IDCARD",
	  "carOwnerIdCard": "12312312112321",
	  "carPlateNumber": "TX12321",
	  "carModel": "TW12321",
	  "carEngineNumber": "qas123",
	  "carFrameNumber": "qwe123",
	  "carType": "NEWCAR",
	  "overallSum": 18000,
	  "loanMonth": "12",
	  "loanSum": 15000,
	  "salesman": "wwqw",
	  "homeAddress": "测试地址3",
	  "workAddress": "测试地址4",
	  "sex": 1,
	  "carColor": "蓝色",
	  "loanDate": "2018-08-15",
	  "repaymentType": "STAGES"
	  "imeis": "201803161655008,201804271524201",
	  "createTime": "2018-05-22 14:42:59",
	  "updateTime": "2018-05-22 16:24:05"
	},
	.......
   ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}

获取设备支持的指令列表

接口说明

获取指定设备机型支持的指令列表。

请求URL

本接口通用参数里面 method的值为jimi.open.instruction.list

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
id String 指令编码
orderName String 指令名称
orderContent String 指令模板
orderExplain String 指令说明
orderMsg String 提示
isOffLine String 是否支持离线指令 0:否 1:是

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "id": 81,
      "orderName": "SOS设置",
      "orderContent": "SOS,A,{0},{1},{2}#",
      "orderExplain": "SOS号码用于接收报警短信以及接收SOS报警,支持3~20位数字SOS号码设置",
      "orderMsg": "",
      "isOffLine": "1"
    }
	...
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法设备"}

指定设备发送指令

接口说明

给指定设备发送指令。

请求URL

本接口通用参数里面 method的值为jimi.open.instruction.send

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号
inst_param_json String 指令消息json字符串。列如:{"inst_id":"110104","inst_template":"SOS,A,{0},{1},{2}#","params":["13243","1234","12344"],"is_cover":"false"}

inst_param_json参数说明

参数名 参数类型 是否必须 默认值 描述
inst_id String 指令编码
inst_template String 指令模板
params Array<string> 指令参数字符串数组
is_cover boolean false 是否覆盖已存在的离线指令
true-覆盖 false-不覆盖

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "发送指令成功",
  "result": null
}
                    

错误返回示例:

{"code": 12005,"message": "下发指令失败,结果码:226","result": null}

获取设备指令结果

接口说明

获取设备已发送的指令结果。

请求URL

本接口通用参数里面 method的值为jimi.open.instruction.result

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
codeId String 指令编码
code String 发送的指令
content String 设备回复内容
isExecute String 指令状态0:执行失败,1:执行成功,3:待发送,4:已取消
sendTime String 发送时间 格式:yyyy-MM-dd HH:mm:ss
sender String 发送者
receiveDevice String 接收的imei号
isOffLine String 0在线 1离线
idsource String 指令描述

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "codeId": "99",
      "code": "status#",
      "content": "参数错误",
      "isExecute": "4",
      "sendTime": "2017-06-19 11:46:00",
      "sender": "jimitest",
      "receiveDevice": "868120111111117",
      "isOffLine": "1",
      "idsource": "自定指令"
    }
  ]
}
                    

错误返回示例:

{"code":xxx,"message":"非法设备"}

为设备IMEI创建电子围栏

接口说明

为设备imei创建一个电子围栏信息

请求URL

本接口通用参数里面method的值为jimi.open.device.fence.create

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号
fence_name String 围栏名称
alarm_type String 告警类型(in/out/in,out)
report_mode String 报警上报方式,0:仅GPRS,1:SMS+GPRS
alarm_switch String 围栏报警开关(ON开启/OFF关闭)
lng String 经度
lat String 纬度
radius String 围栏半径(1~9999;单位:百米)
zoom_level String 缩放级别(3-19)
map_type String 地图类型(baidu/google)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据,成功后返回围栏序号

正确返回示例:

{
  "code": 0,
  "message": "创建电子围栏成功",
  "result": "5"
}
                    

错误返回示例:

{
  "code": 41003,
  "message": "设备不在线,无法创建电子围栏",
  "result": null
}
                    

为设备IMEI删除电子围栏

接口说明

为设备imei删除一个电子围栏信息

请求URL

本接口通用参数里面method的值为jimi.open.device.fence.delete

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号
instruct_no String 电子围栏指令序号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "删除电子围栏成功",
  "result": "5"
}
                    

错误返回示例:

{
  "code": 41003,
  "message": "设备不在线,无法删除电子围栏",
  "result": null
}
                    

获取设备电子围栏信息

接口说明

查询设备已设置的电子围栏记录

请求URL

本接口通用参数里面method的值为jimi.open.device.fence.get

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
imei String 设备IMEI
fenceName String 电子围栏名称
instructNo String 电子围栏指令序号
alarmType String 进出报警类型in,out
radius String 半径
mapType String 地图类型,baidu/google
zoomLevel String 缩放级别
lat double 与地图类型对应的纬度
lng double 与地图类型对应的经度
gpsLat double 原始GPS纬度坐标
gpsLng double 原始GPS经度坐标
instructCode int 设备返回码,参考指令错误码

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": [
    {
      "imei": "456789123456801",
      "fenceName": "11111111111",
      "instructNo": "1",
      "alarmType": "in,out",
      "radius": "5344",
      "mapType": "baidu",
      "zoomLevel": "12",
      "lat": 22.6969,
      "lng": 113.988498,
      "gpsLat": 22.693452554454886,
      "gpsLng": 113.97709023148917,
	  " instructCode":255
    },
    {
      "imei": "456789123456801",
      "fenceName": "1111223",
      "instructNo": "2",
      "alarmType": "in,out",
      "radius": "4191",
      "mapType": "baidu",
      "zoomLevel": "12",
      "lat": 22.613654,
      "lng": 113.998272,
      "gpsLat": 22.610193418762954,
      "gpsLng": 113.98684308538836,
	 " instructCode":255
    }]
}

                    

创建平台围栏

接口说明

为设备imei创建一个平台围栏信息(一个imei最多创建20个平台围栏;围栏名称不可包含特俗字符;围栏名称不可重复)

请求URL

本接口通用参数里面method的值为jimi.open.plat.fence.create

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备imei号
fence_name String 围栏名称
fence_shape String circle 围栏形状(只能为circle——圆)
status String in-进围栏,out-出围栏,all-进出都有
lng double 经度
lat double 纬度
radius double 围栏半径(200~999900;单位:米)
map_type String 地图类型(baidu/google)
scale int 缩放级别(3~19)

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据,成功后返回围栏序号

result参数列表:

参数 类型 描述
imei String 设备IMEI
fenceName String 电子围栏名称
fenceId String 平台围栏ID

正确返回示例:

{
  "code": 0,
  "message": "成功",
  "result": {
      "imei": "456789123456801",
      "fenceName": "11111111111",
      "fenceId": "0f566e9d9e0b4a2499832cd158b0c63b",
    }
}
                    

错误返回示例:

{
  "code": 12008,
  "message": "围栏超过创建个数",
  "result": null
}
                    

删除平台围栏

接口说明

删除平台围栏信息

请求URL

本接口通用参数里面method的值为jimi.open.plat.fence.delete

HTTP请求方式

POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
fence_id String 围栏ID

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

正确返回示例:

{
  "code": 0,
  "message": "成功",
  "result": null
}
                    

错误返回示例:

{
  "code": 12012,
  "message": "删除围栏失败",
  "result": null
}
                    

wifi、基站定位解析接口

接口说明

按用户名下总设备数(按每10次/天/设备,包含下级所有子账户)总数配置限额。
接口返回的坐标系为WGS84

请求URL

本接口通用参数里面 method的值为jimi.lbs.address.get

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
imei String 设备Imei号
lbs String (wifi和LBS至少一项)
LBS信息组(mcc,mnc,lac,cell,rssi)最多7个,每组五项,每一项不能为空,顺序不能改变
MCC移动国家代码,中国460
MNC移动网络码,移动0
LAC基站分区信息, 2312 23222
CELL基站编码23222
RSSI信号量-70
wifi String (wifi和LBS至少一项)
mac1,rssi1| mac2,rssi2
mac地址,没有中间的冒号,大小写不敏感, rssi信号强度

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
lng String 经度(WGS84坐标系)
lat String 纬度(WGS84坐标系)
accuracy String 精准度,值越大越好

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "lat": 40.65615416521587,
    "lng": 109.89894039833524,
    "accuracy": 0
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法设备"}

消息推送接口

接口说明

第三方平台提供消息接收的url地址,几米平台调用该url请求发送数据

消息服务列表

消息服务 描述
jimi.push.device.alarm 设备告警数据

推送的内容如下:

参数 类型 描述
msgType String 消息类型,对应消息服务列表
data String 消息内容,具体内容与msgType对应

告警推送 (jimi.push.device.alarm)

推送策略:当告警推送失败时,会将失败告警记录下,第二天上午9点定时重推一次,如果还是失败则丢弃。

推送的告警属性如下:

参数 类型 描述
imei String 设备imei
deviceName String 设备名称
alarmType String 告警类型
alarmName String 告警名称
lat String 纬度(WGS84坐标系)
lng String 经度(WGS84坐标系)
alarmTime String 告警时间,格式(yyyy-MM-dd HH:mm:ss)
address String 告警地址(未解析成功时返回null)

消息示例:

  https://ip:port/xxx?msgType=jimi.push.device.alarm&data={"imei":"868120145212312","deviceName":"868120145212312","alarmType":"2","alarmName":"测试","lat":40.65615416521587,"lng":109.89894039833524,"alarmTime":"2017-05-08 12:00:00","address":"北京市xxx路"}
  
  参数:
  "msgType": "jimi.push.device.alarm",
  "data": {
    "imei": "868120145233604",
    "deviceName": "868120145233604",
    "alarmType": "2",
    "alarmName": "断电报警",
    "lat": 40.65615416521587,
    "lng": 109.89894039833524,
    "alarmTime": "2017-05-08 12:00:00"
    "address": "北京市xxx路"
  }
                    

附:设备告警类型

参数 描述
1 SOS求救
2 断电报警
3 震动报警
4 进入电子围栏(终端)
5 离开电子围栏(终端)
6 超速报警
9 位移报警
10 进卫星盲区报警
11 出卫星盲区报警
12 开机报警
13 卫星第一次定位报警
14 外电低电报警
15 外电低电保护报警
16 换卡报警
17 关机报警
18 外电低电保护后飞行模式报警
19 拆卸报警
20 门报警
22 声控报警
23 伪基站报警
24 开盖报警
25 内部电池低电报警
32 进入深度休眠报警
50 拔出报警
90 低电报警
128 后视镜震动报警
192 非法移动告警
194 后备电池电量不足告警
195 越界告警
1001 ACC关闭
1002 ACC开启
1003 离线告警
1004 停留告警
1005 逗留告警
1006 进入围栏
1007 离开围栏
1008 长时间不进围栏
1009 长时间不出围栏
1010 黑车围栏告警
1011 超速报警(平台)
1012 风险点告警

查询状态统计

接口说明

查询账号下设备状态信息。

请求URL

本接口通用参数里面 method的值为jimi.open.report.state

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 查询账号(包含子级账号)
state String 设备状态,[0-离线,1-在线,2-行驶,3-静止,不填表示全部状态]
subordinated String false 是否包含下级设备,[false-否,true-是,不填默认false]
paidOff String false 是否包含已还清车辆,[false-否,true-是,不填默认false]
imeis String 设备IMEI号,多个用逗号隔开,最大查询1000个
pageNo Integer 1 当前页,默认1
pageSize Integer 20 当前页大小,默认20,最大1000

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
page Integer 当前页
size Integer 当前页查询大小
number Integer 返回数据总数
lastPage Boolean 是否为最后一页
items Array 返回数据列表

items参数列表:

参数 类型 描述
carId String 车辆ID
carOwnerName String 车辆名称
carPlateNumber String 车牌号
imei String IMEI号
orgName String 所属部门
deviceName String 设备名称
salesman String 业务员
deviceType String 设备机型
carEngineNumber String 车型
carFrameNumber String 车架号
status String 状态,(0-离线,1-在线,2-行驶,3-静止)
lat String 经度
lng String 纬度
date String 时间
lngLat String 经度/纬度
addr String 详细地址
times Integer 时长,单位秒
speed Integer 速度
gpsTime String 定位时间
hbTime String 心跳时间

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "page": 1,
    "size": 20,
    "number": 2,
    "lastPage": true,
    "items": [
      {
        "carId": "",
        "carOwnerName": "",
        "carPlateNumber": "",
        "imei": "201808221000079",
        "carOwnerPhone": "",
        "orgName": "ES003",
        "deviceName": "GT300-00079",
        "salesman": "",
        "deviceType": "GT300",
        "carEngineNumber": "",
        "carFrameNumber": "",
        "status": "0",
        "lat": 22.540203,
        "lng": 113.91854,
        "date": "2018-08-22 15:04:54",
        "lngLat": "113.91854/22.540203",
        "addr": "广东省深圳市南山区红花路19号,南山区文体中心西北63米",
        "times": 444446,
        "speed": 0,
        "gpsTime": "2018-08-22 15:07:56",
        "hbTime": "2018-08-22 15:04:54"
      },
      {
        "carId": 46049,
        "carOwnerName": "BB",
        "carPlateNumber": "BB-02",
        "imei": "201808221000012",
        "carOwnerPhone": "13812345678",
        "orgName": "ES001",
        "deviceName": "GT230-00012",
        "salesman": "李四8",
        "deviceType": "GT230",
        "carEngineNumber": "123456796",
        "carFrameNumber": "123456796",
        "status": "0",
        "lat": 22.540203,
        "lng": 113.91854,
        "date": "2018-08-22 15:05:34",
        "lngLat": "113.91854/22.540203",
        "addr": "广东省深圳市南山区红花路19号,南山区文体中心西北63米",
        "times": 444407,
        "speed": 0,
        "gpsTime": "2018-08-22 15:07:56",
        "hbTime": "2018-08-22 15:05:34"
      },
	  ..........
    ]
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}

查询电量过低统计

接口说明

查询账号下设备电量信息。

请求URL

本接口通用参数里面 method的值为jimi.open.report.lowbattery

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 查询账号(包含子级账号)
power Integer 查询电量低于百分比值,只能输入[10,20,30,40,50,60,70,80,90,100]
subordinated String false 是否包含下级设备,[false-否,true-是,不填默认false]
paidOff String false 是否包含已还清车辆,[false-否,true-是,不填默认false]
deviceType String 设备机型
pageNo Integer 1 当前页,默认1
pageSize Integer 20 当前页大小,默认20,最大10000

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
page Integer 当前页
size Integer 当前页查询大小
number Integer 返回数据总数
lastPage Boolean 是否为最后一页
items Array 返回数据列表

items参数列表:

参数 类型 描述
carId String 车辆ID
carOwnerName String 车辆名称
carPlateNumber String 车牌号
carOwnerPhone String 车主手机号
imei String IMEI号
orgName String 所属部门
deviceName String 设备名称
salesman String 业务员
deviceType String 设备机型
carEngineNumber String 车型
carFrameNumber String 车架号
power Integer 电量百分比值

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "page": 2,
    "size": 20,
    "number": 14,  //当前页查询数量
    "lastPage": true,  //是否为最后一页
    "items": [
      {
        "carId": 46053,
        "carOwnerName": "CC",
        "carPlateNumber": "CC-03",
        "imei": "201808221000066",
        "carOwnerPhone": "13812345678",
        "orgName": "ES002",
        "deviceName": "GT300-00066",
        "salesman": "李四16",
        "deviceType": "GT300",
        "carEngineNumber": "123456804",
        "carFrameNumber": "123456804",
        "power": 5
      },
      {
        "carId": "",
        "carOwnerName": "",
        "carPlateNumber": "",
        "imei": "201808221000067",
        "carOwnerPhone": "",
        "orgName": "ES002",
        "deviceName": "GT300-00067",
        "salesman": "",
        "deviceType": "GT300",
        "carEngineNumber": "",
        "carFrameNumber": "",
        "power": 5
      },
	  ..........
    ]
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}

查询告警总览统计

接口说明

查询账号下设备告警总览信息。

请求URL

本接口通用参数里面 method的值为jimi.open.report.alarm

HTTP请求方式

GET/POST

请求参数

(1)通用参数
    参见:通用参数

(2)私有参数
    

参数名 参数类型 是否必须 默认值 描述
access_token String 访问令牌,表明其是一个合法第三方
account String 查询账号(包含子级账号)
startTime String 开始时间,格式为yyyy-MM-dd HH:mm:ss
endTime String 结束时间,格式为yyyy-MM-dd HH:mm:ss
subordinated String false 是否包含下级设备,[false-否,true-是,不填默认false]
paidOff String false 是否包含已还清车辆,[false-否,true-是,不填默认false]
imeis String 设备IMEI号,多个用逗号隔开,最大查询1000个
pageNo Integer 1 当前页,默认1
pageSize Integer 20 当前页大小,默认20

返回值

参数 类型 描述
code Int 返回码:
0: 正确返回
其它: 失败。参考错误码说明
message String 如果code不为0,会有相应的错误信息提示
result String 返回的数据

result参数列表:

参数 类型 描述
page Integer 当前页
size Integer 当前页查询大小
number Integer 返回数据总数
lastPage Boolean 是否为最后一页
items Array 返回数据列表

items参数列表:

参数 类型 描述
carId String 车辆ID
carOwnerName String 车辆名称
carPlateNumber String 车牌号
imei String IMEI号
orgName String 所属部门
salesman String 业务员
deviceType String 设备机型
sos Integer SOS求救告警
cutPower Integer 断电告警
vibration Integer 震动告警
enterTerminalGeozone Integer 进入电子围栏告警
exitTerminalGeozone Integer 离开电子围栏告警
overspeed Integer 超速报警
movement Integer 位移告警
blindAreaEnter Integer 进卫星盲区报警
blindAreaExit Integer 出卫星盲区报警
bootingNotification Integer 开机报警
firstFixNotification Integer 卫星第一次定位报警
lowExternalPower Integer 外电低电报警
lowPowerProtection Integer 外电低电保护报警
simCardChange Integer 换卡报警
powerOff Integer 关机报警
airplaneModeAfterLowPowerProtection Integer 外电低电保护后飞行模式告警
disassembly Integer 拆卸告警
doorAlarm Integer 门告警
voice Integer 声控告警
pseudoBaseStation Integer 伪基站告警
openCoverAlarm Integer 开盖告警
lowPowerAlarm Integer 内部电池低电
sleepAlarm Integer 进入深度睡眠告警
lowPower Integer 低电告警
dvrVibration Integer 后视镜震动告警
overspeedDVR Integer 超速告警(DVR)
rapidAcceleration Integer 急加速告警
rapidDeceleration Integer 急减速告警
sharpTurn Integer 急转弯告警
carCrash Integer 撞车告警
illegalMobileAlert Integer 非法移动告警
insufficientBatteryBackupAlert Integer 后备电池电量不足告警
overStepAlert Integer 越界告警
exitGeozone Integer 离开围栏告警
enterGeozone Integer 进入围栏告警
offline Integer 离线告警
accOpen Integer ACC开启告警
accShutdown Integer ACC关闭告警
longtimeNotOutFence Integer 长时间不出围栏告警
longtimeNotIntoFence Integer 长时间不进围栏告警
lingerAlert Integer 逗留告警
stayAlert Integer 停留告警
sensitiveAreasFence Integer 黑车区域围栏告警
overspeedPlatform Integer 超速报警
separationAlarm Integer 设备分离

正确返回示例:

{
  "code": 0,
  "message": "success",
  "result": {
    "page": 1,
    "size": 20,
    "number": 20,
    "lastPage": false,
    "items": [
      {
        "carId": 46047,
        "carOwnerName": "AA",
        "carPlateNumber": "AA-03",
        "imei": "201808221000004",
        "orgName": "测试部门",
        "salesman": "李四4",
        "deviceType": "GT230",
        "sos": 0,
        "cutPower": 0,
        "vibration": 0,
        "enterTerminalGeozone": 0,
        "exitTerminalGeozone": 0,
        "overspeed": 0,
        "movement": 0,
        "blindAreaEnter": 0,
        "blindAreaExit": 0,
        "bootingNotification": 0,
        "firstFixNotification": 0,
        "lowExternalPower": 0,
        "lowPowerProtection": 0,
        "simCardChange": 0,
        "powerOff": 0,
        "airplaneModeAfterLowPowerProtection": 0,
        "disassembly": 0,
        "doorAlarm": 0,
        "voice": 0,
        "pseudoBaseStation": 0,
        "openCoverAlarm": 0,
        "lowPowerAlarm": 0,
        "sleepAlarm": 0,
        "lowPower": 0,
        "dvrVibration": 0,
        "overspeedDVR": 0,
        "rapidAcceleration": 0,
        "rapidDeceleration": 0,
        "sharpTurn": 0,
        "carCrash": 0,
        "illegalMobileAlert": 0,
        "insufficientBatteryBackupAlert": 0,
        "overStepAlert": 0,
        "exitGeozone": 4,
        "enterGeozone": 5,
        "offline": 1,
        "accOpen": 0,
        "accShutdown": 0,
        "longtimeNotOutFence": 4,
        "longtimeNotIntoFence": 4,
        "lingerAlert": 0,
        "stayAlert": 3,
        "sensitiveAreasFence": 24,
        "overspeedPlatform": 0,
        "separationAlarm": 0
      },
      {
        "carId": "",
        "carOwnerName": "",
        "carPlateNumber": "",
        "imei": "201808221000010",
        "orgName": "测试部门",
        "salesman": "",
        "deviceType": "GT230",
        "sos": 0,
        "cutPower": 0,
        "vibration": 0,
        "enterTerminalGeozone": 0,
        "exitTerminalGeozone": 0,
        "overspeed": 0,
        "movement": 0,
        "blindAreaEnter": 0,
        "blindAreaExit": 0,
        "bootingNotification": 0,
        "firstFixNotification": 0,
        "lowExternalPower": 0,
        "lowPowerProtection": 0,
        "simCardChange": 0,
        "powerOff": 0,
        "airplaneModeAfterLowPowerProtection": 0,
        "disassembly": 0,
        "doorAlarm": 0,
        "voice": 0,
        "pseudoBaseStation": 0,
        "openCoverAlarm": 0,
        "lowPowerAlarm": 0,
        "sleepAlarm": 0,
        "lowPower": 0,
        "dvrVibration": 0,
        "overspeedDVR": 0,
        "rapidAcceleration": 0,
        "rapidDeceleration": 0,
        "sharpTurn": 0,
        "carCrash": 0,
        "illegalMobileAlert": 0,
        "insufficientBatteryBackupAlert": 0,
        "overStepAlert": 0,
        "exitGeozone": 5,
        "enterGeozone": 4,
        "offline": 2,
        "accOpen": 0,
        "accShutdown": 0,
        "longtimeNotOutFence": 4,
        "longtimeNotIntoFence": 5,
        "lingerAlert": 0,
        "stayAlert": 4,
        "sensitiveAreasFence": 16,
        "overspeedPlatform": 0,
        "separationAlarm": 0
      },
	  ...........
    ]
  }
}
                    

错误返回示例:

{"code":xxx,"message":"非法用户"}