智慧工地平台数据上传接口
版本编号 | 版本日期 | 说明 |
V1.4 | 2018-09-05 | 增加人员考勤接口,安全帽,温湿度仪 |
接口通讯协议
数据接口采用http/https协议,核心通讯内容采用JSON数据格式。
接口编码说明
接口编码统一用UTF-8
智慧工地平台接口通过ESB模式来管理和简化应用之间的集成,则ESB统一管理的接口返回码有两个:ESB返回码和业务接口返回
码,业务接口返回码由各应用提供,而ESB返回码调用方不是必须获取验证,只有在业务接口返回码获取不到情况下,可以获取出来检查
问题,ESB返回参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
esbStatus | 返回码 | string | 是 | 0:成功,其他:失败 |
esbDescription | 返回信息描述 | string | 是 | 返回信息描述 |
ESB返回码:
返回码 | 含义说明 |
0 | 接口调用成功,并正常返回 |
ESB_111 | ESB调用接口异常 |
ESB_112 | ESB服务异常 |
ESB_113 | ESB服务异常 |
ESB_00X | ESB参数不能为空,如ESB_002:时间戳不能为空 |
ESB_00XX | ESB参数格式有误,如ESB_0022:时间戳格式有误 |
ESB_0XX | ESB验证错误,如ESB_011:ekey有误 |
业务接口返回参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
status | 返回码 | string | 是 | 0:成功,其他:失败 |
description | 返回信息描述 | string | 是 | 返回信息描述 |
业务接口返回码:
返回码 | 含义说明 |
0 | 接口调用成功,并正常返回 |
1000 | 接口异常 |
1001 | 参数无效 |
1002 | 内部接口调用超时 |
重要说明:当调用业务接口成功的时候,status和description一定会返回。当status没有返回的时候,则说明调用业务接口失败,失败原因则由ESB服务拦截和处理,此时,会返回esbStatus和esbDescription。
调用方首先要向平台申请ekey:
ekey:密钥,用于调用方授权访问接口和生成数字签名;
调用方每次请求都需要带上当前北京时间戳systemTime,格式: yyyyMMddHHmmssSSS,服务端需要校验请求的时效性(服务端只处理有效时间范围内的请求,有效时间默认为2分钟,使用相同的ekey,相同的时间戳systemTime对同一个接口不能连续调用两次。每次调用需要以当前时间为准);
调用方每次请求都需要对请求进行签名,具体签名方式如下所示:
本次示例数据:
字段名 | 字段值 |
ekey | 290uc397uc856 |
esbCode | ESB_UCR01001(每个接口方法唯一值) |
systemTime | 20180522164156123 |
其它业务数据 |
数字签名拼接为预处理字符串格式
ekey-esbCode-systemTime (中横线分隔)
本实例字符串为:290uc397uc856-ESB_UCR01001-20180522164156123
sha1 Hash算法对预处理字符串进行加密,得到的结果即为签名后的字符串:426f77da4103b3a80069d250b333e63cf3eb7757
输入参数
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
ekey | 调用密钥 | string | 是 | 密钥,由ESB管理平台提供 |
esbCode | esb接口编号 | string | 是 | 每个接口方法唯一值 |
systemTime | 调用接口的当前时间戳 | string | 是 | 时区:北京时间 格式:yyyyMMddHHmmssSSS |
signature | 数字签名 | string | 是 | |
其他参数 | string | 其他参数也统一为string类型 |
返回参数
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
status | 返回码 | string | 是 | 0:成功,其他:失败 |
description | 结果信息 | string | 是 | 结果信息,如果没有则返回"" |
data | 返回数据 | {}或[] | 返回为Map或List<Map>,具体请参考下面的报文示例 | |
esbStatus | esb返回码 | string | 否 | 0:成功,其他:失败 |
esbDescription | esb描述信息 | string | 否 | 结果描述信息 |
上送报文 | JSON结构,如下示例: { "ekey": "290uc397uc856", "esbCode":"ESB_UCR01001", "systemTime":"20180522164156123", "signature": "426f77da4103b3a80069d250b333e63cf3eb7757", "page": "1", 第几页,从1开始 "perPage": "10", 每页的记录数 "subjectId":"abc1234" 工程ID …… } | |
返回报文 1、返回含list的情况: 若没有数据,total为0,list为[],若status不为0,则data可以不用返回 2、返回不含list的情况: 若没有数据,data为[],若status不为0,data可以不用返回 | JSON格式,如下示例: //返回含list { "status": "0", "description": "", "data": { "total": 2, "list": [ { "name":"韩大宝" , "age":"21" }, { "name":"孙立明" , "age":"19" } ] } } //返回不含list { "status": "0", "description": "", "data": [{ "name":"韩大宝" , "age":"21" }] } | |
3、调用业务接口失败的情况 | { "esbStatus": "ESB_111", "description": "调用远程接口异常" } |
工地现场的考勤数据,包括:设备编号,身份证号,考勤时间,考勤图片,考勤类型等数据通过该接口上传至永川智慧工地平台。本接
口可接收硬件设备直传,也能够接收硬件供应商的服务器转发。但要求硬件供应商在接收到工地现场硬件数据后同步转发。
上传数据前供应商需要取得3H智慧工地管理平台的授权,否则将无法通过接口上传数据。
应用场景
接口地址
http://IP:端口/项目/attendance.rest/uploadData
提交方式
POST
传输方式
Json
数字签名
ekey-esbCode-systemTime,(中横线分隔)
输入参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
ekey | 调用密钥 | string | 是 | 由ESB管理平台提供 |
esbCode | esb接口编号 | string | 是 | ESB_IDS05001 |
systemTime | 调用接口的当前时间戳 | string | 是 | 时区:北京时间 格式:yyyyMMddHHmmssSSS |
signature | 数字签名 | string | 是 | |
serialNo | 设备编号 | string | 是 | |
recordTime | 采集时间 | string | 是 | yyyy-MM-dd HH:mm:ss |
name | 姓名 | string | 是 | |
idNumber | 身份证号 | string | 是 | 身份证号必填 |
icCard | 员工卡号 | string | ||
inOrOut | 进出状态 | string | 0进入 1出去 | |
atteTime | 考勤时间 | string | 是 | yyyy-MM-dd HH:mm:ss |
atteImage | 考勤图片 | string | 取图片的二进制值,转成base64编码。考勤类型为0时,不能为空 | |
atteType | 考勤类型 | string | 是 | 0 人脸考勤 1 指纹考勤 2虹膜考勤 3 IC卡识别 4 视频识别 5 ID卡识别 |
eField | 扩展字段 | string |
入参示例:
{
"ekey":"290uc397uc856",
"esbCode":"ESB_IDS03002",
"systemTime":"20180321113920123",
"signature": "2065b46b311c8b323ff31dc300c99ab1810807a3",
"serialNo":"1676746314",
"name":"张三",
"idNumber":"8e23415196f5293af3d9f2e8a89aaac777aa3af1f0ed2548",
"icCard":"",
"atteTime":"2017-08-11 13:20:25",
"atteImage":"",
"atteType":"0",
"eField":""
}
返回参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
status | 返回码 | string | 是 | 0:成功,其他:失败 |
description | 返回信息描述 | string | 是 | 返回信息描述,如果没有则返回"" |
返回数据示例:
{
"status": "0",
"description": ""
}
应用场景
接口地址
http://IP:端口/项目/attendance.rest/uploadPerson
提交方式
POST
传输方式
Json
数字签名
ekey-esbCode-systemTime,(中横线分隔)
输入参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
ekey | 调用密钥 | string | 是 | 由ESB管理平台提供 |
esbCode | esb接口编号 | string | 是 | ESB_IDS05002 |
systemTime | 调用接口的当前时间戳 | string | 是 | 时区:北京时间 格式:yyyyMMddHHmmssSSS |
signature | 数字签名 | string | 是 | |
recordTime | 采集时间 | string | 是 | yyyy-MM-dd HH:mm:ss |
name | 姓名 | string | 是 | |
idCard | 身份证号 | string | 是 | |
icCard | IC卡号 | String | ||
type | 人员类型 | string | 是 | 0:管理人员 1:劳务人员 |
workType | 工种 | String | 是 | |
groupName | 班组名称 | String | 是 | |
companyName | 单位名称 | String | 是 | |
customerId | 企业编号 | String | 是 | |
photo | 人员备案照片 | String | 是 | 取图片的二进制值,转成base64编码。 |
入参示例:
{
"name" :"测试人员111",
"idCard" :"411722198003123456",
"entryCard" :"324555",
"type" :"1",
"workType" :"12",
"groupName" :"管理组",
"companyName":"新疆维吾尔自治区文化厅",
"customerId" :"44al100017",
"photo" :"/9j/4AAQSkZJRgABAQAAAQABAAD//gAqSW50ZWwoUikgSlBFRyBMaWJyYQkJDAsMGA0NGDIhHCAAAAAAAAA=="
}
返回参数:
参数名 | 参数中文名 | 参数类型 | 必须 | 备注 |
status | 返回码 | string | 是 | 0:成功,其他:失败 |
description | 返回信息描述 | string | 是 | 返回信息描述,如果没有则返回"" |
返回数据示例:
{
"status": "0",
"description": ""
}
部分内容由用户投稿或者来源于网络,如有侵权,请联系底部邮箱进行删除!非常感谢您的支持!