Интеграция биллинга VSAAS.IO и облачного сервиса видеонаблюдения cloud.vsaas.io¶
Из этой статьи вы узнаете как оператору связи внедрить интегрировать биллинг VSAAS.IO с облачным сервисом видеонаблюдения cloud.vsaas.io, чтобы продавать камеры по подписке и рассчитывать стоимость пользования сервисом абонентами.
Как оператор, выполните следующее:
- Зарегистрируйте учётную запись в VSAAS.IO.
- Посмотрите типичные сценарии использования биллинга и облачного Watcher.
- Создать тариф.
- Создать организацию со списком доступных тарифов.
- Создать пользователя с правами для чтения.
- Создать пользователя для редактирования камеры.
- Удалить пользователя с правами на редактирование камер.
- Добавить тарифы в существующую организацию.
- Изменить тариф по умолчанию.
- Отключить камеру.
Глоссарий¶
-
Оператор связи — клиент компании Эрливидео, который арендует сервисы биллинга и облачного видеонаблюдения.
-
Абонент — клиент оператора связи, пользователь сервиса облачного видеонаблюдения cloud.vsaas.io.
-
Пресет — набор параметров DVR и аналитики, который можно применять как шаблон при добавлении и настройке камер в cloud.vsaas.io. Пресеты соответствуют тарифам в биллинге VSAAS.IO, поэтому они настраиваются перед добавлением камер.
-
VSAAS.IO (my.vsaas.io) — сервис биллинга, отвечающий за определение тарифов на услуги оператора связи и взимание денег с абонентов за пользование cloud.vsaas.io. Пользователи в VSAAS.IO — это Администраторы и бухгалтеры, которые собирают информацию о том, кто, сколько денег и кому должен.
-
cloud.vsaas.io — облачный сервис видеонаблюдения Flussonic Watcher, услугами которого пользуются абоненты. В cloud.vsaas.io определяются все технические возможности сервиса видеонаблюдения: управление учётными записями абонентов и монтажников, камерами и их настройками, наполнением тарифных планов.
Особенности VSAAS.IO и cloud.vsaas.io¶
VSAAS.IO и cloud.vsaas.io — разные структуры. VSAAS.IO общается с cloud.vsaas.io, но не наоборот. Это значит, что из cloud.vsaas.io вы не получите информацию о биллинге. VSAAS.IO отвечает за тарифы и счета, а cloud.vsaas.io за камеры. Для VSAAS.IO и cloud.vsaas.io есть свой API. Часть методов доступна в VSAAS.IO (my.vsaas.io), но недоступна в cloud.vsaas.io и наоборот. Например, в VSAAS.IO (my.vsaas.io) вы можете создать или изменить организацию, а в cloud.vsaas.io только получить данные об организации.
Биллинг проводит расчет раз в сутки в районе полуночи. Не настраивайте интеграцию так, чтобы она регулярно опрашивала биллинг. Новые камеры добавленные сегодня - вы увидите завтра.
Подробнее о работе с биллингом VSAAS.IO, см. Биллинг облачного сервиса VSAAS.IO
Регистрация оператора в VSAAS.IO¶
Аккаунт на VSAAS.IO нужен для настройки тарифов и выставления счетов абонентам. Мы создаем учетные записи по запросу, напишите нам письмо, указав имя вашей организации.
Мы предоставим вам домен вида YOURNAME.vsaas.io, либо обсудим возможность привязки вашего домена.
В дальнейшем мы сможете заходить напрямую в личный кабинет, используя email, с которого прислали запрос.
Типичные сценарии использования биллинга и облачного Watcher¶
В этом разделе приведены сценарии использования биллинга VSAAS.IO и облачного сервиса видеонаблюдения cloud.vsaas.io.
Warning
my.vsaas.io и cloud.vsaas.io работают с API версий 1 и 2 соответственно. Мы планируем перевести их на API версии 3, чтобы достичь единого формата и версии API среди всех продуктов экосистемы Flussonic. Об этих и других изменениях вы можете узнать из блога.
Создать тариф¶
-
Зайдите в учётную запись Администратора на my.vsass.io.
-
Создайте тариф, перейдя на вкладку BILLING PLANS и нажав CREATE NEW BILLING PLAN. Заполните форму добавления нового тарифа и нажмите SAVE, чтобы сохранить тариф. Добавленный тариф вместе с датой начала его действия будет отображаться в списке тарифов на вкладке BILLING PLANS.
-
Посмотрите ID тарифа, вызвав метод GET https://my.vsaas.io/api/v1/tariff_plans. Тарифу присваивается два разных ID: один для my.vsaas.io —
id, второй для cloud.vsaas.io —external_id. Используйте этот метод для маппинга в CRM.
Создать организацию со списком доступных тарифов¶
- Создайте организацию, вызвав метод API my.vsaas.io POST https://my.vsaas.io/api/v1/organizations и укажите владельца домена (
owner) со списком требуемых тарифов. Этот метод создаёт организацию сразу в биллинге (my.vsaas.io) и облачном Watcher (cloud.vsaas.io), присваивая ей два разных ID: один для my.vsaas.io —id, второй для cloud.vsaas.io —external_id.
Создать пользователя с правами для чтения¶
Обращение только к облачному Watcher (cloud.vsaas.io).
-
Создайте пользователя, вызвав метод API cloud.vsaas.io POST /vsaas/api/v2/users.
-
Подключите пользователя к нужной организации, вызвав метод API cloud.vsaas.io POST /vsaas/api/v2/organizations/ORGANIZATION-ID/users. Узнать ID организации можно с помощью метода получения списка организаций GET /vsaas/api/v2/organizations.
-
Узнайте ID папки с камерами с помощью метода API cloud.vsaas.io для получения списка папок организации GET vsaas/api/v2/organizations/ORGANIZATION-ID/folders.
-
Предоставьте права в папках нужной организации пользователю, вызвав метод API cloud.vsaas.io POST /vsaas/api/v2/organizations/ORGANIZATION-ID/folders/FOLDER-ID/users.
-
Удалите пользователя из организации по умолчанию, вызвав метод API cloud.vsaas.io DELETE /vsaas/api/v2/organizations/ORGANIZATION-ID/users/USER-ID. Теперь абонент прикреплён только к нужной организации.
Создать пользователя для редактирования камеры¶
В качестве пользователя с правами редактирования камеры может выступать монтажник.
Обращение только к облачному Watcher (cloud.vsaas.io).
Note
Создание пользователя для редактирования камер отличается от создания пользователя с правами для чтения (абонент) тем, что при подключении пользователя к организации пользователю выдаются особые права на редактирование камер (см. п. 2).
-
Создайте пользователя, вызвав метод API cloud.vsaas.io POST /vsaas/api/v2/users.
-
Подключите пользователя с особыми правами на добавление камер:
"can_edit_organization_cameras": trueк организации. Для этого вызовите метод API cloud.vsaas.io POST /vsaas/api/v2/organizations/ORGANIZATION-ID/users. Узнать ID организации можно с помощью метода получения списка организаций GET /vsaas/api/v2/organizations. -
Узнайте ID папки с камерами с помощью метода API cloud.vsaas.io для получения списка папок организации GET vsaas/api/v2/organizations/ORGANIZATION-ID/folders.
-
Предоставьте права в папках нужной организации пользователю, вызвав метод API cloud.vsaas.io POST /vsaas/api/v2/organizations/ORGANIZATION-ID/folders/FOLDER-ID/users.
-
Удалите пользователя из организации по умолчанию, вызвав метод API cloud.vsaas.io DELETE /vsaas/api/v2/organizations/ORGANIZATION-ID/users/USER-ID. Теперь абонент прикреплён только к нужной организации.
Удалить пользователя с правами на редактирование камер¶
Удалите пользователя с особыми правами на редактирование камер (монтажника) с помощью метода API cloud.vsaas.io DELETE '/vsaas/api/v2/users/USER-ID.
Добавить тарифы в существующую организацию¶
Обновите тарифы организации с помощью метода API my.vsaas.io PUT /organizations/ORGANIZATION-ID.
Изменить тариф по умолчанию¶
-
Зайдите в учётную запись Администратора на my.vsass.io.
-
Создайте тариф, перейдя на вкладку BILLING PLANS и нажав CREATE NEW BILLING PLAN. Заполните форму добавления нового тарифа и поставьте галочку напротив Apply to Organisations by default.
-
Сохраните тариф, нажав SAVE. Добавленный тариф вместе с датой начала его действия будет отображаться в списке тарифов на вкладке BILLING PLANS и иметь YES в столбце Default.
Предыдущий тариф по умолчанию перейдёт в разряд обычных тарифов, потому что тариф по умолчанию может быть только один.
Отключить камеру¶
Есть два способа:
-
Через веб-интерфейс VSAAS.IO.
- Зайдите в учётную запись Администратора в cloud.vsaas.io.
- Перейдите на вкладку Мои камеры.
- Нажмите на настройки нужной камеры (шестерёнка), найдите раздел ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ и уберите галочку напротив Включена.
- Сохраните настройки, нажав Сохранить либо сочетание клавиш Ctrl+S.
-
С помощью API cloud.vsaas.io.
Используйте метод PUT vsaas/api/v2/cameras/OBJECT-ID.
VSAAS.IO API¶
API v1 для работы с биллингом VSAAS.IO.
Авторизация¶
Только владелец и Администратор домена могут делать запросы к VSAAS.IO API.
Все запросы к VSAAS.IO API требуют авторизацию:
- по логину (
X-USER: ADMIN-EMAIL-ADDRESS), - паролю (
X-PASSWORD: ADMIN-PASSWORD), - ID домена (
X-DOMAIN-ID: 000). Узнайте ID домена у вашего менеджера.
Тарифы¶
Управление тарифами в my.vsaas.io.
Получить список всех доступных тарифов¶
Пример ответа:
Организации¶
Управление организациями в my.vsaas.io.
Получить список всех доступных организаций или данные о конкретной организации¶
Пример ответа:
Добавить организацию с тарифами и без тарифов¶
В результате выполнения этого вызова организация создаётся сразу в VSAAS.IO и cloud.vsaas.io с тарифом по умолчанию Default.
, где:
- (обязательный)
title— название организации, - (обязательный)
owner— адрес электронной почты владельца организации. Может быть как существующий, так и произвольный. Если вы указываете произвольный адрес, то будет создан новый пользователь и на указанный адрес придёт письмо с запросом подтверждения и ввода пароля пользователя. tariff_plans— список ID тарифов. Вы можете узнать ID тарифа, получив список всех доступных тарифов.
Пример ответа:
Изменить тарифы существующей организации¶
- (обязательный)
ORGANIZATION-ID— ID организации, tariff_plans— список ID тарифов. Вы можете узнать ID тарифа, получив список всех доступных тарифов. Если вы передадите пустой список, то у организации удалятся все тарифы, кроме тарифа по умолчанию.
Пример ответа:
Удалить существующую организацию¶
, где ORGANIZATION-ID — ID организации для удаления.
Ответ: 204 без тела.
cloud.vsaas.io API¶
API v2 для работы с сервисом облачного видеонаблюдения cloud.vsaas.io.
В cloud.vsaas.io вы можете настроить для пользователей следующие права:
- редактировать камеры организации (
"can_edit_organization_cameras"), - редактировать пользователей организации (
"can_edit_organization_users"), - редактировать организации (
"can_edit_organizations"), - просматривать камеры,
- просматривать статистику просмотров камер по организации (
"can_view_organization_stats").
Авторизация¶
Только владелец и Администратор организации могут делать запросы к cloud.vsaas.io API.
Все запросы к cloud.vsaas.io API требуют авторизацию по ключу API Администратора (x-vsaas-api-key: VSAAS-ADMIN-API-KEY). API-ключ Администратора вы можете скопировать из веб-интерфейса cloud.vsaas.io: Админ > Настройки > ОБЩИЕ НАСТРОЙКИ > Ключ API.
Камеры¶
Управление камерами в cloud.vsaas.io.
Получить список всех камер и их данных в домене¶
, где YOUR-DOMAIN-NAME — имя домена.
Пример ответа:
Note
В ответе возвращается ID пресета, но не возвращается ID тарифа, определённого в биллинге. Это значит, что вам нужно сравнивать ID пресета с ID тарифа на вашей стороне.
Получить данные о конкретной камере¶
, где:
YOUR-DOMAIN-NAME— имя домена,OBJECT-ID— ID камеры. Узнайте ID камеры с помощью GET /vsaas/api/v2/cameras или GET /vsaas/api/v2/cameras?organization_id=ORGANIZATION-ID.
Ответ будет тот же, что и у списка камер, но в виде одного объекта, а не списка.
Получить список всех камер и их данных для организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.
Пример ответа:
Поменять тариф для камеры¶
, где:
YOUR-DOMAIN-NAME— имя домена,OBJECT-ID— ID камеры. Узнайте ID камеры с помощью GET /vsaas/api/v2/cameras или GET /vsaas/api/v2/cameras?organization_id=ORGANIZATION-ID.preset_id— ID пресета, который вы хотите установить для камеры. Узнайте ID пресета с помощью GET /vsaas/api/v2/cameras.
Пример ответа:
Отключить камеру¶
, где:
YOUR-DOMAIN-NAME— имя домена,OBJECT-ID— ID камеры. Узнайте ID камеры с помощью GET /vsaas/api/v2/cameras или GET /vsaas/api/v2/cameras?organization_id=ORGANIZATION-ID.
Пример ответа:
Включить камеру¶
, где:
YOUR-DOMAIN-NAME— имя домена,OBJECT-ID— ID камеры. Узнайте ID камеры с помощью GET /vsaas/api/v2/cameras или GET /vsaas/api/v2/cameras?organization_id=ORGANIZATION-ID.
Пример ответа:
Пользователи¶
Управление пользователями в cloud.vsaas.io.
Получить список всех пользователей¶
, где YOUR-DOMAIN-NAME — имя домена.
Пример ответа:
Создать пользователя¶
, где:
login— уникальный логин пользователя.password— пароль, задаваемый для пользователя.
Пример ответа:
Новый пользователь автоматически привязывается к организации по умолчанию Unassigned cameras.
Удалить пользователя¶
, где YOUR-DOMAIN-NAME — имя домена.
Ответ:
Организации¶
Управление организациями в cloud.vsaas.io.
Получить список всех организаций¶
, где YOUR-DOMAIN-NAME — имя домена.
Пример ответа:
Получить список всех доступных тарифов для организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.
Пример ответа:
Пользователи в организации¶
Управление пользователями в организации в cloud.vsaas.io.
Получить список всех пользователей организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.
Пример ответа:
Подключить пользователя с правами для чтения к конкретной организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.user_id— ID пользователя, присваиваемый при создании пользователя.
Пример ответа:
У пользователя нет никаких прав, даже права смотреть камеры: "folders_permissions": [].
Подключить пользователя с правами для редактирования камер к конкретной организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации,user_id— ID пользователя, присваиваемый при создании пользователя.
Пример ответа:
У пользователя нет права смотреть камеры: "folders_permissions": [].
Удалить пользователей из организации по умолчанию¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.USER-ID— ID пользователя, присваиваемый при создании пользователя.
Ответ:
Папки в организациях¶
Управление папками в организациях в cloud.vsaas.io.
Получить список всех папок в конкретной организации¶
Все камеры находятся в какой-то папке, то есть нет камер вне папок. При создании организации создаётся папка по умолчанию Cameras.
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.
Пример ответа:
Предоставить права для пользователей в конкретной папке организации¶
, где:
YOUR-DOMAIN-NAME— имя домена,ORGANIZATION-ID— ID организации, присваиваемый при создании организации.FOLDER-ID— ID папки с камерами.
Пример ответа: