接口说明(新版接口)
注意 非付费客户需要自己看文档,无技术支持.
付费客户请联系销售经理获得技术支持
接口文档为通用文档, 具体的产品功能 ,请参考具体的产品规格书或者详情页描述, 不能以接口文档为参考
英文版本请访问: [http://endoc.xstrive.com/web/#/2/2](http://endoc.xstrive.com/web/#/2/2)
一. 签名规则 (token生成)
- 签名使用md5加密生成token参数进行传递校验
-
秘钥 secret 默认为 f6fdffe48c908deb0f4c3bd36c032e72
-
可通过管理页面 【系统配置】==》【接口认证】进行网页配置

-
可通过接口 /xsw/api/modUserSecret 进行修改
-
-
加密串按Url参数词典序进行排序通过&符号进行拼接。如果参数通过body传递,body里面的参数不进行字符串拼接。
参数词典序排序JS代码示例:keys = [key1,key2,...,secret,t]; keys = keys.sort();
其它语言请自行查阅API
示例:参考下面的第五章节示例代码
二. 请求URL固定携带参数
默认请求 content-type 设置
header[‘content-type’] = application/x-www-form-urlencoded
带body参数的如无特殊备注 content-type 为
header[“content-type”] = application/json; charset=utf-8
如果是跨域请求请设置为 header[“content-type”] = text/plain; charset=utf-8
上传文件时 content-type 为
header[“content-type”] = “multipart/form-data”
| 参数名 | 描述 | 类型 | 必传 | 附加说明 |
|---|---|---|---|---|
| token | 签名串 | String | Y | |
| t | 当前时间戳 | Number | Y | 单位:秒 |
- 本地接口地址
使用搜索工具查找设备IP根据IP进行访问,比如设备IP为: 192.168.0.15,那么接口地址为:http://192.168.0.15 - 远程访问接口地址:
需要在 https://platform.xstrive.com/ 注册账号,如已有账号直接登录, 登录后根据序列号绑定设备到设备列表,即可调用远程访问接口: https://live.xstrive.com/序列号/ 其中【序列号】需要替换为你自己设备的序列号
三. 失败统一返回JSON格式
{
"code": Number, // 错误码
"msg": String // 错误信息
}
示例:
{
"code":401, // 401 认证失败需要重新登录,请跳转到登录页
"msg":"非法请求"
}
四. 老接口切换为新接口规则
- 新接口统一添加前缀 /xsw
- auth参数去掉。 比如url参数里面的auth 可以去掉。 body里面的auth值必须去掉
例如:
/xsw/control 接口: url参数里面的auth 可以去掉 - 返回值,由原来的字符串统一改为Json格式
五. 参数加密Token生成方法参考
import md5 from "js-md5";
const mySecret = "f6fdffe48c908deb0f4c3bd36c032e72"
export const md5Params = (params) => {
params.t = (new Date().getTime() / 1000).toFixed(0)
let str = "";
let keys = Object.keys(params);
keys.push("secret");
keys = keys.sort(); // 对参数 key 进行排序
keys.forEach((key: string) => {
if (key == "token") {
return;
}
if (str != "") {
str += "&";
}
if (key == "secret") {
str += `${key}=${mySecret}`;
} else {
str += `${key}=${params[key]}`;
}
});
params.token = md5(str);
console.log("md5: ", str, params.token)
return params;
};
// 使用样例: 获取录像列表
export const GetRecordList = () => {
const args = {
beginTime: 1673193600000,
endTime: 1673279999999,
channel: 0,
}
const newArgs = md5Params(args)
// md5前拼接字符串 (除token外的所有参数)
// beginTime=1673193600000&channel=0&endTime=1673279999999&secret=f6fdffe48c908deb0f4c3bd36c032e72&t=1673255651
// 生成 token: 80c192912ea8c97523876b47cf2658a1
const reqUrl = `http://192.168.0.15/xsw/api/record/list?beginTime=${newArgs.beginTime}&endTime=${newArgs.endTime}&channel=${newArgs.channel}&t=${newArgs.t}&token=${newArgs.token}`
console.log("reqUrl", reqUrl)
// 最终 reqUrl: http://192.168.0.15/xsw/api/record/list?beginTime=1673193600000&endTime=1673279999999&channel=0&t=1673255651&token=80c192912ea8c97523876b47cf2658a1
}
其中
mySecret 替换为你的秘钥
md5 第三方库:js-md5
token生成测试工具
点击下载 apitool.zip
这份文档没解决你的问题?联系我们,技术工程师直接对接。