1.5.1. 规范说明
请求说明:
DBS 服务请求第三方数据接收地址
Method:POST
Url:${3rdCallBackUrl}?timestamp=xxxxx&nonce=xxxxx&sign=xxxxx
参数名 | 类型 | 描述 |
---|---|---|
3rdCallBackUrl | String | 第三方接收数据的地址,详见数据推送配置 |
timestamp | String | unix时间戳,与nonce一起,防止重放攻击 |
nonce | String | 随机数,与timestamp一起,防止重放攻击 |
sign | String | 数字签名,md5-32位-小写(timestamp+nonce+token),其中token详见数据推送配置 |
- Head
参数名 | 类型 | 描述 |
---|---|---|
companyId | String | dbs平台内部公司唯一标识 |
companyCode | String | 与创建公司时传入的一致,一般表示第三方系统内部公司唯一标识 |
sid | String | 服务id,代表消息事件类型 |
- Body
// 此处数据表示请求的body内容,若第三方配置需要加密,则body会是标准入参消息体加密后的密文
{
"sid": "服务id,不同业务sid不一样,如dse.push.punchRecord表示打卡记录推送",
"mid": "消息id",
"payload": {
"params": {
// 具体参数信息, 详细看具体业务推送
}
}
}
回复说明:
注:回复一律使用明文,不需要加密
{
"code": "00000000",
"message": "success"
}
参数名 | 必填 | 描述 |
---|---|---|
code | Y | 返回编码,00000000表示成功, 其他表示失败 |
message | N | 编码描述 |
1.5.2. 推送流程
如下图所示:
- 设置数据推送配置,平台会发送测试请求验证URL地址是否符合约定,若不符合,则会设置失败;
- 平台接收到设备上传的数据,立即出发数据推送引擎,发起实时推送;
- 第三方在接收到平台推送的信息后,3秒内必须回复成功编码,否则当作推送失败处理;
- 第一次实时推送失败后,会再继续尝试第二次实时推送,失败后进入数据中转站;
- 中转站的数据默认存活期为72小时,72小时之内会不定时不定点尝试继续推送;
- 中转站数据存活期仍未推送成功的就会被归档,这些数据不再纳入推送范畴;
1.5.3. 数据推送配置
开发者账号登录,在应用可视化界面配置,如下图所示。
- 推送开发
默认为关,即不接受任何消息推送。
- URL
接收推送消息的url地址,http或者https,配置时会对此URL地址进行验证。url验证规则查看测试推送地址
- token
用于数据推送时的签名认证,详情查看规范说明
- 是否加密、加密密钥
若选择不加密,则推送都是明文传输,若选择加密,则会body内容会使用AES128(AES/ECB/PKCS5Padding)进行加密,密钥为此处设置的密钥,详情查看规范说明
- 消息事件类型
选择需要推送的事件,如打卡记录
1.5.4. 测试推送地址
此接口是用于测试设置的推送地址是否正常
收到sid=dse.push.test的数据,直接回复code=00000000的消息即可
Request:
// 此接口不管设置加密与否,body内容都采用明文传输
// 若推送采用加密,有必要对事件进行区分,可获取http请求head中的sid字段进行区分
{
"sid": "dse.push.test",
"mid": "xxxxxxxx"
}
Response:
{
"code": "00000000",
"message": "success"
}