Sjekk lisens
Systemer og utvidelser utviklet av RIIS-DATA har et lisensnummer. Her kan du sjekke om en lisens er gyldig for en nettside.
Slik sjekker nettsiden lisensen
Nettsiden sender tre ting til RIIS-DATA og får et svar tilbake (gyldig eller ikke):
licenseLisensnummerRIIS-XXXX-XXXX-XXXX-XXXXsiteNettsidens navnMin nettsideurlKommer fraadressen til nettsiden, f.eks. https://www.example.noAdresse: https://riis-data.no/api/license.php · POST (JSON) eller GET
- Kopier filen under og lagre den som riis-license.php på nettsiden din.
- Legg den på nettsiden og legg til disse linjene der systemet starter (i WordPress: i utvidelsen eller temaet):
<?php
require __DIR__ . '/riis-license.php';
if (!riis_license_ok()) {
echo riis_license_notice(); // eller stopp systemet
}Svaret lagres i 12 timer, så RIIS-DATA spørres høyst to ganger i døgnet. Hvis RIIS-DATA ikke kan nås, fortsetter nettsiden å virke. Svaret er signert med lisensnummeret, så det kan ikke forfalskes.
Vis hele filen
<?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 = 'Min nettside'; // 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') . '/';
}
For nettsider uten PHP: legg dette før </body>. Det viser en rød stripe hvis lisensen ikke er gyldig.
<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: "Min nettside", // 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>For å teste fra kommandolinjen, et hvilket som helst programmeringsspråk eller rett i nettleseren:
curl -X POST https://riis-data.no/api/license.php \
-H 'Content-Type: application/json' \
-d '{"license":"RIIS-XXXX-XXXX-XXXX-XXXX","site":"Min nettside","url":"https://www.example.no"}'
# eller rett i nettleseren:
https://riis-data.no/api/license.php?license=RIIS-XXXX-XXXX-XXXX-XXXX&site=Min+nettside&url=https%3A%2F%2Fwww.example.no{
"valid": true,
"status": "valid",
"message": "The license is valid.",
"product": "RIIS Booking Plugin",
"site_name": "Min nettside",
"domain": "example.no",
"expires_at": "2027-12-31",
"checked_at": "2026-10-19T19:16:54Z",
"nonce": "a1b2c3",
"signature": "9f2c…"
}| status | valid | Betydning |
|---|---|---|
valid | true | Lisensen er gyldig. |
activated | true | Lisensen er gyldig og er nå registrert på denne nettsiden. |
development | true | Utviklingsadresse (localhost) – godtatt, ikke registrert. |
invalid | false | Lisensnummeret finnes ikke. |
domain_mismatch | false | Lisensen er ikke registrert på denne nettsiden. |
expired | false | Lisensen har utløpt. |
suspended | false | Lisensen er sperret. Kontakt RIIS-DATA. |
revoked | false | Lisensen er tilbakekalt. |
missing_key | false | Ingen lisensnummer ble sendt. |
missing_url | false | Adressen til nettsiden (url) mangler. |
signature = HMAC-SHA256 av «valid|status|license|domain|expires_at|checked_at|nonce» med lisensnummeret som nøkkel (valid = 1 eller 0). PHP-filen sjekker dette for deg.
Kunder finner lisensnumrene sine i kundeportalen under Mine lisenser. Logg inn