# 通行规则

# 接口说明

host path method content-type
open.wecard.qq.com /cgi-bin/guard/device/pass-rule POST application/json

# 请求参数

{
  "access_token": "z8WH...R7Fd",
  "device_no": "MRC00001",
  "page": 1,
  "page_size": 20
}
参数 必填 类型 说明
access_token ✔️ string 接口请求凭证
device_no ✔️ string 门禁机具设备号
page int 分页页数(从 1 开始)
page_size int 分页每页记录条数

# 响应参数

{
  "code": 0,
  "message": "",
  "data": {
    "open": true,
    "page": 1,
    "page_size": 20,
    "total": 0,
    "version": 4
  }
}
{
  "code": 0,
  "message": "",
  "data": {
    "rules": [
      {
        "mark": "3tx",
        "configs": [
          {
            "time_ranges": [
              {
                "start": "00:00:00",
                "end": "23:59:59"
              }
            ]
          }
        ]
      }
    ],
    "page": 1,
    "page_size": 20,
    "total": 1,
    "version": 4
  }
}

# data 中的参数说明

参数 类型 说明
open bool 是否开放通行,当opentrue时,rules将不返回
rules array 通行规则,见下方说明
page int 分页页数,根据请求参数确定
page_size int 分页每页记录条数,根据请求参数确定
total int 总记录条数
version int 对应名单规则版本号

# 开放通行

当管理员将某个门禁设置为开放通行时,门禁机具只需要将电子卡/电子码成功解析之后,即可放行,不需要校验通行名单。

# 通行规则说明

{
  "mark": "3tx",
  "configs": [
    {
      "range": {
        "start": "2020-01-01",
        "end": "2020-12-31"
      },
      "time_ranges": [
        {
          "start": "07:30:00",
          "end": "08:30:00"
        },
        {
          "start": "11:00:00",
          "end": "13:30:00"
        },
        {
          "start": "17:30:00",
          "end": "23:00:00"
        }
      ],
      "months": [1, 4, 5, 6, 9, 10, 11, 12],
      "weekdays": [0, 1, 6]
    },
    {
      "range": {
        "start": "2020-01-01",
        "end": "2020-12-31"
      },
      "time_ranges": [
        {
          "start": "00:00:00",
          "end": "23:59:59"
        }
      ],
      "months": [2, 3, 7, 8],
      "weekdays": [1, 2, 3, 4, 5]
    }
  ]
}
参数 类型 说明
mark string 每个通行规则唯一的标志
configs array 规则配置列表,满足任意一条规则即视为通过门禁验证
# 规则配置

在门禁核验过程中,机具需要根据rangetime_rangemonthsweekdays这四个配置对当前时间进行判断,确定是否允许通行。

其中,range表示日期范围,time_range表示日内时间范围,months表示月份限制,weekdays表示一周内周日到周六的日期限制范围。

以如下配置为例,该配置表示:

  • 2020年1月1日起,到2020年12月31日
  • 一、四、五、六、九、十、十一和十二月
  • 周日、周一和周六
  • 在每天的早上7点30分起到8点30分中午11点整到13点30分傍晚17点30分到晚上23点整这三个时间段,该用户允许通行。
{
  "range": {
    "start": "2020-01-01",
    "end": "2020-12-31"
  },
  "time_ranges": [
    {
      "start": "07:30:00",
      "end": "08:30:00"
    },
    {
      "start": "11:00:00",
      "end": "13:30:00"
    },
    {
      "start": "17:30:00",
      "end": "23:00:00"
    }
  ],
  "months": [1, 4, 5, 6, 9, 10, 11, 12],
  "weekdays": [0, 1, 6]
}

一般情况下,用户设置的规则会比较简单,因此获取到的配置可能只有rangetime_rangemonthsweekdays这四个配置中的一部分。

比如下面这个配置,表示每天的 6 点起到 22 点止都允许通行。

{
  "time_ranges": [
    {
      "start": "06:00:00",
      "end": "22:00:00"
    }
  ]
}

而下面的配置,则表示每年七八月的周末允许通行。

{
  "months": [7, 8],
  "weekdays": [0, 6]
}
# 多配置

每一条规则中,可能有多条规则配置,只要满足一条规则,即视为通过门禁验证。

以如下为例,这个配置表示在周一到周五从早上5点30分到晚上21点半允以及在周末(周日、周六)从早上5点30分到晚上23点半允许进出。

{
  "mark": "ac2",
  "configs": [
    {
      "time_ranges": [
        {
          "start": "05:30:00",
          "end": "23:30:00"
        }
      ],
      "weekdays": [0, 6]
    },
    {
      "time_ranges": [
        {
          "start": "05:30:00",
          "end": "21:30:00"
        }
      ],
      "weekdays": [1, 2, 3, 4, 5]
    }
  ]
}