База знаний EMS-платформы PlatParts Руководство по настройке EMS-платформы PlatParts
Актуальная (latest)

Лицензирование модулей

На этой странице 6

Лицензирование модулей интеграции

Ядро PlatParts не проверяет лицензии через WHMCS или свой HTTP. Оно только вызывает ваш класс из пакета.

Manifest

json
"license": {
  "required": true,
  "validator": "Modules\\Integrations\\MyCrm\\MyCrmLicenseValidator",
  "label": "Лицензионный ключ",
  "recheck_hours": 24
}

required: false — всегда valid, используется NullModuleLicenseValidator.

Интерфейс валидатора

App\Integrations\Licensing\ModuleLicenseValidatorInterface:

php
public function verify(ModuleLicenseContext $context): ModuleLicenseResult;

Контекст (ModuleLicenseContext):

  • licenseKey, domain, serverIp, installPath
  • packageCode, packageVersion

Результат:

php
return ModuleLicenseResult::valid('опциональное сообщение');
return ModuleLicenseResult::invalid('Причина отказа');

Вся логика (HTTP к API вендора, офлайн‑файл, подпись) — только в вашем классе.

Шаблон: modules/Integrations/_Template/TemplateLicenseValidator.php.

Где вводить ключ

Модули интеграций → Лицензирование модулей — поле с подписью из license.label, кнопка Проверить в строке модуля.

Пока license_status не valid и required: true — модуль не operational: хуки и inbound не доставляются.

Cron и обновления платформы

Действие Когда
integrations:licenses:verify Cron раз в сутки; пропускает недавно проверенные (recheck_hours)
Проверить в админке После ввода/смены ключа
integrations:licenses:verify --force Отладка, принудительно все модули

После обновления zapex ключи в БД не сбрасываются — cron догонит по расписанию.

Не нужно запускать verify после каждого деплоя.

Проверка из CLI

bash
php artisan integrations:licenses:verify --force
php artisan integrations:package:inspect MyCrm -v

Строка Operational: нет при invalid лицензии.

Связанные разделы