Skip to content

Latest commit

 

History

History
28 lines (23 loc) · 1.34 KB

uniquePunch2.0自动提交数据接入指南.md

File metadata and controls

28 lines (23 loc) · 1.34 KB

unique punch 2.0 自动提交数据接入指南

  • 约定:需要等待正式部署后,给出一个外网或内网可以访问的 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 后,终止尝试