Производитель контроллеров скуд

Настройка HTTP-интеграции (вебхуков) в ПО «ЭНТ Контроль доступа»

Настройка HTTP-интеграции (вебхуков) в ПО «ЭНТ Контроль доступа»

Версия ПО: 3.3.90.180 | Редакция инструкции: 14.07.2026

Введение
Программно-аппаратный комплекс «ЭНТ Контроль доступа» поддерживает механизм отправки уведомлений (вебхуков) на сторонние серверы при возникновении событий в контроллерах «ЭРА». Передача данных осуществляется по протоколу HTTP методами GET или POST на серверный скрипт принимающей стороны (например, написанный на PHP, Python, Node.js и т.д.).
Данное руководство описывает процесс настройки серверной и клиентской частей, а также принципы обработки ошибок.

1. Настройка серверной части (ЭНТ Сервер)

Для активации возможности отправки HTTP-запросов необходимо изменить стандартный шлюз уведомлений.

  1. Откройте веб-интерфейс «ЭНТ Контроль доступа – Сервер».
  2. Перейдите на вкладку «Настройки».
  3. В разделе «SMS-шлюз» в выпадающем списке «Провайдер» выберите «HTTP(S)-запрос».
  4. Нажмите «Сохранить настройки».
Рисунок 1. Строка "Провайдер" веб-интерфейса ПО "Сервер"
Рисунок 1. Строка "Провайдер" веб-интерфейса ПО "Сервер"

2. Создание правила рассылки (ЭНТ Клиент)

  1. Откройте «ЭНТ Контроль доступа – Клиент».
  2. Перейдите в раздел «События»«Рассылка уведомлений».
  3. На панели инструментов нажмите кнопку «Добавить новое уведомление».
  4. В открывшемся окне «Новое уведомление» заполните параметры, описанные ниже.
Рисунок 2. Раздел "Рассылка уведомлений" ПО "ЭНТ Клиент"
Рисунок 2. Раздел "Рассылка уведомлений" ПО "ЭНТ Клиент"

2.1. Параметры события (Триггер)

  • Укажите контроллер: выберите из выпадающего списка контроллер, события которого будут обрабатываться.
  • Уведомлять о событии: выберите тип события (или несколько типов), при котором должен срабатывать HTTP-запрос.
  • Направление события: установите галочки в полях «Вход» и/или «Выход» для фильтрации направления прохода.

2.2. Параметры получателя

  • Отправлять уведомление автору события на его тел./e-mail, взятый из поля: выберите «не отправлять».
  • Отправлять уведомления на тел./e-mail: укажите любой произвольный номер или адрес (например, 0000000000).
    Примечание: фактическая отправка SMS/Email не производится, поле является обязательным атрибутом интерфейса.

2.3. Формирование HTTP-запроса (GET / POST)

Запрос формируется в поле «Текст SMS уведомления».

Важно: Система поддерживает отправку данных методами GET и POST.
Ограничение: длина URL ограничена 500 символами.

Структура URL (пример для GET):

https://example.com/api/ent.php?arg1=<%dv>&arg2=<%te>&token=secret

  • https://.../ent.php? — путь (эндпоинт) к скрипту принимающей стороны, завершающийся символом ?.
  • arg1, arg2 — имена переменных, принимаемых вашим скриптом (могут быть любыми).
  • = — оператор присвоения.
  • <%dv>, <%te> — системные макросы, подставляющие актуальные данные события.
  • token=secret — статические параметры (например, ключи авторизации).

2.4. Дополнительные параметры

  • Текст e-mail уведомления: оставьте пустым.
  • Задержка отправления (секунд): укажите паузу перед отправкой запроса (опционально).
  • Режим отправки уведомлений: выберите расписание:
    • В рабочее / нерабочее время — требует выбора «Графика для отчетов» (создается заранее в разделе Отчеты → Графики для отчетов).
    • Всегда — круглосуточная отправка.
  • Параметры сервера исходящей почты: установите «использовать глобальные настройки».
  1. После ввода всех данных нажмите «Добавить».
Рисунок 3. Окно "Новое уведомление"
Рисунок 3. Окно "Новое уведомление"

3. Справочник доступных макросов

Для подстановки данных события в URL используйте следующие макросы:

Макрос Описание данных Примечание
<%dv> Название контроллера  
<%ev> Событие  
<%dr> Направление события  
<%de> Дата события  
<%te> Время события  
<%th> Время события Только часы
<%tm> Время события Только минуты
<%ts> Время события Только секунды
<%ut> Время события Формат Unix-время (timestamp)
<%tn> Табельный номер  
<%ln> Фамилия пользователя  
<%fn> Имя пользователя  
<%sn> Отчество пользователя  
<%ky> Ключ  
<%sa> Адрес рассылки  
<%bl> Баланс  
<%s1> Свойство #1 Наименование колонки в таблице данных пользователя (можно переименовывать в ПО Клиент)
<%s2> Свойство #2 Наименование колонки в таблице данных пользователя
<%s3> Свойство #3 Наименование колонки в таблице данных пользователя
<%s4> Свойство #4 Наименование колонки в таблице данных пользователя

4. Обработка ошибок и механизм повторных отправок (Ретраи)

Система обладает встроенным механизмом обеспечения надежной доставки уведомлений.

  • Очередь и повторные попытки: Если «ЭНТ Сервер» не получает ответа от сервиса получателя (нет доступа, таймаут, ошибка сети), он создает очередь из неотправленных уведомлений и пытается отправить их заново каждые 10 секунд.
  • Лимит попыток: Количество попыток отправки по умолчанию составляет 65 500. Это значение можно изменить в .ini файле конфигурации сервера.
  • Сохранение очереди при остановке: Если работа «ЭНТ Сервера» останавливается (аварийно или планово), а в очереди есть неотправленные уведомления, они сохраняются во временный файл sms_queue, который создается в папке Server установочной директории.
  • Восстановление: При следующем запуске «ЭНТ Сервер» автоматически загрузит очередь для рассылки из файла sms_queue и удалит этот файл.
Как удалить очередь вручную:
1. Остановите работу «ЭНТ Сервера».
2. Удалите файл sms_queue в папке Server установочной директории.

5. Требования к принимающей стороне и безопасность

5.1. Требования к скрипту пользователя

Для того чтобы «ЭНТ Сервер» успешно зафиксировал доставку и удалил запрос из очереди, принимающий сервер обязан вернуть валидный HTTP-ответ.

  • Ожидаемый HTTP-статус: 200 OK.
  • Ожидаемое тело ответа: любой текст, подтверждающий прием (например, ОК, 200, success).

5.2. Безопасность соединения

По умолчанию система не передает статический токен или ключ авторизации в заголовках HTTP-запроса. Для защиты вашего эндпоинта от несанкционированных запросов рекомендуется:

  1. Передавать секретный ключ (токен) напрямую в URL в виде статического GET/POST параметра (например: &token=ваш_секретный_ключ).
  2. Ограничить доступ к эндпоинту на стороне вашего веб-сервера (Nginx/Apache) по списку разрешенных IP-адресов (White List), указав IP-адрес сервера, на котором установлен «ЭНТ Контроль доступа».

© Эра новых технологий. Скворцов Константин Валерьевич.