独立卡密验证系统

发布时间: 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 (用于缓存加速)

安装步骤

  1. 下载源码
git clone [repository-url] card-verification-system
cd card-verification-system
  1. 配置数据库
CREATE DATABASE card_verification_system CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
  1. 导入数据库结构
mysql -u username -p card_verification_system < database/schema.sql
  1. 配置系统 编辑 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');
  1. 设置目录权限
chmod -R 755 card-verification-system/
chmod -R 777 logs/
  1. 访问管理后台
  • 地址: 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();
    }
}

🎛 管理后台功能

仪表板

  • 系统统计概览
  • 实时数据图表
  • 最近活动记录

卡密管理

  • 创建单个/批量卡密
  • 设置有效期和使用限制
  • 卡密状态管理

激活管理

  • 查看所有激活记录
  • 域名绑定状态
  • 强制解绑功能

统计分析

  • 使用量趋势分析
  • 热门功能统计
  • 用户行为分析

🔒 安全建议

生产环境配置

  1. 更改默认密码: 立即修改管理员密码
  2. 使用HTTPS: 确保所有API调用使用HTTPS
  3. 启用API签名: 设置 ENABLE_API_SIGNATURE = true
  4. 配置防火墙: 限制管理后台访问IP
  5. 定期备份: 设置自动数据库备份
  6. 监控日志: 定期查看异常访问日志

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);

🐛 故障排除

常见问题

  1. API调用失败

    • 检查网络连接
    • 验证API地址配置
    • 查看错误日志
  2. 激活失败

    • 确认卡密有效性
    • 检查域名格式
    • 验证是否已达激活上限
  3. 验证失败

    • 检查域名是否正确绑定
    • 确认卡密未过期
    • 查看使用次数是否超限

日志查看

# 查看API访问日志
tail -f logs/api.log

# 查看系统错误日志
tail -f logs/error.log

# 查看调试日志
tail -f logs/debug.log

📞 技术支持

📄 开源协议

本项目基于 MIT 协议开源,详见 LICENSE 文件。


⚠️ 重要提示: 本系统处理敏感的授权数据,请务必在生产环境中采取适当的安全措施!