📚 Документация
Система лицензирования KCP
💎 Тарифные планы
🆓 FREE (Бесплатная)
- До 10 принтеров - полностью бесплатно
- Все функции доступны
- Навсегда, без ограничений по времени
- Создается автоматически при первом запуске
⏱️ TRIAL (Пробная)
- 14 дней без ограничений
- Неограниченное количество принтеров
- Для тестирования больших ферм
- БЕСПЛАТНО! Выдается автоматически
- После окончания → возврат к FREE (10 принтеров)
💎 STANDARD (Стандартная)
- Пожизненная лицензия
- Без ограничений по принтерам
- Привязка к 1 компьютеру (по Hardware ID)
- Все обновления включены
- Цена: По согласованию с клиентом
👑 PROFESSIONAL (Профессиональная)
- Все из Standard
- Перенос на новый ПК (2 раза в год)
- Приоритетная поддержка
- Рекомендуется для профессиональных пользователей
- Цена: По согласованию с клиентом
🔄 Процесс получения лицензии
⏱️ Trial (автоматически)
- Клиент находит бота @kcp_licensing_bot в Telegram
- Отправляет команду
/start
- Открывает KCP → кнопка "🔐 Лицензия"
- Вкладка "Trial" → кнопка "Запросить Trial"
- Ключ автоматически приходит в чат с ботом!
- Активирует ключ в приложении
✅ Trial выдается автоматически, БЕЗ подтверждения админа!
Уведомление админу приходит БЕЗ ЗВУКА (информативно).
💎 Standard / Professional (с оплатой)
- Клиент находит бота @kcp_licensing_bot в Telegram
- Отправляет команду
/start
- Открывает KCP → кнопка "🔐 Лицензия"
- Вкладка "Тарифы" → выбирает Standard или Professional
- Нажимает "Запросить лицензию"
- ВАМ приходит уведомление СО ЗВУКОМ с Telegram клиента
- Связываетесь с клиентом для уточнения способа оплаты
- После получения оплаты нажимаете кнопку "✅ Оплачено - Выдать ключ"
- Бот автоматически отправляет ключ клиенту в чат
- Клиент активирует ключ в приложении
⚠️ Если Telegram клиента не определен:
Клиент получит подробную инструкцию:
• Написать /start боту
• Установить username в Telegram
• Повторить запрос в течение 10 минут
• Или связаться с вами напрямую (@Tom_Tomich)
🔧 Технические детали
Hardware ID (HWID)
Уникальный идентификатор компьютера, основанный на:
- CPU (модель, количество ядер)
- MAC адрес сетевой карты
- Hostname компьютера
- UUID материнской платы
SHA-256 хэш всех компонентов → 32 символа (16 байт hex)
Валидация HWID
- При открытии окна лицензирования → HWID отправляется на сервер
- Регистрируется в таблице
hwid_telegram_mapping
- Окно валидности: 10 минут
- При запросе лицензии → проверка что HWID был зарегистрирован
- Защита от подделки HWID
Связь HWID ↔ Telegram
- Клиент пишет
/start → сохраняется username + chat_id
- Клиент открывает окно → регистрируется HWID
- При запросе → сервер связывает HWID с Telegram (по времени)
- Бот знает кому отправлять ключ!
Генерация ключей
Trial: SHA-256(HWID + plan + dates + secret)
Платные: AES-256-CBC шифрование payload
Формат: KCP-XXXX-XXXX-XXXX-XXXX-XXXX
Проверка лицензии
- Локально: при каждом запуске приложения
- Онлайн: раз в 30 дней
- Grace period: 90 дней работы без интернета
- HWID: проверка при каждой активации
💾 Базы данных
telegram_users
Регистрация пользователей Telegram (команда /start)
telegram_username - username с @
chat_id - для отправки сообщений
first_seen - первая регистрация
last_seen - последняя активность
hwid_telegram_mapping
Связь Hardware ID с Telegram username
hwid - Hardware ID клиента
telegram_username - @username
registered_at - время регистрации
last_seen - последняя активность
platform - ОС клиента
version - версия KCP
⏱️ Окно валидности: 10 минут
Клиент должен написать /start и запросить лицензию в течение 10 минут.
📡 API Endpoints
POST /api/license/register-hwid
Регистрация HWID (вызывается при открытии окна лицензирования)
Body: { hwid, platform, version }
POST /api/license/request
Запрос лицензии от клиента
Body: { hwid, plan, email }
Валидация: HWID должен быть зарегистрирован (последние 10 мин)
POST /api/license/activate
Активация лицензионного ключа
Body: { key, hwid, version }
POST /api/license/validate
Онлайн валидация лицензии
Body: { key, hwid }
🤖 Команды Telegram Bot
/start
Регистрация пользователя в системе
- Сохраняет username + chat_id
- Отправляет приветствие с инструкцией
- Необходимо для получения ключей
/status
Проверка статуса запросов на лицензию
- Показывает последние 5 запросов
- Статус каждого запроса
Callback кнопки (для админа)
- ✅ Оплачено - Выдать ключ - генерация и отправка ключа
- ❌ Отклонить - отклонение запроса
⚙️ Как это работает
Шаг 1: Регистрация (клиент)
- Клиент пишет боту
/start
- Бот сохраняет в БД: username → chat_id
Шаг 2: Открытие окна (клиент)
- Клиент нажимает "🔐 Лицензия" в приложении
- Приложение автоматически отправляет HWID на сервер
- Сервер сохраняет HWID с timestamp
Шаг 3: Запрос лицензии (клиент)
- Клиент выбирает план и нажимает "Запросить"
- Приложение отправляет: HWID + plan + email
- Сервер проверяет HWID (зарегистрирован ли?)
- Сервер ищет Telegram по времени (последние 10 мин)
- Связывает HWID ↔ Telegram
Шаг 4: Обработка (бот)
Для Trial:
- Генерирует ключ автоматически
- Отправляет клиенту в чат
- Уведомляет админа БЕЗ ЗВУКА 🔕
Для Standard/Professional:
- Отправляет админу СО ЗВУКОМ 🔔
- Показывает Telegram клиента
- Админ связывается → оплата
- Админ жмет кнопку → ключ клиенту
⚙️ Настройка (через веб-интерфейс)
Перейдите на страницу
🤖 Bot Admin
- Создайте бота через @BotFather:
/newbot
- Получите ваш ID через @userinfobot:
/start
- Заполните форму на странице Bot Admin
- Нажмите "🧪 Проверить бота" (валидация)
- Нажмите "💾 Сохранить настройки"
- Нажмите "🔄 Перезапустить сервер"
- ✅ Готово! Бот работает
✨ Полностью через браузер, БЕЗ SSH!
🔒 Безопасность
Hardware ID
- Уникальный для каждого компьютера
- SHA-256 хэш аппаратных компонентов
- Невозможно подделать без доступа к железу
Валидация
- HWID проверяется на сервере (окно 10 минут)
- Telegram проверяется через /start (окно 10 минут)
- Автоматическая связь HWID ↔ Telegram
- Защита от подмены данных
Ключи
- Trial: SHA-256 хэш с секретным ключом
- Платные: AES-256-CBC шифрование
- Привязка к Hardware ID
- Невозможно использовать на другом ПК (кроме Professional с лимитом)
🔧 Решение проблем
"Telegram не определен"
- Убедитесь что клиент написал боту
/start
- У клиента должен быть установлен username в Telegram
- Между
/start и запросом должно пройти менее 10 минут
"Invalid HWID"
- Клиент должен сначала открыть окно лицензирования
- Между открытием и запросом - менее 10 минут
Бот не отвечает
- Проверьте настройки на странице Bot Admin
- Проверьте токен бота (кнопка "🧪 Проверить")
- Перезапустите сервер (кнопка "🔄")