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 |
// ตัวอย่างการตรวจสอบสิทธิ์ใน 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
License Expiration & Renewal Webhooks
ระบบ Webhook ของ Krusomchai ช่วยให้เซิร์ฟเวอร์หรือแอปพลิเคชันของคุณสามารถรับการแจ้งเตือนแบบเรียลไทม์ (Real-time Event Notifications) เมื่อ License ใกล้หมดอายุ (30 วัน, 7 วัน, หรือหมดอายุ) เพื่อแจ้งเตือนแอดมินองค์กรผ่าน Slack, LINE, Discord หรืออัปเดตสถานะในฐานข้อมูลอัตโนมัติ
Event Types ที่รองรับ
Security & Signature Verification (PHP / Node.js)
ทุกคำขอที่ส่งไปยัง Webhook URL ของคุณ จะมี Header X-Krusomchai-Signature (เช่น t=1756203600,v1=abc...) เพื่อใช้ตรวจสอบความถูกต้องว่ามาจากระบบ Krusomchai จริง
$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');
}