Как в Flussonic Watcher устроена интеграция с нашим биллингом
Мы уже рассказывали о том, как создали собственный биллинг для нашего облака видеонаблюдения. Клиенты, которые выбирают наш биллинг, а не свой в рамках предоставления услуги видеонаблюдения, часто интересуются, как именно устроена интеграция между Flussonic Watcher и биллингом и что реализовывается в её рамках. В этой статье мы хотим простыми словами рассказать об этом на примере основных операций биллинга.
Один из ключевых вопросов, на который мы отвечали в процессе разработки - какая функциональность должна быть доступна пользователю в самом биллинге? Мы обозначили такую грань - в биллинге должно происходить решение всех денежных вопросов, а в самом Flussonic Watcher решаются вопросы, относящиеся непосредственно к камерам. Исходя из этого утверждения, мы согласовали чёткий план архитектуры, которая предполагает двусторонний обмен данными между биллингом и Watcher (которое происходит посредством нашего открытого API).
Создание тарифа
Ранее мы рассказывали, что тариф формируется из настроек, которые именуются в нашем биллинге “услугами”. Услугой может быть, например, длительность записи непрерывного архива, запись архива по событиям, возможность включения видеоаналитики. Каждая услуга имеет свою стоимость.
Биллинг получает из Watcher параметры настроек камер, и далее Администратор создает тариф из услуг (например, “7 дней непрерывной записи с дополнительными 7 днями записи по событиям и опцией аналитики распознавания лиц” стоимостью в 1500 рублей). Коммерческие условия тарифа остаются в биллинге, а в Watcher биллинг отправляет комбинацию настроек, которая выставляется на камере при применении данного тарифа (пресет).
Создание пользователя
Администратор биллинга имеет возможность создавать нового пользователя и предоставлять ему определённые права доступа. Эти права дублируются, то есть по одному и тому же логину и паролю пользователь может авторизоваться и в Watcher, и в биллинге.
Создание Организации
Организация в биллинге и Watcher - это логическая сущность, под которой понимается личный кабинент абонента. Изначально он проектировался для того, чтобы сделать в биллинге возможность иерархии, когда есть одна головная Организация и несколько дочерних. Аналогично разделу пользователей, список Организаций дублируется и в Watcher, и в биллинге. В момент создания Организации, привязывается Администратор, который будет отвечать за взаиморасчёты.
Важно то, что создать Организацию можно только в биллинге, напрямую в Watcher этого сделать нельзя. Это связано как раз с тем, что все денежные операции должны относиться к биллингу, а создание Организации подразумевает возможность для абонента подключить камеры, за которые он должен платить. Кроме того, при создании Организации в биллинге указывается список доступных тарифов.
Добавление камеры
Процедура добавления камеры происходит в Watcher. Информация о добавленной камере и примененном к ней тарифу добавляется в Access log (список системных событий) Watcher. При этом Администратор биллинга не имеет прямого доступа к камерам пользователя и видео с них - эта информация защищена и доступна только пользователю. Администратору будет доступно только количество камер, отсортированное по тарифам, и итоговая стоимость использования сервиса за отчетный период.
Создание счета на оплату
Биллинг выполняет ряд запросов к Watcher, чтобы получить статистическую информацию о количестве подключенных камер к организации абонента и информацию, необходимую для формирования счёта согласно выставленному тарифу.
Вот краткое представление о том, как работает интеграция нашего биллинга с Flussonic Watcher. Весь процесс интеграции у нас занял около трёх месяцев, это был долгий и тернистый путь, и сейчас мы готовы делиться полученным опытом с нашими клиентами.