توثيق API

دليل شامل لدمج واجهة برمجة التحقق من التراخيص في تطبيقاتك.

الرابط الأساسي

http://api.licensehub.jervis.cloud/api

المصادقة

نقاط نهاية تفعيل والتحقق من التراخيص عامة. أرسل الطلبات مع Content-Type: application/json.

مثال على Header
Content-Type: application/json

تفعيل الترخيص

تفعيل مفتاح الترخيص على جهاز معين. قدم مفتاح الترخيص مع بصمة الجهاز واسم المضيف والمنصة.

POST/license/activate

محتوى الطلب

{
  "key": "XXXX-XXXX-XXXX-XXXX",
  "fingerprint": "unique-device-fingerprint",
  "hostname": "User-PC",
  "platform": "Windows 11"
}
استجابة ناجحة
{
  "message": "License activated successfully",
  "license": {
    "key": "XXXX-XXXX-XXXX-XXXX",
    "status": "active",
    "product": "My Product",
    "plan": "Professional",
    "expiresAt": "2025-12-31T23:59:59Z"
  }
}
استجابة خطأ
{
  "error": "Device limit reached",
  "allowed": 5
}

التحقق من الترخيص

التحقق مما إذا كان مفتاح الترخيص لا يزال صالحًا. يعيد حالة الترخيص وتفاصيل الخطة واستخدام الأجهزة.

POST/license/validate

محتوى الطلب

{
  "key": "XXXX-XXXX-XXXX-XXXX"
}

الاستجابة

{
  "status": "active",
  "message": "License is valid",
  "license": {
    "key": "XXXX-XXXX-XXXX-XXXX",
    "product": "My Product",
    "plan": "Professional",
    "price": 29.99,
    "expiresAt": "2025-12-31T23:59:59Z",
    "devicesUsed": 2,
    "maxDevices": 5
  }
}

رموز الخطأ

قائمة برموز الخطأ المحتملة التي يعيدها API.

الرمزالوصفحالة HTTP
LICENSE_NOT_FOUNDمفتاح الترخيص غير موجود404
LICENSE_EXPIREDانتهت صلاحية الترخيص403
LICENSE_REVOKEDتم إلغاء الترخيص403
DEVICE_LIMIT_REACHEDتم الوصول للحد الأقصى للأجهزة403
INVALID_DEVICE_IDمعرف الجهاز غير صالح400
RATE_LIMIT_EXCEEDEDطلبات كثيرة جداً429
UNAUTHORIZEDمفتاح API غير صالح أو مفقود401

أمثلة SDK

أمثلة كود لدمج API الترخيص في لغات برمجة مختلفة.

license.js
const API_BASE = "YOUR_API_BASE/api";

// Activate license
async function activateLicense(licenseKey) {
  const response = await fetch(`${API_BASE}/license/activate`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      key: licenseKey,
      fingerprint: getDeviceFingerprint(),
      hostname: os.hostname(),
      platform: os.platform()
    })
  });
  
  const data = await response.json();
  if (!response.ok) throw new Error(data.error);
  
  console.log("License activated:", data.license);
  return data;
}

// Validate license
async function validateLicense(licenseKey) {
  const response = await fetch(`${API_BASE}/license/validate`, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ key: licenseKey })
  });
  
  const data = await response.json();
  return data.status === "active";
}

حدود الطلبات

طلبات API محدودة لضمان الاستخدام العادل.

1000
طلب في الساعة
10
طلب في الثانية
429
كود حالة تجاوز الحد