namespace App\Services;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class LicenseService {
private static function getSecretKey() : string {
return env("LICENSE_SECRET", "9b1e4f9a8a4d4d0e92f3b1df4b8d7c6f2a7c3e1b6d5f9a2c4e7b0d1f3a6c8e2");
}
public static function getInfo() {
$settings = DB::table("settings")->first();
$license_key = $settings->license_key ?? null;
if (!$license_key) {
return array("status" => "missing", "message" => "Lisensi tidak ditemukan");
}
$parts = explode(, $license_key);
if (count($parts) !== 2) {
return array("status" => "invalid", "message" => "Format lisensi tidak valid");
}
$payload_base64 = $parts[0];
$signature = $parts[1];
$secret = self::getSecretKey();
if (!$secret) {
return array("status" => "invalid", "message" => "Konfigurasi secret lisensi tidak tersedia");
}
$expected_signature = hash_hmac("sha256", $payload_base64, $secret);
if ($signature !== $expected_signature) {
return array("status" => "invalid", "message" => "Lisensi tidak sah");
}
$data = json_decode(base64_decode($payload_base64), true);
if (!$data) {
return array("status" => "invalid", "message" => "Data lisensi rusak");
}
$expiry_timestamp = strtotime($data["expiry_date"] ?? '');
if (!$expiry_timestamp || time() > $expiry_timestamp) {
return array("status" => "expired", "message" => "Lisensi telah kadaluarsa", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
return array("status" => "active", "message" => "Lisensi aktif", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
public static function update($license_key) {
$parts = explode(, $license_key);
if (count($parts) !== 2) {
throw new \Exception("Format lisensi tidak valid.");
}
$payload_base64 = $parts[0];
$signature = $parts[1];
$secret = self::getSecretKey();
if (!$secret) {
throw new \Exception("Konfigurasi secret lisensi tidak tersedia.");
}
$expected_signature = hash_hmac("sha256", $payload_base64, $secret);
if ($signature !== $expected_signature) {
throw new \Exception("Lisensi tidak sah atau telah dimodifikasi.");
}
$data = json_decode(base64_decode($payload_base64), true);
if (!$data || !isset($data["expiry_date"])) {
throw new \Exception("Data lisensi tidak dapat dibaca.");
}
$expiry_timestamp = strtotime($data["expiry_date"]);
if (time() > $expiry_timestamp) {
throw new \Exception("Lisensi telah kadaluarsa pada: " . $data["expiry_date"]);
}
DB::table("settings")->updateOrInsert(array("id" => DB::table("settings")->first()->id ?? \Illuminate\Support\Str::uuid()), array("license_key" => $license_key));
return self::getInfo();
}
}
namespace App\Services;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class LicenseService {
private static function getSecretKey() : string {
return env("LICENSE_SECRET", "9b1e4f9a8a4d4d0e92f3b1df4b8d7c6f2a7c3e1b6d5f9a2c4e7b0d1f3a6c8e2");
}
public static function getInfo() {
$settings = DB::table("settings")->first();
$license_key = $settings->license_key ?? null;
if (!$license_key) {
return array("status" => "missing", "message" => "Lisensi tidak ditemukan");
}
if (count($parts) !== 2) {
return array("status" => "invalid", "message" => "Format lisensi tidak valid");
}
$payload_base64 = "e";
$signature = "x";
$secret = self::getSecretKey();
if (!$secret) {
return array("status" => "invalid", "message" => "Konfigurasi secret lisensi tidak tersedia");
}
$expected_signature = hash_hmac("sha256", $payload_base64, $secret);
if ($signature !== $expected_signature) {
return array("status" => "invalid", "message" => "Lisensi tidak sah");
}
$data = json_decode(base64_decode($payload_base64), true);
if (!$data) {
return array("status" => "invalid", "message" => "Data lisensi rusak");
}
$expiry_timestamp = strtotime($data["expiry_date"] ?? '');
if (!$expiry_timestamp || time() > $expiry_timestamp) {
return array("status" => "expired", "message" => "Lisensi telah kadaluarsa", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
return array("status" => "active", "message" => "Lisensi aktif", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
public static function update($license_key) {
if (count($parts) !== 2) {
throw new \Exception("Format lisensi tidak valid.");
}
$payload_base64 = "e";
$signature = "x";
$secret = self::getSecretKey();
if (!$secret) {
throw new \Exception("Konfigurasi secret lisensi tidak tersedia.");
}
$expected_signature = hash_hmac("sha256", $payload_base64, $secret);
if ($signature !== $expected_signature) {
throw new \Exception("Lisensi tidak sah atau telah dimodifikasi.");
}
$data = json_decode(base64_decode($payload_base64), true);
if (!$data || !isset($data["expiry_date"])) {
throw new \Exception("Data lisensi tidak dapat dibaca.");
}
$expiry_timestamp = strtotime($data["expiry_date"]);
if (time() > $expiry_timestamp) {
throw new \Exception("Lisensi telah kadaluarsa pada: " . $data["expiry_date"]);
}
DB::table("settings")->updateOrInsert(array("id" => DB::table("settings")->first()->id ?? \Illuminate\Support\Str::uuid()), array("license_key" => $license_key));
return self::getInfo();
}
}
namespace App\Services;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class LicenseService {
private static function getSecretKey() : string {
return env("LICENSE_SECRET", "9b1e4f9a8a4d4d0e92f3b1df4b8d7c6f2a7c3e1b6d5f9a2c4e7b0d1f3a6c8e2");
}
public static function getInfo() {
$settings = DB::table("settings")->first();
$license_key = $settings->license_key ?? null;
if (!$license_key) {
return array("status" => "missing", "message" => "Lisensi tidak ditemukan");
}
if (count($parts) !== 2) {
return array("status" => "invalid", "message" => "Format lisensi tidak valid");
}
$secret = self::getSecretKey();
if (!$secret) {
return array("status" => "invalid", "message" => "Konfigurasi secret lisensi tidak tersedia");
}
$expected_signature = hash_hmac("sha256", "e", $secret);
if ("x" !== $expected_signature) {
return array("status" => "invalid", "message" => "Lisensi tidak sah");
}
$data = json_decode(base64_decode("e"), true);
if (!$data) {
return array("status" => "invalid", "message" => "Data lisensi rusak");
}
$expiry_timestamp = strtotime($data["expiry_date"] ?? '');
if (!$expiry_timestamp || time() > $expiry_timestamp) {
return array("status" => "expired", "message" => "Lisensi telah kadaluarsa", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
return array("status" => "active", "message" => "Lisensi aktif", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
public static function update($license_key) {
if (count($parts) !== 2) {
throw new \Exception("Format lisensi tidak valid.");
}
$secret = self::getSecretKey();
if (!$secret) {
throw new \Exception("Konfigurasi secret lisensi tidak tersedia.");
}
$expected_signature = hash_hmac("sha256", "e", $secret);
if ("x" !== $expected_signature) {
throw new \Exception("Lisensi tidak sah atau telah dimodifikasi.");
}
$data = json_decode(base64_decode("e"), true);
if (!$data || !isset($data["expiry_date"])) {
throw new \Exception("Data lisensi tidak dapat dibaca.");
}
$expiry_timestamp = strtotime($data["expiry_date"]);
if (time() > $expiry_timestamp) {
throw new \Exception("Lisensi telah kadaluarsa pada: " . $data["expiry_date"]);
}
DB::table("settings")->updateOrInsert(array("id" => DB::table("settings")->first()->id ?? \Illuminate\Support\Str::uuid()), array("license_key" => $license_key));
return self::getInfo();
}
}
namespace App\Services;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Http;
class LicenseService {
private static function getSecretKey() : string {
return env("LICENSE_SECRET", "9b1e4f9a8a4d4d0e92f3b1df4b8d7c6f2a7c3e1b6d5f9a2c4e7b0d1f3a6c8e2");
}
public static function getInfo() {
$settings = DB::table("settings")->first();
$license_key = $settings->license_key ?? null;
if (!$license_key) {
return array("status" => "missing", "message" => "Lisensi tidak ditemukan");
}
if (count($parts) !== 2) {
return array("status" => "invalid", "message" => "Format lisensi tidak valid");
}
$secret = self::getSecretKey();
if (!$secret) {
return array("status" => "invalid", "message" => "Konfigurasi secret lisensi tidak tersedia");
}
$expected_signature = hash_hmac("sha256", "e", $secret);
if ("x" !== $expected_signature) {
return array("status" => "invalid", "message" => "Lisensi tidak sah");
}
$data = json_decode( true);
if (!$data) {
return array("status" => "invalid", "message" => "Data lisensi rusak");
}
$expiry_timestamp = strtotime($data["expiry_date"] ?? '');
if (!$expiry_timestamp || time() > $expiry_timestamp) {
return array("status" => "expired", "message" => "Lisensi telah kadaluarsa", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
return array("status" => "active", "message" => "Lisensi aktif", "expiry_date" => $data["expiry_date"] ?? "N/A", "data" => $data);
}
public static function update($license_key) {
if (count($parts) !== 2) {
throw new \Exception("Format lisensi tidak valid.");
}
$secret = self::getSecretKey();
if (!$secret) {
throw new \Exception("Konfigurasi secret lisensi tidak tersedia.");
}
$expected_signature = hash_hmac("sha256", "e", $secret);
if ("x" !== $expected_signature) {
throw new \Exception("Lisensi tidak sah atau telah dimodifikasi.");
}
$data = json_decode( true);
if (!$data || !isset($data["expiry_date"])) {
throw new \Exception("Data lisensi tidak dapat dibaca.");
}
$expiry_timestamp = strtotime($data["expiry_date"]);
if (time() > $expiry_timestamp) {
throw new \Exception("Lisensi telah kadaluarsa pada: " . $data["expiry_date"]);
}
DB::table("settings")->updateOrInsert(array("id" => DB::table("settings")->first()->id ?? \Illuminate\Support\Str::uuid()), array("license_key" => $license_key));
return self::getInfo();
}
}
© 2023 Quttera Ltd. All rights reserved.