README(开发前必看)
公共参数说明
参数 | 类型 | 说明 |
---|---|---|
endpoint | string | 警情报送http服务地址,由第三方平台提供 |
ticket | string | 警情报送签名票据,可由第三方平台指定,也可由平台随机生成 |
X-Signature | string | 报文签名 |
X-Timestamp | string | 报文签名时间戳 |
Monitor-Center-Id | number | 监控中心Id。提交对接申请后,由系统管理员分配给第三方 |
Fire-Unit-Id | number | 防火单位Id。提交对接申请后,由系统管理员分配给第三方 |
Token | string | 接口访问令牌 ,参考【查询接口/获取Token】 |
API返回说明
参数 | 类型 | 说明 |
---|---|---|
code | number | 1-成功,0-失败 |
message | string | 提示信息 |
data | object | 接口返回数据 |
安全认证
http客户端,通过【查询接口/获取Token】得到令牌。客户端发出查询请求时,将Token附加在 http 协议 headers 中,服务端会校验Token是否合法。获取新Token后老Token会立即失效,新Token默认有效期为1小时。
http客户端根据报文内容(可为空字符串)、时间戳和签名票据,生成签名,附加在 http 协议 headers 中(签名参数名:X-Signature,时间戳参数名:X-Timestamp)。服务端根据签名,校验消息来源。
签名算法
示例
报文内容为:
{"facility":{"addrStr":"869662033589802","descr":"无线设备参与联动测试","facilitiesCode":2,"facilitiesModel":"JBF-VH76N","facilitiesModelId":7,"facilitiesType":"无线感烟","facilitiesTypeCode":332,"facilityId":565788,"isWireless":1},"fireUnit":{"address":"北京市海淀区成府路207号","id":75,"latitude":39.999008,"longitude":116.32534,"name":"北大青鸟"},"stat":[{"time":1565838801,"type":6,"typeStr":"故障","val":66,"valStr":"分离故障"}]}
1565838801305
1231
按顺序拼接报文内容、时间戳、签名票据,得到 string1:
{"facility":{"addrStr":"869662033589802","descr":"无线设备参与联动测试","facilitiesCode":2,"facilitiesModel":"JBF-VH76N","facilitiesModelId":7,"facilitiesType":"无线感烟","facilitiesTypeCode":332,"facilityId":565788,"isWireless":1},"fireUnit":{"address":"北京市海淀区成府路207号","id":75,"latitude":39.999008,"longitude":116.32534,"name":"北大青鸟"},"stat":[{"time":1565838801,"type":6,"typeStr":"故障","val":66,"valStr":"分离故障"}]}15658388013051231
对 string1 进行 sha1 签名,得到签名:
20770ba8fc475bf417d27a09b0d2c86c52aebba7
签名算法示例-Java
特别注意事项
名词解释
常见问题
警情类型和警情事件是一对多的关系,例如类型是故障,但事件可能是备电故障、备电故障恢复、分离故障、污染故障等。
报警可以理解为预警,一般是模拟量探测设备的模拟量值超过阈值或低于阈值而发出的预警。例如仪表、剩余电 流式探测器等。
设施同时处于多种状态,例如既有分离故障,又有火警(无线感烟探测器探头和底座分离同时发生了火警)。
数据字典一般不会改变,即使改变也是增加,不会变更已有数据,不会影响已有功能,所以获取一次保存下来就够了。
facilityId是消防云数据库同一个设施类别(网关、控制器、现场部件)的唯一标识,同一设施类别全局唯一。但是同一设施在消防云平台删除后,重新注册facilityId会变。
addrStr是消防设施的标识,对于有线设备,一般内容为“xx机xx-xx”或者“xx机xx-xx xx通道”,例如:“1机 5-4 1通道”,其中“1机”为机器号,“5”为回路号,“4”为部位号,“1通道”为传感器;对于无线设备,内容与印刷在设备上的PSN相同,能唯一标识一个无线设备,例如无线感 烟探测器上印刷有PSN,在消防云平台注册无线感烟探测器时需要填写PSN值。
警情事件大体可分为:“发生类”、“恢复类”、“其他”。如果警情事件名称中包含“恢复”“撤销”“复位”“在线”即为恢复类,除“其他”和“恢复类”都为发生类。
设备默认都处在正常状态,如果设备报出任意发生警情事件即算异常。
从异常恢复到正常有两种方式:
支持
要保持http body 内容原封不动,签名前不要对body编解码(json),不要改变字符串顺序