RESTful Licensing API v1.0

Krusomchai Developer API & SDK

คู่มือการเชื่อมต่อระบบตรวจสอบลิขสิทธิ์ซอฟต์แวร์ทางไกล (Remote License Verification) สำหรับนักพัฒนาและผู้ดูแลระบบโรงเรียน หน่วยงานราชการ หรือแอปพลิเคชันภายนอก

POST /api/v1/licenses/verify

Content-Type: application/json

ส่งคำขอตรวจสอบความถูกต้องของรหัส License Key และสถานะการผูกโดเมน โดยระบบจะตอบกลับเป็น JSON

Request Parameters (JSON Body)

Field Type Required Description
license_key string Yes รหัสลิขสิทธิ์ เช่น KRU-DEMO-2026-X889
domain string Optional โดเมนที่กำลังรันระบบ เช่น school.ac.th
Integration Code Examples
// ตัวอย่างการตรวจสอบสิทธิ์ใน PHP (Laravel / Guzzle)
use Illuminate\Support\Facades\Http;

$response = Http::post('https://krusomchai.umkorper.com/api/v1/licenses/verify', [
    'license_key' => 'KRU-DEMO-2026-X889',
    'domain'      => request()->getHost(),
]);

if ($response->successful() && $response->json('valid')) {
    // ลิขสิทธิ์ถูกต้อง เปิดใช้งานระบบปกติ
    $licenseData = $response->json('data');
    Log::info("Licensed to: " . $licenseData['licensed_to']);
} else {
    // ลิขสิทธิ์ไม่ถูกต้อง หรือหมดอายุ
    abort(403, 'ซอฟต์แวร์นี้ยังไม่ได้รับอนุญาตให้ใช้งาน');
}

Interactive API Sandbox

ทดสอบยิง API จริงและดูผลลัพธ์ JSON Real-time

JSON Response Output Status: -
กดปุ่ม "ทดสอบยิงคำขอ" เพื่อดู JSON Response...
WEBHOOK

License Expiration & Renewal Webhooks

HMAC-SHA256

ระบบ Webhook ของ Krusomchai ช่วยให้เซิร์ฟเวอร์หรือแอปพลิเคชันของคุณสามารถรับการแจ้งเตือนแบบเรียลไทม์ (Real-time Event Notifications) เมื่อ License ใกล้หมดอายุ (30 วัน, 7 วัน, หรือหมดอายุ) เพื่อแจ้งเตือนแอดมินองค์กรผ่าน Slack, LINE, Discord หรืออัปเดตสถานะในฐานข้อมูลอัตโนมัติ

Event Types ที่รองรับ

license.expiring_soon แจ้งเตือนเมื่อ License เหลืออายุ ≤ 30 วัน
license.expired แจ้งเตือนเมื่อ License สิ้นสุดระยะเวลาใช้งาน
license.renewed แจ้งเตือนเมื่อ License ได้รับการต่ออายุสำเร็จ
license.test_ping ทดสอบการเชื่อมต่อ Endpoint จากระบบ Dashboard

Security & Signature Verification (PHP / Node.js)

ทุกคำขอที่ส่งไปยัง Webhook URL ของคุณ จะมี Header X-Krusomchai-Signature (เช่น t=1756203600,v1=abc...) เพื่อใช้ตรวจสอบความถูกต้องว่ามาจากระบบ Krusomchai จริง

// PHP Laravel Signature Verification Example
$signatureHeader = $request->header('X-Krusomchai-Signature'); // t=1756203600,v1=...
preg_match('/t=(\d+),v1=([a-f0-9]+)/', $signatureHeader, $matches);
$timestamp = $matches[1] ?? '';
$expectedSig = $matches[2] ?? '';

$rawPayload = $request->getContent();
$calculatedSig = hash_hmac('sha256', "{$timestamp}.{$rawPayload}", $webhookSecret);

if (hash_equals($expectedSig, $calculatedSig)) {
    // Valid Webhook Event
    $event = $request->json('event');
    $licenseKey = $request->json('data.license_key');
}