-
约定:需要等待正式部署后,给出一个外网或内网可以访问的 url,下面用${url}代替之(例如:http://127.0.0.1/)
-
约定:在服务器和打卡机中,都储存着 SECRET(管我要)
-
请求方式:POST
-
请求地址:${url}/user/upload/${timestamp}/${key}
-
body 中,以 data 为 field,上传文件
-
参数解读:
- timestamp 为当前服务器的毫秒时间戳
- key 为计算后的 key,下面给出计算公式
- key = MD5(MD5(打卡报表.xls) + timestamp + secret)
-
服务器响应请求:
- 返回值(成功)
{"code" : 1}
- 返回值(失败)
{"code" : -1 , "msg":"Invalid Secret !"}
-
当服务器收到请求后,会计算 KEY,并且和传入的 KEY 进行对比,当匹配后,立即返回 code 1,然后服务器内部会进行异步操作
-
当服务器和打卡机的时间戳,相差时间的绝对值 大于 1 小时,会拒绝请求
-
当服务器返回 code1 以后,会从数据库中查找这个文件的 MD5 是否之前上传过,如果曾经上传过,不会再重复生成打卡数据
-
建议打卡机当请求失败时候,每隔一段时间重新尝试,直到服务器返回 code 1 后,终止尝试