#!/usr/bin/env python # -*- coding: utf-8 -*- """ 调试卡密生成过程 """ import sys import os # 添加项目路径 sys.path.insert(0, os.path.dirname(os.path.abspath(__file__))) # 导入应用和模型 from app import create_app from app.models.license import License import secrets import string def debug_license_generation(): """调试卡密生成过程""" print("=== 调试卡密生成 ===") try: # 直接测试卡密生成逻辑,不依赖数据库查询 print("1. 测试生成单个卡密...") chars = string.ascii_uppercase + string.digits random_chars = ''.join(secrets.choice(chars) for _ in range(32)) # 格式化为XXXX-XXXX-XXXX-XXXX格式 formatted_key = '-'.join([ random_chars[i:i+8] for i in range(0, len(random_chars), 8) ]) print(f" 生成的卡密: {formatted_key}") # 验证格式 parts = formatted_key.split('-') print(f" 格式检查: {len(parts)} 部分") for i, part in enumerate(parts): print(f" 第{i+1}部分: {part} ({len(part)} 字符)") if len(parts) == 4 and all(len(part) == 8 for part in parts): print(" ✓ 格式正确") else: print(" ✗ 格式错误") # 测试卡密验证 print("\n2. 测试卡密验证...") from app.utils.validators import LicenseValidator validator = LicenseValidator() is_valid = validator.validate_license_key(formatted_key) print(f" 验证结果: {'通过' if is_valid else '失败'}") # 测试格式化函数 print("\n3. 测试格式化函数...") formatted_again = validator.format_license_key("ABCDEFGHIJKLMNOPQRSTUVWXZY12345678") print(f" 原始卡密: ABCDEFGHIJKLMNOPQRSTUVWXZY12345678") print(f" 格式化后: {formatted_again}") except Exception as e: print(f" ✗ 发生错误: {e}") import traceback traceback.print_exc() if __name__ == "__main__": debug_license_generation()