概述介绍
本系统提供标准的 RESTful API 接口,支持卡密验证、激活、域名验证、设备绑定等核心功能。所有接口均返回 JSON 格式数据,支持 GET 和 POST 请求方式。
99.9%
接口可用性
<50ms
平均响应时间
HTTPS
安全传输
快速接入
1
获取产品ID和密钥
登录管理后台,在产品管理中获取产品ID和API密钥
2
配置接口地址
将API基础地址设置为:https://your-domain.com/api/
3
调用验证接口
使用SDK或直接调用HTTP接口进行卡密验证
API 接口参考
POST
/api/verify.php
验证用户卡密是否有效,检查到期时间和设备绑定状态。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_id | int | 是 | 产品ID |
username | string | 是 | 用户名 |
device_id | string | 是 | 设备唯一标识 |
响应示例
{
"success": true,
"message": "验证成功",
"data": {
"username": "test_user",
"expire_time": 1735689600,
"device_count": 1,
"max_devices": 3,
"status": "active"
}
}
POST
/api/activate.php
使用卡密激活用户账号,延长使用时间。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_id | int | 是 | 产品ID |
username | string | 是 | 用户名 |
card_key | string | 是 | 卡密 |
device_id | string | 是 | 设备唯一标识 |
响应示例
{
"success": true,
"message": "激活成功",
"data": {
"username": "test_user",
"expire_time": 1767225600,
"added_days": 30
}
}
GET
/api/domain-verify.php
验证域名是否已授权。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
domain | string | 是 | 域名 |
product_id | int | 是 | 产品ID |
响应示例
{
"success": true,
"message": "域名已授权",
"data": {
"domain": "example.com",
"expire_time": 1735689600,
"status": "active"
}
}
POST
/api/unbind.php
解绑用户绑定的设备。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_id | int | 是 | 产品ID |
username | string | 是 | 用户名 |
device_id | string | 否 | 设备ID,不传则解绑所有设备 |
GET
/api/query.php
查询用户授权信息。
请求参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
product_id | int | 是 | 产品ID |
username | string | 是 | 用户名 |
SDK 开发指南
PHP SDK
适用于PHP 7.0+
安装
require_once 'sdk/LicenseClient.php';
使用示例
$client = new LicenseClient([
'api_url' => 'https://your-domain.com/api',
'product_id' => 1
]);
// 验证用户
$result = $client->verify('username', 'device_id');
if ($result['success']) {
echo "验证成功,到期时间:" . date('Y-m-d', $result['data']['expire_time']);
}
// 激活卡密
$result = $client->activate('username', 'card_key', 'device_id');
Python SDK
适用于Python 3.6+
使用示例
from license_client import LicenseClient
client = LicenseClient(
api_url='https://your-domain.com/api',
product_id=1
)
# 验证用户
result = client.verify('username', 'device_id')
if result['success']:
print(f"验证成功,到期时间: {result['data']['expire_time']}")
Node.js SDK
适用于Node.js 12+
使用示例
const LicenseClient = require('./sdk/license-client');
const client = new LicenseClient({
apiUrl: 'https://your-domain.com/api',
productId: 1
});
// 验证用户
const result = await client.verify('username', 'device_id');
if (result.success) {
console.log('验证成功', result.data);
}
错误码说明
| 错误码 | 说明 |
|---|---|
1001 | 参数错误 |
1002 | 产品不存在 |
1003 | 用户不存在 |
1004 | 卡密无效 |
1005 | 卡密已使用 |
1006 | 卡密已过期 |
2001 | 用户已过期 |
2002 | 设备数量超限 |
2003 | 设备未绑定 |
3001 | 域名未授权 |
常见问题
如何获取设备唯一标识?
设备唯一标识可以是硬件ID、MAC地址、CPU序列号等。建议使用组合方式生成,如:MD5(CPU_ID + 主板序列号 + 硬盘序列号)。
设备数量超限怎么办?
可以在管理后台解绑旧设备,或者使用解绑接口自行解绑。也可以升级产品套餐增加可绑定设备数量。
如何实现域名验证?
在您的Web应用中调用域名验证接口,传入当前域名和产品ID。系统会返回域名是否已授权及有效期。
接口返回超时怎么办?
请检查网络连接,确保服务器可以访问API地址。建议设置合理的超时时间(如5秒),并实现重试机制。
© 2024 软件授权验证系统. 技术支持:support@example.com