1.12.1. 规范说明

请求说明:

  • Method:POST

  • Url:${3rdCallBackUrl}?timestamp=xxxxx&nonce=xxxxx&sign=xxxxx

参数名 描述
3rdCallBackUrl 第三方接收数据的地址,详见数据推送配置
timestamp unix时间戳,与nonce一起,防止重放攻击
nonce 随机数,与timestamp一起,防止重放攻击
sign 数字签名,md5-32位-小写(timestamp+nonce+token),其中token详见数据推送配置
  • Head
参数名 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sid 服务id,代表消息事件类型
  • Body
// 此处数据表示请求的body内容,若第三方配置需要加密,则body会是标准入参消息体加密后的密文
{
    "sid": "服务id,不同业务sid不一样,如dse.push.punchRecord表示打卡记录推送",
    "mid": "消息id",
    "payload": {
        "params": {
            // 具体参数信息, 详细看具体业务推送
        }
    }
}

回复说明:

注:回复一律使用明文,不需要加密

{
    "code": "00000000",
    "message": "success"
}
参数名 必填 描述
code Y 返回编码,00000000表示成功, 其他表示失败
message N 编码描述

1.12.2. 推送流程

如下图所示:

  1. 设置数据推送配置,平台会发送测试请求验证URL地址是否符合约定,若不符合,则会设置失败;
  2. 平台接收到设备上传的数据,立即出发数据推送引擎,发起实时推送;
  3. 第三方在接收到平台推送的信息后,3秒内必须回复成功编码,否则当作推送失败处理;
  4. 第一次实时推送失败后,会再继续尝试第二次实时推送,失败后进入数据中转站;
  5. 中转站的数据默认存活期为48小时,48小时之内会不定时不定点尝试继续推送;
  6. 中转站数据存活期仍未推送成功的就会被归档,这些数据不再纳入推送范畴;

avatar

1.12.3. 数据推送配置

开发者账号登录,在应用可视化界面配置,如下图所示。

avatar

  • 推送开发

默认为关,即不接受任何消息推送。

  • URL

接收推送消息的url地址,http或者https,配置时会对此URL地址进行验证。url验证规则查看测试推送地址

  • token

用于数据推送时的签名认证,详情查看规范说明

  • 是否加密、加密密钥

若选择不加密,则推送都是明文传输,若选择加密,则会body内容会使用AES128(AES/ECB/PKCS5Padding)进行加密,密钥为此处设置的密钥,详情查看规范说明

  • 消息事件类型

选择需要推送的事件,如打卡记录

1.12.4. 测试推送地址

  • 此接口是用于测试设置的推送地址是否正常

  • 收到sid=dse.push.test的数据,直接回复code=00000000的消息即可

Request:

// 此接口不管设置加密与否,body内容都采用明文传输
// 若推送采用加密,有必要对事件进行区分,可获取http请求head中的sid字段进行区分

{
    "sid": "dse.push.test",
    "mid": "xxxxxxxx"
}

Response:

{
    "code": "00000000",
    "message": "success"
}

1.12.5. 打卡记录推送

支持的版本:v1.2.3 +

推送设备上传的打卡记录

Request:

{
    "sid": "dse.push.punchRecord",
    "mid": "",
    "payload": {
        "params": {
            "companyId": "xxxxx",
            "companyCode": "xxxx",
            "punchRecords": [{
                "sn": "",
                "employeeNo": "",
                "punchTime": 1492617600,
                "iso8601PunchTime": "2019-06-03T09:01:01+08:00",
                "workCode": "",
                "status": "0",
                "temperature": "36.50",
                "maskStatus": "1"
            }]
        }
    }
}
参数名 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sn 打卡设备序列号
employeeNo 打卡员工工号
punchTime 打卡标准Unix时间戳
iso8601PunchTime 打卡时间(iso8601标准格式)
workCode 工作代码
status 打卡状态,0 上班签到,1 下班签退,2 外出,3 外出返回,4 加班签到,5 加班签退,255 默认
temperature 体温。此属性配合设备使用,当设备带体温检测功能才有返回值
maskStatus 是否佩戴口罩,0 未佩戴口罩,1 已佩戴口罩。此属性配合设备使用,当设备带口罩检测功能才有返回值

回复信息请参看规范说明

1.12.6. 打卡照片推送

  • 打卡照片为在设备打卡时拍摄的照片

  • 每一次打卡将会产生2条记录,一条是打卡记录,一条是打卡照片,sn+employeeNo+punchTime为唯一标识

Request:

{
    "sid": "dse.push.punchPhoto",
    "mid": "xxxxxxxx",
    "payload": {
        "params": {
            "companyId": "xxxxx",
            "companyCode": "xxxx",
            "punchPhotos": [{
                "sn": "设备号",
                "employeeNo": "员工编号",
                "punchTime": 1492617600,
                "photo": "https://xxxxx.jpg"
            }]
        }
    }
}
参数名 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sn 打卡设备序列号
employeeNo 打卡员工工号
punchTime 打卡标准Unix时间戳
photo 打卡照片url地址,此照片会在DBS存活一段时间(默认是3个月),超过有效期,无法再用提供的url地址获取照片,所以如果对接的业务系统有需求需要存储更久,建议下载此照片存储在自己的系统里。

回复信息请参看规范说明

1.12.7. 设备初始化推送

支持的版本:v1.2.2 +

  • 设备第一次初始化时推送设备基本信息

Request:

{
    "sid": "dse.push.deviceInit",
    "mid": "xxxxxxxx",
    "payload": {
        "params": {
            "companyId": "xxxxx",
            "companyCode": "xxxx",
            "sn": "设备号",
            "timezone": "+08:00",
            "alais": "一楼打卡机",
            "status": 1,
            "enable": 1,
            "remoteIp": "110.80.38.76",
            "initTimeStamp": 1557910639
        }
    }
}
参数名 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sn 设备序列号
timezone 设备时区
alais 设备别名
status 设备在线状态,1代表在线,0代表离线
enable 设备启用状态,1代表启用,0代表禁用
remoteIp 设备公网Ip地址
initTimeStamp 设备初始化时间戳

回复信息请参看规范说明

1.12.8. 设备状态变化推送

支持的版本:v1.2.2 +

  • 设备状态发生变化时推送设备状态信息

Request:

{
    "sid": "dse.push.deviceStatus",
    "mid": "xxxxxxxx",
    "payload": {
        "params": {
            "companyId": "xxxxx",
            "companyCode": "xxxx",
            "sn": "设备号",
            "status": 1,
            "changeTimeStamp": 1557910639
        }
    }
}
参数名 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sn 设备序列号
status 设备在线状态,1代表在线,0代表离线
changeTimeStamp 设备状态变化时间戳

回复信息请参看规范说明

1.12.9. 指纹登记进度通知

支持的版本:v1.2.2 +

远程控制登记指纹后,实时上报用户登记指纹的状态.

使用须知:

  1. 不同设备对于登记指纹回传的次数不同,正常是回传3次,以end结束标识为准;
  2. 该通知与登记指纹配对,若手动打开设备登记窗口没有此提示;

Request:

{
    "sid": "dse.push.registerFpTip",
    "mid": "xxxx",
    "payload": {
        "params": {
            "companyId": "xxxxx",
            "companyCode": "xxxx",
            "sn": "xxxx",
            "num": "xxxx",
            "code": "xxxx",
            "message": "xxxx",
            "end": "1",
            "sessionId": "xxxx"
        }
    }
}
参数 描述
companyId dbs平台内部公司唯一标识
companyCode 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识
sn 设备序列号
num 第N次按手指
code 第N次按手指返回值
message 第N次按手指返回值对应的消息内容
end 结束标识,1:结束,0:否(默认)
sessionId 会话唯一标识,与登记指纹匹配

code与message消息列表:

code message
0 成功
-1 用户不存在
-2 指纹容量已满
-3 指纹重复
-4 超时退出
-5 指纹合成失败
-6 获取数据异常
-7 添加到内存失败
-10 模板提取异常【位置不对】
-11 其他异常

回复信息请参看规范说明

results matching ""

    No results matching ""