首页 / 文档中心 / 设备接口文档 / 接口说明(新版接口)

接口说明(新版接口)

设备接口文档 · 新版接口

注意 非付费客户需要自己看文档,无技术支持.

付费客户请联系销售经理获得技术支持

接口文档为通用文档, 具体的产品功能 ,请参考具体的产品规格书或者详情页描述, 不能以接口文档为参考

英文版本请访问: [http://endoc.xstrive.com/web/#/2/2](http://endoc.xstrive.com/web/#/2/2)

一. 签名规则 (token生成)

  1. 签名使用md5加密生成token参数进行传递校验
  2. 秘钥 secret 默认为 f6fdffe48c908deb0f4c3bd36c032e72

    • 可通过管理页面 【系统配置】==》【接口认证】进行网页配置

    • 可通过接口 /xsw/api/modUserSecret 进行修改

  3. 加密串按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":"非法请求"
}

四. 老接口切换为新接口规则

  1. 新接口统一添加前缀 /xsw
  2. auth参数去掉。 比如url参数里面的auth 可以去掉。 body里面的auth值必须去掉
    例如:
    /xsw/control 接口: url参数里面的auth 可以去掉
  3. 返回值,由原来的字符串统一改为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

这份文档没解决你的问题?联系我们,技术工程师直接对接。

询价咨询

填写这几项,我们 1 个工作日内回传报价与方案

点「生成询价邮件」会打开你的邮件客户端,正文已自动填好;电脑没配邮件客户端,就点「复制内容」粘到网页邮箱发送,收件人 sunshiyang@xstrive.com。