Лицензирование Smit Billing
Содержание раздела
- Сервер лицензий
- Как лицензия попадает в биллинг
- Выдача новой лицензии
- Активация лицензии в биллинге
- Управление лицензиями
- Каталог модулей: версии, changelog, зависимости
- Виджеты-плагины
- Точки монтирования
- Виджет фонов страницы входа
- Виджет оформления интерфейса
- Площадка: чужие виджеты и деньги
- API проверки лицензии
- Порядок поставки и учёта программного обеспечения
- Не проходит оплата
Система лицензирования СмИТ Биллинг состоит из двух компонентов: центрального сервера лицензий и раздела «Лицензия» в каждой инсталляции биллинга. Лицензия привязана к домену инсталляции и проверяется онлайн.
https://license.billing.smit34.ru/api/verify/, передавая ключ и домен. Сервер возвращает данные лицензиата. Ответ кешируется на 1 час — кратковременная недоступность сервера не влияет на работу системы.
Для доступа введите пароль.
Сервер лицензий
Как лицензия попадает в биллинг
Лицензия не «зашита» в код: биллинг спрашивает у сервера лицензий, что клиенту разрешено, и включает ровно эти модули. Связь односторонняя — сервер лицензий сам в биллинг не ходит.
flowchart LR
subgraph LS["Сервер лицензий"]
CL["Клиент
и договор"]
PL["Тариф:
состав модулей"]
KEY["Лицензионный
ключ"]
end
subgraph B["Биллинг клиента"]
CHK["Проверка ключа
раз в сутки"]
CAT["Каталог модулей
кеш 6 часов"]
GATE["Гейт модуля
is_enabled(код)"]
UI["Разделы, вкладки,
задачи по расписанию"]
end
CL --> PL --> KEY
KEY -->|"X-License-Key"| CHK
CHK --> CAT --> GATE --> UI
GATE -->|"не оплачен
или выключен"| OFF["Раздел скрыт"]
| Параметр | Значение |
|---|---|
| URL | https://license.billing.smit34.ru |
| API info | /api/info/ |
Выдача новой лицензии
- Открыть Добавить лицензию
- Заполнить поля:
| Поле | Описание | Пример |
|---|---|---|
| Домен | FQDN инсталляции (без https://) | billing.клиент.ru |
| Организация | Полное юридическое наименование | ООО «Ромашка» |
| ИНН | 10 или 12 цифр | 3400000000 |
| КПП | 9 цифр | 340001001 |
| Юридический адрес | Полный почтовый адрес | 400000, г. Волгоград, ул. Примерная, д. 1, оф. 1 |
| Контактное лицо | Должность и ФИО | Генеральный директор И.И. Иванов |
| Действует до | Дата окончания или пусто | пусто = бессрочно |
| Макс. клиентов | Лимит или 0 | 0 = без ограничений |
После сохранения ключ генерируется автоматически в формате SMIT-XXXXXXXX-XXXXXXXX-XXXXXXXX и отображается в карточке с кнопкой «Копировать».
Активация лицензии в биллинге
Клиент открывает Настройки → Лицензия (/admin/settings/license/):
- Ввести полученный ключ в поле «Лицензионный ключ» (кнопка 👁 показывает введённое значение)
- URL сервера лицензий уже заполнен:
https://license.billing.smit34.ru - Нажать «Сохранить и проверить»
- Страница обновится — статус изменится на ✅ Лицензия действующая
Управление лицензиями
| Действие | Как выполнить |
|---|---|
| Деактивировать | Снять галочку «Активна» в карточке или выбрать действие «Деактивировать» в списке |
| Продлить | Изменить поле «Действует до» в карточке |
| Сменить ключ | Действие «Сгенерировать новый ключ» в списке (старый немедленно перестаёт работать) |
| Просмотр статистики | Поля «Последняя проверка» и «Проверок» — показывают активность инсталляции |
Каталог модулей: версии, changelog, зависимости
Сервер лицензий ведёт каталог из 20 модулей с версиями и историей изменений. У каждого модуля: категория, иконка, текущая версия, changelog по версиям и зависимости (например, «AI-ассистент» требует модуль «Поддержка», «Автообзвон» — «IP-телефонию»). Версия модуля показывается бейджем на карточках при настройке тарифа.
- Базовые модули (ядро биллинга, RADIUS, отчёты, карта сети) доступны во всех тарифах и в настройке тарифа не участвуют;
- Тарифы — форма с карточками модулей по категориям: выбранные подсвечены, невыбранные полупрозрачны; у тарифа есть обложка и блок «Кто на этом тарифе» со ссылками на инсталляции;
- Защита от случайных изменений — состав модулей тарифа заблокирован до нажатия «Изменить состав модулей», при сохранении показывается список включаемых/выключаемых модулей; переключение признаков «Базовый (ядро)» и «Активен» требует подтверждения, удаление — ввода кода объекта.
Виджеты-плагины
Виджет — это zip-пакет, который клиент ставит из каталога кнопкой, без обновления биллинга. Внутри только то, что выполняется в браузере:
| Файл | Обязателен | Назначение |
|---|---|---|
widget.json | да | Манифест: slug, name, version, entry |
widget.js | да | Код виджета (значение entry) |
widget.css | нет | Оформление, подключается автоматически |
| картинки, шрифты, JSON | нет | Ресурсы виджета |
Из пакета распаковываются только фронтовые файлы: .js,
.css, .json, изображения и шрифты. Серверный код
игнорируется — он не выполнится, даже если попадёт в архив. Пути проверяются
на выход за пределы каталога, целостность — по SHA-256, манифест — при
загрузке на сервер лицензий. Файлы раздаются по
/media/widgets/<slug>/<версия>/.
Каталог инсталляция получает по лицензионному ключу:
GET /api/gw/widgets/. Виджет виден клиенту, если он активен и
входит в его тариф (пустой список тарифов — значит всем).
Точки монтирования
Точка задаёт, куда виджет попадёт и по какому договору работает.
| Точка | Где появляется | Что рисует |
|---|---|---|
crm_dashboard | CRM — дашборд | Карточку в общей полосе виджетов |
kanban | CRM — над колонками канбана | |
deal_card | CRM — карточка сделки | |
dashboard | Биллинг — дашборд | |
abonent_card | Карточка клиента | |
support_dashboard | Поддержка — дашборд | |
ticket_card | Карточка обращения, сайдбар | |
crm_recipe | — | Шаблон воронки, не интерфейс |
lk_login_bg | Личный кабинет — вход | Фоны страницы, см. ниже |
ui_icons | Панель — все страницы | Только файлы: меняет вид того, что уже есть |
Карточные виджеты получают контейнер
[data-smit-widget="<slug>"] и регистрируются через
window.SmitWidget.register(slug, fn). Настройки виджета
приходят в data-settings.
Виджет фонов страницы входа
Виджет точки lk_login_bg не рисует блок на странице, а
приносит набор вариантов оформления. Оператор выбирает вариант в
Настройки ЛК → Брендинг → Страница входа, рядом со встроенными
фонами; выбранный вариант записывается как wx:<идентификатор>.
Кроме widget.json и widget.js пакет содержит
backgrounds.json — список вариантов:
{
"schema": "smit.lk_backgrounds/1",
"backgrounds": [
{
"id": "silk",
"name": "Шёлк",
"hint": "Перетекающий градиент, ведомый шумом",
"engine": "webgl"
}
]
}
На странице входа биллинг выводит один слой и подключает файлы виджета:
<div class="lk-bgfx lk-bgfx-widget" data-smit-lkbg="silk" data-brand="#5BA89D"></div>
Код виджета сам находит такие элементы и рисует в них фон. Тот же слой используется для превью в настройках, поэтому оператор видит настоящий фон, а не картинку с ним.
Что обязан делать фоновый виджет:
- Брать цвет из
data-brand— это фирменный цвет организации. У мультиорганизационной установки он у каждого кабинета свой, жёстко зашитая палитра сделает фон чужим. - Различать светлую и тёмную тему — тема стоит в
data-bs-themeна<html>, а если атрибута нет, действует системная настройка. Смену темы стоит отслеживать: клиент переключает её прямо на странице входа. - Уважать «уменьшить движение»
(
prefers-reduced-motion: reduce) — при ней фон замирает на одном кадре. - Останавливаться в фоновой вкладке (
document.hidden) и убирать за собой в функции снятия — иначе после смены варианта на странице останутся два работающих холста. - Не обращаться наружу — страница входа открыта всем, сторонние запросы с неё недопустимы. Всё, что нужно виджету, лежит в его пакете.
- Иметь запасной вариант — если фон на WebGL, а его нет, показывайте более простой, а не пустой экран.
Виджет оформления интерфейса
Виджет точки ui_icons ничего не рисует сам — его файлы
подключаются ко всем страницам панели, и он меняет вид того, что там уже есть:
значки, подсветку, поведение при наведении. Разметки в шаблоне для него нет,
поэтому и настраивать нечего: поставили — работает, отключили — панель
выглядит как раньше.
Правила те же, что и у фонового виджета: цвет брать из брендинга
организации (переменная --brand-primary на странице), уважать
«уменьшить движение», ничего не запрашивать снаружи. Разметку панели менять
нельзя — виджет должен опираться на классы, которые там уже есть, иначе он
сломается на следующем обновлении биллинга.
Площадка: чужие виджеты и деньги
Виджет может быть нашим или сторонним. Сторонний публикуется как продукт площадки: у него есть автор, цена в месяц, бесплатный период и состояние модерации. Клиент видит такие продукты на страницах Настройки → Модули и Настройки → Виджеты и подключает кнопкой: биллинг сообщает об установке на сервер лицензий и тут же ставит сам пакет.
Доля автора по умолчанию — 70% подписки; счётчик установок и начисления ведёт площадка, а не инсталляция клиента. Заявка на подключение — license.billing.smit34.ru/developers/.
API проверки лицензии
Лицензию можно проверить напрямую через браузер или curl:
GET https://license.billing.smit34.ru/api/verify/?key=SMIT-XXXX-XXXX-XXXX&domain=клиент.ru
Ответ при действующей лицензии:
{
"valid": true,
"status": "Действующая",
"product": "Smit Billing",
"company": "ООО «Ромашка»",
"inn": "3400000000",
"kpp": "340001001",
"domain": "адрес вашей установки",
"issued_at": "2026-04-08",
"expires_at": null,
"max_abonents": 0
}
expires_at: null означает бессрочную лицензию. При valid: false поле error содержит причину отказа.
Порядок поставки и учёта программного обеспечения
Процедура приобретения СмИТ Биллинг:
- Заявка — отправьте запрос на sales@smit34.ru с указанием домена инсталляции, планируемого числа клиентов и необходимых модулей.
- Коммерческое предложение — менеджер подготовит КП со стоимостью лицензии и ежегодной платой за поддержку.
- Договор и оплата — заключается договор поставки ПО. Оплата по безналичному расчёту.
- Поставка — после оплаты предоставляется: лицензионный ключ, Docker-образы, документация, доступ к обновлениям.
- Активация — клиент вводит ключ в Настройки → Лицензия. Система онлайн проверяет ключ на сервере лицензий.
- Учёт — лицензия регистрируется в реестре ПО. Поставляется акт приёма-передачи неисключительных прав.
Не проходит оплата
- Ошибка в реквизитах — запросите актуальные реквизиты у менеджера.
- Платёж не зачислен — зачисление до 3 рабочих дней. По истечении — направьте платёжное поручение с отметкой банка на sales@smit34.ru.
- Нужна корректировка счёта — обратитесь к менеджеру для выставления нового счёта.