ente/cryptolens-php

使用此 Cryptolens API 客户端管理您的许可证

1.0 2024-09-09 15:04 UTC

README

此仓库包含从 PHP 与 Cryptolens Web API 交互的函数。目前大多数端点已支持,并将继续支持更多。

有关 API 以及可能值和类型的更多信息,请访问官方 API 文档:https://app.cryptolens.io/docs/api/v3

要使用此库,您可以 require_once loader.php(它会自动加载所有其他类)或使用 composer,您只需 require composer 的 autoload.php。目前,此库不安全用于 CLI。在您的脚本中,您需要 use 这些类,以下是一个示例

需要 PHP >7.4.0,与 8.2 兼容

代码示例

<?php
ini_set("display_errors", 1);
require_once "path/to/composer/autoload.php";
use Cryptolens_PHP_Client\Cryptolens;
use Cryptolens_PHP_Client\Key;
$c = new Cryptolens("YOUR_TOKEN", 12345, Cryptolens::CRYPTOLENS_OUTPUT_JSON);
$k = new Key($c);

$key = "XXXXX-XXXXX-XXXXX-XXXXX";
$machine_id = $k->getMachineId();
print_r("Key 'activate':" . var_dump($k->activate($key, $machine_id)));
?>

代码示例:检查功能许可证

<?php
ini_set("display_errors", 1);
require_once "./loader.php";
use Cryptolens_PHP_Client\Cryptolens;
use Cryptolens_PHP_Client\Key;
$c = new Cryptolens("YOUR_TOKEN", 12345, Cryptolens::CRYPTOLENS_OUTPUT_PHP);
$k = new Key($c);

# generate new key and activate Feature 3 for it
$key = $k->create_key(["F3" => true])["key"];

$license_data = json_decode($k->get_key($key), true);

if($license_data["F3"]){
  echo "Feature 3 enabled for license " . $key; 
} elseif($license_data["F4"]){
  echo "Feature 4 enabled for license " . $key;
}

?>

上面的代码使用了我们的测试访问令牌、产品 ID、许可证密钥和机器代码。在实际应用中,您可以按照以下方式获取这些值

  • 可以在 https://app.cryptolens.io/User/AccessToken 创建访问令牌
  • 产品 ID 可以通过从产品列表中选择相关产品(https://app.cryptolens.io/Product)获得,然后产品 ID 将显示在密钥列表上方。
  • 许可证密钥可以通过应用程序依赖的方式从用户处获取。
  • 您可以使用内置的 Key::getMachineId() 函数为 PHP 实例生成机器 ID。请阅读该函数的文档以了解机器 ID 计算的更多信息。
  • 在未来的版本中,此库应能够验证许可证文件

离线许可证验证

API 还允许您通过 License.cryptolens.php 文件验证许可证文件。为了正确配置此功能,请将 XML 风格的公钥转换为 PEM 格式(PKCS#1)并保存到 classes/* 目录中的 key.pub(如果 License(<Cryptolens $cryptolens>, <string $pathToKey>) 中设置了 $pathToKey,则路径将被指定的路径覆盖)。目前,此 API 客户端只能处理“其他语言”格式的许可证文件。

您可以在类似此处的网站上转换您的密钥 这里 或使用此存储库 使用此存储库

然后您可以这样验证许可证密钥

<?php

require_once "/path/to/autoloader.php";
use Cryptolens_PHP_Client\Cryptolens;
use Cryptolens_PHP_Client\License;

$c = new Cryptolens("YOUR_TOKEN", 12345, Cryptolens::CRYPTOLENS_OUTPUT_PHP);
$l = new License($c); // to specify custom key file location other than /classes/key.pub specify the FULL path as License($c, "/var/www/my/public/key.pub")

$fromString = $l->validateLicense("BASE64-ENCODED-STRING", "BASE64-ENCODED-STRING") // licenseKey and signature
$fromFileContent = $l->validateLicenseFromFileContent(file_get_contents("license.skm")); // License file as string
$fromFile = $l->validateLicenseFromFile("license.skm")

if($fromFile){
  echo "Signature successfully validated";
} else {
  echo "Could not verify signature";
}

安装

您可以克隆此存储库并 require loader.php(其中包含自动加载器)或使用控制台通过 composer

composer require ente/cryptolens-php

<?php

require "./vendor/autoload.php";
use Cryptolens_PHP_Client\Cryptolens;
...

?>

自动加载所需类。