司南烽火
  1. 对外API接口-设备相关
司南烽火
  • 烽火
    • STOMP订阅
    • 设备接口
      • 新增设备
      • 批量新增设备
      • 更新设备信息
      • 保存设备
      • 批量导入设备
      • 获取已绑定设备稳定性
      • 获取实时/离线位置信息
      • 按SN号查询设备详情
      • 设备删除接口
      • 获取设备实时状态信息
      • 列表查询
      • 未绑定设备列表
      • 导入模板下载
      • 按SN号查询未绑定设备详情
      • 设备自定义状态信息查询
      • 获取A500设备运行状态列表
      • 批量导出未绑定设备
      • 批量导出设备运行数据
      • 当前列表在线离线设备数
      • 获取未绑定设备的在线离线数
    • 设备组接口
      • 新增或更新设备组信息
      • 删除设备组
      • 根据组ID查询设备组信息
      • 根据设备SN查询设备组信息
      • 根据设备组名称查询设备组信息
      • 设备绑定设备组
      • 设备解绑设备组
      • 查询公司下的设备组列表信息
      • 查询设备组下的设备列表信息
    • 设备远程管理
      • 获取设备网络传输参数
      • 获取终端解算参数
      • 获取数据上报频率和工作模式参数[旧指令]
      • 获取设备远程升级记录
      • 获取工作模式参数
      • 下发工作模式命令
      • 下发终端解算命令
      • 下发网络传输配置命令
      • 下发重启命令
      • 下发恢复出厂设置命令
      • 下发在线升级命令
      • 关闭日志透传
      • 开启日志透传
      • 日志透传开关
      • 下发模式切换和上报频率命令[旧指令]
      • 获取设备省点模式参数
      • 获取设备阈值设置参数
      • 下发省电模式设置命令
      • 下发阈值参数设置命令
    • 服务日志接口
      • 查询服务日志列表
    • 公司接口
      • 公司列表
    • 统计接口
      • 设备新增数统计接口(无时间参数)
      • 功能使用次数统计接口
    • 产品固件接口
      • 产品固件查看日志
      • 获取受支持的固件版本
    • 产品列表接口
      • 获取产品定义列表
    • App接口[新]
      • APP分组接口
        • 设备批量编辑APP设备组
        • APP新建分组
        • APP编辑分组
        • APP删除分组
        • APP分组详情
        • 获取个人用户的分组列表
        • 获取分组下相应设备列表
        • 获取分组下相应设备列表[未分页]
      • APP设备远程管理
        • 获取终端解算参数
        • 获取数据上报频率,工作模式参数[旧指令]
        • 获取工作模式设置参数
        • 获取设备网络传输参数
        • 下发网络传输配置命令
        • 下发模式切换命令
        • 下发模式切换命令[旧设备]
        • 下发重启命令
        • 下发恢复出厂设置命令
        • 下发在线升级命令
        • 下发终端解算命令
        • 获取设备远程升级记录
      • APP设备接口
        • 获取设备实时状态信息
        • 设备删除接口
        • 按SN号查询设备详情
        • 获取实时/离线位置信息
        • 更新设备信息
        • 批量新增设备
        • 列表查询
      • APP产品固件接口
        • 获取产品定义列表
        • 产品固件查看日志
        • 获取受支持的固件版本
      • APP设备组接口
        • 新增或更新设备组信息
        • 删除设备组
        • 查询公司下的设备组列表信息
        • 查询设备组下的设备列表信息
    • APP接口[旧]
      • 获取设备网络传输参数
      • 网络传输配置下发
      • 获取产品系列列表
      • 通过设备系列获取设备列表(支持分页)
      • deviceOwnList
      • deviceBatchDel
      • deviceBatchAdd
      • deviceBatchEdit
      • deviceDetail
      • getDeviceAData
      • getSendCmd
      • groupAdd
      • groupEdit
      • groupDel
      • groupIdDetail
      • groupList
      • groupIdList
      • deviceUpgrade
      • deviceProductPackage
      • deviceRestart
      • deviceShare
      • deviceTransparent
      • batchEditGroups
      • cloudGroupList
    • 对外API接口-设备相关
      • 接口对接文档
      • 新增设备
        POST
      • 删除设备
        POST
      • 设备状态信息
        POST
      • TCP网络传输参数配置命令
        POST
    • 对外API接口-设备远程控制
      • 设备远程控制文档
      • 在线升级
      • TCP网络传输参数配置命令
      • Ntrip Server网络传输配置命令
      • Ntrip Client网络传输配置命令
      • MQTT 网络传输配置命令
      • 导航云网络传输配置命令
      • 电台网络传输配置命令
    • 数据分析
      • 数据分析图表展示
      • 数据分析导出
  1. 对外API接口-设备相关

接口对接文档

获取APPID和KEY#

咨询管理员获取

生成请求参数#

例如设备新增接口
/api/device/add
https://app.apifox.com/link/project/2885830/apis/api-174743742
使用下APPID和Secret为例
SECRET: 97a17e8597b94720c71b217216565d43
APPID: 1719389634415

生成请求body#

所需的参数是sn和name,分别代表设备SN编号和设备名称
{"name":"A31004443","sn":"A31004443"}

请求body进行加密处理#

通过MD5加密工具,将body的json字符串和SECRET拼接,进行加密
加密前:{"name":"A31004443","sn":"A31004443"}97a17e8597b94720c71b217216565d43
加密后:
072200af77d245e3b3f75c8449fecafb
image.png
或者使用MD5Util包[附录1]
MD5Util.md5Jdk(jsonStr + "97a17e8597b94720c71b217216565d43")
得出的结果如下
072200af77d245e3b3f75c8449fecafb
将加密结果acceptKey和appid放在请求的header中
image.png
然后将请求的Body进行Base64编码
{"name":"A31004443","sn":"A31004443"}
获得
eyJuYW1lIjoiQTMxMDA0NDQzIiwic24iOiJBMzEwMDQ0NDMifQ==
并组装成json对象放在请求的Body中
{
    "data": "eyJuYW1lIjoiQTMxMDA0NDQzIiwic24iOiJBMzEwMDQ0NDMifQ=="
}
image.png

附录1#

MD5Util.java
import java.io.*;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Util {
	/**
	 * 将byte数组转化为16进制输出
	 *
	 * @param bytes
	 * @return
	 */
	public static String convertByteToHexString(byte[] bytes) {
		String result = "";
		for (int i = 0; i < bytes.length; i++) {
			int temp = bytes[i] & 0xff;
			String tempHex = Integer.toHexString(temp);
			if (tempHex.length() < 2) {
				result += "0" + tempHex;
			} else {
				result += tempHex;
			}
		}
		return result;
	}

	/**
	 * MD5加密
	 *
	 * @param message
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	public static String md5Jdk(String message) throws UnsupportedEncodingException {
		String temp = "";
		try {
			MessageDigest md5Digest = MessageDigest.getInstance("MD5");
			message.getBytes();
			byte[] encodeMD5Digest = md5Digest.digest(message.getBytes("UTF-8"));
			temp = convertByteToHexString(encodeMD5Digest);
		} catch (NoSuchAlgorithmException e) {
			e.printStackTrace();
		}
		return temp;
	}
}
修改于 2024-06-26 08:50:55
上一页
cloudGroupList
下一页
新增设备
Built with