ตรวจสอบไลเซนส์
ระบบและปลั๊กอินที่พัฒนาโดย RIIS-DATA มีหมายเลขไลเซนส์ ที่นี่คุณตรวจสอบได้ว่าไลเซนส์ใช้ได้กับเว็บไซต์หรือไม่
วิธีตรวจสอบไลเซนส์จากเว็บไซต์
เว็บไซต์ส่งข้อมูลสามอย่างไปยัง RIIS-DATA และได้รับคำตอบกลับ (ใช้ได้หรือไม่):
licenseหมายเลขไลเซนส์RIIS-XXXX-XXXX-XXXX-XXXXsiteชื่อเว็บไซต์เว็บไซต์ของฉันurlมาจากที่อยู่ของเว็บไซต์ เช่น https://www.example.noที่อยู่: https://riis-data.no/api/license.php · POST (JSON) หรือ GET
- คัดลอกไฟล์ด้านล่างแล้วบันทึกเป็น riis-license.php บนเว็บไซต์ของคุณ
- วางไฟล์บนเว็บไซต์และเพิ่มบรรทัดเหล่านี้ตรงจุดเริ่มของระบบ (ใน WordPress: ในปลั๊กอินหรือธีม):
<?php
require __DIR__ . '/riis-license.php';
if (!riis_license_ok()) {
echo riis_license_notice(); // หรือหยุดระบบ
}คำตอบจะถูกเก็บไว้ 12 ชั่วโมง จึงถาม RIIS-DATA ไม่เกินวันละสองครั้ง หากติดต่อ RIIS-DATA ไม่ได้ เว็บไซต์จะยังทำงานต่อ คำตอบลงนามด้วยหมายเลขไลเซนส์ จึงปลอมแปลงไม่ได้
แสดงไฟล์ทั้งหมด
<?php
/**
* RIIS-DATA license check for your website (PHP 7.4+, works in WordPress and any PHP site).
*
* 1. Save this file on your website, e.g. as riis-license.php
* 2. Include it and check the license:
*
* require __DIR__ . '/riis-license.php';
* if (!riis_license_ok()) {
* echo riis_license_notice(); // or stop the system / show a message to the admin
* }
*
* The answer is cached for 12 hours, so RIIS-DATA is contacted at most twice a day.
* If RIIS-DATA cannot be reached, the website keeps working (it tries again within an hour).
* The answer is signed with your license number, so it cannot be faked by a third party.
*/
const RIIS_LICENSE_KEY = 'RIIS-XXXX-XXXX-XXXX-XXXX'; // license number
const RIIS_LICENSE_SITE = 'เว็บไซต์ของฉัน'; // webpage name
const RIIS_LICENSE_API = 'https://riis-data.no/api/license.php';
/** Full check result: valid, status, message, product, expires_at … */
function riis_license_check(bool $force = false): array
{
$cache = rtrim(sys_get_temp_dir(), '/\\') . '/riis_license_' . md5(RIIS_LICENSE_KEY . '|' . riis_license_url()) . '.json';
if (!$force && is_file($cache)) {
$c = json_decode((string)file_get_contents($cache), true);
if (is_array($c) && ($c['_until'] ?? 0) > time()) {
return $c;
}
}
$nonce = bin2hex(random_bytes(8));
$body = json_encode([
'license' => RIIS_LICENSE_KEY, // license number
'site' => RIIS_LICENSE_SITE, // webpage name
'url' => riis_license_url(), // coming from
'nonce' => $nonce,
]);
$raw = false;
if (function_exists('curl_init')) {
$ch = curl_init(RIIS_LICENSE_API);
curl_setopt_array($ch, [CURLOPT_POST => true, CURLOPT_POSTFIELDS => $body, CURLOPT_RETURNTRANSFER => true,
CURLOPT_TIMEOUT => 6, CURLOPT_HTTPHEADER => ['Content-Type: application/json']]);
$raw = curl_exec($ch);
curl_close($ch);
} else {
$raw = @file_get_contents(RIIS_LICENSE_API, false, stream_context_create(['http' => [
'method' => 'POST', 'timeout' => 6, 'ignore_errors' => true, 'header' => "Content-Type: application/json\r\n", 'content' => $body]]));
}
$d = is_string($raw) ? json_decode($raw, true) : null;
if (!is_array($d) || !isset($d['status'])) {
// RIIS-DATA not reachable: do not block the website, try again within an hour
$d = ['valid' => true, 'status' => 'offline', 'message' => 'License server not reachable', '_until' => time() + 3600];
} elseif (isset($d['signature'])) {
$expected = hash_hmac('sha256', implode('|', [!empty($d['valid']) ? '1' : '0', $d['status'], RIIS_LICENSE_KEY,
$d['domain'] ?? '', $d['expires_at'] ?? '', $d['checked_at'] ?? '', $nonce]), RIIS_LICENSE_KEY);
if (!hash_equals($expected, (string)$d['signature'])) {
$d = ['valid' => false, 'status' => 'bad_signature', 'message' => 'The answer could not be verified'];
}
$d['_until'] = time() + 12 * 3600;
} else {
$d['_until'] = time() + 12 * 3600; // unknown license number
}
@file_put_contents($cache, json_encode($d));
return $d;
}
function riis_license_ok(): bool
{
return !empty(riis_license_check()['valid']);
}
/** Message to show when the license is not valid. */
function riis_license_notice(): string
{
$d = riis_license_check();
return '<div style="padding:12px 16px;background:#fff0f2;border:1px solid #FF0027;border-radius:8px;font-family:sans-serif">'
. '<strong>License:</strong> ' . htmlspecialchars((string)($d['message'] ?? 'Not valid')) . ' – RIIS-DATA</div>';
}
/** This website's address ("coming from"). */
function riis_license_url(): string
{
if (function_exists('home_url')) { // WordPress
return home_url('/');
}
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off') || ($_SERVER['SERVER_PORT'] ?? '') == 443;
return ($https ? 'https' : 'http') . '://' . ($_SERVER['HTTP_HOST'] ?? 'localhost') . '/';
}
สำหรับเว็บไซต์ที่ไม่มี PHP: ใส่โค้ดนี้ก่อน </body> จะแสดงแถบสีแดงหากไลเซนส์ใช้ไม่ได้
<script>
fetch('https://riis-data.no/api/license.php', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
license: "RIIS-XXXX-XXXX-XXXX-XXXX", // license number
site: "เว็บไซต์ของฉัน", // webpage name
url: location.origin // coming from
})
})
.then(r => r.json())
.then(d => {
if (!d.valid) {
document.body.insertAdjacentHTML('afterbegin',
'<div style="background:#FF0027;color:#fff;padding:10px;text-align:center">License: ' + d.message + '</div>');
}
});
</script>เพื่อทดสอบจากบรรทัดคำสั่ง ภาษาโปรแกรมใดก็ได้ หรือในเบราว์เซอร์โดยตรง:
curl -X POST https://riis-data.no/api/license.php \
-H 'Content-Type: application/json' \
-d '{"license":"RIIS-XXXX-XXXX-XXXX-XXXX","site":"เว็บไซต์ของฉัน","url":"https://www.example.no"}'
# หรือในเบราว์เซอร์โดยตรง:
https://riis-data.no/api/license.php?license=RIIS-XXXX-XXXX-XXXX-XXXX&site=%E0%B9%80%E0%B8%A7%E0%B9%87%E0%B8%9A%E0%B9%84%E0%B8%8B%E0%B8%95%E0%B9%8C%E0%B8%82%E0%B8%AD%E0%B8%87%E0%B8%89%E0%B8%B1%E0%B8%99&url=https%3A%2F%2Fwww.example.no{
"valid": true,
"status": "valid",
"message": "The license is valid.",
"product": "RIIS Booking Plugin",
"site_name": "เว็บไซต์ของฉัน",
"domain": "example.no",
"expires_at": "2027-12-31",
"checked_at": "2026-10-19T19:14:54Z",
"nonce": "a1b2c3",
"signature": "9f2c…"
}| status | valid | ความหมาย |
|---|---|---|
valid | true | ไลเซนส์ใช้งานได้ |
activated | true | ไลเซนส์ใช้งานได้ และลงทะเบียนกับเว็บไซต์นี้แล้ว |
development | true | ที่อยู่สำหรับพัฒนา (localhost) – ยอมรับ แต่ไม่ลงทะเบียน |
invalid | false | ไม่พบหมายเลขไลเซนส์นี้ |
domain_mismatch | false | ไลเซนส์ไม่ได้ลงทะเบียนกับเว็บไซต์นี้ |
expired | false | ไลเซนส์หมดอายุแล้ว |
suspended | false | ไลเซนส์ถูกระงับชั่วคราว กรุณาติดต่อ RIIS-DATA |
revoked | false | ไลเซนส์ถูกเพิกถอนแล้ว |
missing_key | false | ไม่ได้ส่งหมายเลขไลเซนส์มา |
missing_url | false | ไม่มีที่อยู่ของเว็บไซต์ (url) |
signature = HMAC-SHA256 ของ "valid|status|license|domain|expires_at|checked_at|nonce" โดยใช้หมายเลขไลเซนส์เป็นคีย์ (valid = 1 หรือ 0) ไฟล์ PHP ตรวจสอบให้คุณ
ลูกค้าดูหมายเลขไลเซนส์ได้ในพอร์ทัลลูกค้า ที่เมนู ไลเซนส์ของฉัน เข้าสู่ระบบ