独立卡密验证系统
发布时间: 2025/8/30
更新时间: 2025/8/30
分类: API
这是一个完全独立的卡密验证系统,可以为任何插件提供安全的授权验证服务。
独立卡密验证系统
🎯 项目简介
这是一个完全独立的卡密验证系统,不依赖WordPress,可以为任何插件提供安全的授权验证服务。系统通过域名绑定确保一个卡密只能在特定网站使用,有效防止盗版和滥用。
✨ 主要特性
🔐 安全特性
- 域名绑定: 每个卡密只能激活一个特定域名
- 实时验证: 插件每次使用都需要验证授权状态
- 防重放攻击: API请求签名和时间戳验证
- 频率限制: 防止API滥用和暴力破解
- 黑名单机制: 支持域名、IP等黑名单管理
📊 管理功能
- 卡密管理: 创建、停用、查看卡密状态
- 激活管理: 查看所有激活记录和状态
- 使用统计: 详细的使用量统计和分析
- 日志系统: 完整的API访问和操作日志
- 实时监控: 系统状态和性能监控
🛠 技术特性
- RESTful API: 标准化的API接口设计
- 多种卡密类型: 时间型、次数型、无限制型
- 高性能: 支持Redis缓存加速
- 可扩展: 模块化设计,易于扩展
📁 项目结构
card-verification-system/
├── config/ # 配置文件
│ ├── config.php # 系统配置
│ └── database.php # 数据库配置
├── api/ # API接口
│ ├── verify.php # 卡密验证接口
│ ├── activate.php # 卡密激活接口
│ └── usage.php # 使用统计接口
├── admin/ # 管理后台
│ ├── index.php # 仪表板
│ ├── cards.php # 卡密管理
│ ├── activations.php # 激活管理
│ └── statistics.php # 统计分析
├── includes/ # 核心类文件
│ ├── Database.php # 数据库操作类
│ ├── CardManager.php # 卡密管理类
│ └── ApiSecurity.php # API安全类
├── public/ # 静态资源
│ ├── css/ # 样式文件
│ ├── js/ # JavaScript文件
│ └── images/ # 图片资源
├── database/ # 数据库文件
│ └── schema.sql # 数据库结构
└── logs/ # 日志文件目录
🚀 安装部署
环境要求
- PHP 7.4+
- MySQL 5.7+
- Apache/Nginx
- 可选: Redis (用于缓存加速)
安装步骤
- 下载源码
git clone [repository-url] card-verification-system
cd card-verification-system
- 配置数据库
CREATE DATABASE card_verification_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
- 导入数据库结构
mysql -u username -p card_verification_system < database/schema.sql
- 配置系统
编辑
config/config.php
文件:
// 数据库配置
define('DB_HOST', 'localhost');
define('DB_NAME', 'card_verification_system');
define('DB_USER', 'your_username');
define('DB_PASS', 'your_password');
// 域名配置
define('BASE_URL', 'https://your-domain.com');
// API密钥 (生产环境请更改)
define('API_SECRET_KEY', 'your-secret-key');
- 设置目录权限
chmod -R 755 card-verification-system/
chmod -R 777 logs/
- 访问管理后台
- 地址:
https://your-domain.com/admin/
- 默认账户:
admin
/admin123
- 重要: 登录后请立即修改默认密码!
📖 API 使用说明
1. 卡密激活
POST /api/activate.php
Content-Type: application/json
{
"card_code": "CV-ABCD-1234-EFGH",
"domain": "https://example.com",
"plugin_identifier": "ai-title-generator"
}
2. 验证授权状态
POST /api/verify.php
Content-Type: application/json
{
"domain": "https://example.com",
"plugin_identifier": "ai-title-generator"
}
3. 记录使用情况
POST /api/usage.php
Content-Type: application/json
{
"domain": "https://example.com",
"plugin_identifier": "ai-title-generator",
"action": "generate_title",
"usage_count": 1,
"metadata": {
"additional_info": "value"
}
}
🔧 WordPress插件集成
修改插件验证逻辑
将原有的本地验证替换为远程API验证:
class PluginCardVerification {
private $apiBaseUrl = 'https://your-card-system.com/api';
private $pluginIdentifier = 'your-plugin-name';
public function verifyActivation() {
$domain = $this->getCurrentDomain();
$response = wp_remote_post($this->apiBaseUrl . '/verify.php', [
'body' => json_encode([
'domain' => $domain,
'plugin_identifier' => $this->pluginIdentifier
]),
'headers' => [
'Content-Type' => 'application/json'
],
'timeout' => 10
]);
if (is_wp_error($response)) {
return false;
}
$data = json_decode(wp_remote_retrieve_body($response), true);
return $data['success'] && $data['activated'];
}
public function activateCard($cardCode) {
$domain = $this->getCurrentDomain();
$response = wp_remote_post($this->apiBaseUrl . '/activate.php', [
'body' => json_encode([
'card_code' => $cardCode,
'domain' => $domain,
'plugin_identifier' => $this->pluginIdentifier
]),
'headers' => [
'Content-Type' => 'application/json'
],
'timeout' => 10
]);
if (is_wp_error($response)) {
return ['success' => false, 'message' => '网络错误'];
}
return json_decode(wp_remote_retrieve_body($response), true);
}
private function getCurrentDomain() {
return home_url();
}
}
🎛 管理后台功能
仪表板
- 系统统计概览
- 实时数据图表
- 最近活动记录
卡密管理
- 创建单个/批量卡密
- 设置有效期和使用限制
- 卡密状态管理
激活管理
- 查看所有激活记录
- 域名绑定状态
- 强制解绑功能
统计分析
- 使用量趋势分析
- 热门功能统计
- 用户行为分析
🔒 安全建议
生产环境配置
- 更改默认密码: 立即修改管理员密码
- 使用HTTPS: 确保所有API调用使用HTTPS
- 启用API签名: 设置
ENABLE_API_SIGNATURE = true
- 配置防火墙: 限制管理后台访问IP
- 定期备份: 设置自动数据库备份
- 监控日志: 定期查看异常访问日志
API安全
// 启用API签名验证
define('ENABLE_API_SIGNATURE', true);
// 配置强密钥
define('API_SECRET_KEY', 'your-very-strong-secret-key-here');
// 启用频率限制
define('ENABLE_RATE_LIMITING', true);
define('RATE_LIMIT_REQUESTS', 100); // 每分钟100次
📈 性能优化
Redis缓存配置
// 安装Redis PHP扩展后会自动启用缓存
// 手动配置Redis连接
$redis = new Redis();
$redis->connect('127.0.0.1', 6379);
数据库优化
-- 添加索引优化查询性能
CREATE INDEX idx_domain_plugin ON card_activations(domain, plugin_identifier);
CREATE INDEX idx_created_at ON usage_logs(created_at);
CREATE INDEX idx_card_status ON cards(status);
🐛 故障排除
常见问题
API调用失败
- 检查网络连接
- 验证API地址配置
- 查看错误日志
激活失败
- 确认卡密有效性
- 检查域名格式
- 验证是否已达激活上限
验证失败
- 检查域名是否正确绑定
- 确认卡密未过期
- 查看使用次数是否超限
日志查看
# 查看API访问日志
tail -f logs/api.log
# 查看系统错误日志
tail -f logs/error.log
# 查看调试日志
tail -f logs/debug.log
📞 技术支持
- 邮箱: support@example.com
- 文档: https://www.en315.com/
- 问题反馈: https://www.en315.com/
📄 开源协议
本项目基于 MIT 协议开源,详见 LICENSE 文件。
⚠️ 重要提示: 本系统处理敏感的授权数据,请务必在生产环境中采取适当的安全措施!