@zongwu
2017-04-22T06:42:25.000000Z
字数 1967
阅读 334
作者 | 版本 | 日期 |
---|---|---|
陈俊棋 | V1.0 | 2017-04-22 14:40 |
TODO:需要杨工提供,有关
id
的数据字典。
// C->S
bundle.putString("${客户端包名}", "${传输的数据}");
// S->C
bundle.putString("${服务端包名}", "${传输的数据}");
// 比如调用检测的指令
{
"intent":"detect",
"id":"bg",
"code":"4949",
"checksum":"计算的 checksum 值"
}
- 智能硬件分配给智慧健康一个 secret。(比如:
XnG0@oHE
)- 将 json 中的 key 和 value 拆分开,以 key字母序排序。上例的 key 的排序为:
code、id、intent
。- 拼装字符串:
code=4949&id=bg&intent=detect
,以&
连接。- step 1:
(accesstoken) = md5(code=4949&id=bg&intent=detect)
。- step 2:
checksum = md5(${secret}&${accesstoken})
,${}表示变量
。
服务端/客户端拿到数据后,依照上述的校验值计算方式进行 checksum 的计算。若两者的校验结果保持一致则处理,否则则告知客户端checksum 异常。
NFC规范
扫描试剂标签场景:由智慧健康主动打开 NFC 监听,所以要求试剂瓶上贴的 NFC 标签满足下面的约定。
{
"id":"bg",
"code":"4949",
"date":"2017-07-12 18:00:00"
}
--------------------------------------------
id: 表示检测项目的标签,字段唯一。
code:校验码,通常范围是0~4949之间。
date:生产日期,要求为标准的 yyyy-MM-dd HH:mm:ss格式。
--------------------------------------------
intent = detection : 发起调用检测意图
intent = detectionResult :发起调用检测意图的响应结果
intent = detectionProcess : 指令已处理
C->S
调起检测功能指令
{
"intent":"detection",
"id":"bg",
"code":"4949",
"checksum":"..."
}
--------------------------------------------
intent: 表示意图。
id: 表示检测项目的标签,字段唯一。
code:校验码,通常范围是0~4949之间。
--------------------------------------------
C->S
发送检测数据已接收指令
{
"intent":"detectionProcess",
"id":"bg",
"date":"2017-07-12 19:45:00",
"checksum":"..."
}
--------------------------------------------
intent:表示意图。
id: 表示检测项目的标签,字段唯一。
date:应答接收数据的日期,要求为标准的 yyyy-MM-dd HH:mm:ss格式。(使用该日期对应某一条检测数据)。
--------------------------------------------
S->C
服务端向客户端端发送检测数据指令
{
"intent":"detectionResult",
"id":"bg",
"data":"18.9",
"unit":"mmHg/L",
"date":"2017-07-12 19:45:00",
"checksum":"..."
}
--------------------------------------------
id: 表示检测项目的标签,字段唯一。
data: 表示检测后的数据。
unit:表示该数据对应的单位。
date:检测日期,要求为标准的 yyyy-MM-dd HH:mm:ss格式。
--------------------------------------------