🔌 API / Verify
Verify API
Verify API позволяет валидировать лицензии плагинов без прямого доступа к БД магазина. Используется внутри плагинов и для интеграций.
Endpoint
POST /api/verify
Content-Type: application/json
Тело запроса
{
"license_key": "...",
"plugin_id": 1,
"hwid": "abc-def-..."
}
Ответ (успех)
{
"ok": true,
"license_id": 42,
"user_id": -3,
"plugin_id": 1,
"plugin_name": "MetaGenshin AutoLot",
"license_type": "forever",
"expires_at": null,
"signature": "..."
}
Ответ (отказ)
HTTP 403:
{ "ok": false, "reason": "invalid_or_expired_license" }
Готовый license-helper
Скачайте meta_license.py из website/storage/files/meta_license.py и положите рядом
с плагином (или в cardinal/FunPayAPI/common/). В init() вашего плагина:
from FunPayAPI.common.metascript_license import (
ensure_active, register_telegram_command,
)
PLUGIN_ID = 2 # см. https://metascript.ru/plugin/2
LICENSE_PUBKEY = "<скопируйте LICENSE_SECRET из админки>"
BIND_TO_PRE_INIT = [
lambda c: register_telegram_command(c, PLUGIN_ID, LICENSE_PUBKEY,
plugin_name="MetaGenshin AutoLot"),
]
def init(cardinal):
if not ensure_active(cardinal, plugin_id=PLUGIN_ID,
license_pubkey=LICENSE_PUBKEY,
plugin_name="MetaGenshin AutoLot"):
return # плагин не запустится без активной лицензии
# ... остальной код плагина
После установки в Telegram-боте Cardinal:
/meta_license_2 ABCD-EFGH-IJKL-MNOP
Helper:
- сам собирает HWID (machine-id + MAC + hostname → SHA-256);
- кэширует подпись локально для оффлайн-валидации;
- проверяет срок и HWID при каждом старте.
Оффлайн-валидация
Если сервер недоступен, helper проверяет HMAC-подпись локально по сохранённому
кэшу. Срок действия (expires_at) тоже проверяется локально.
Включение
Verify API встроен в основной web-процесс — никаких отдельных портов.
Доступен на https://metascript.ru/api/verify.
Не помогло? Напишите @Weks8 в Telegram.