常见问题
用户常见问题
购买后没收到授权码?
原因:支付回调没收到,或订单超时。
解决:
- 登录授权站,进入"我的订单"
- 查看订单状态:
pending(未支付)/paid(已支付未完成)/completed(已完成) - 如果状态是
paid但没生成授权码,联系客服
授权码激活时显示"域名不匹配"?
原因:购买时填写的域名与当前网站域名不一致。
解决:
- 登录授权站 → 我的授权
- 找到对应授权码,点击"修改域名"
- 输入当前网站域名(
www.example.com,不带http://)
一个授权码可以用在多个网站吗?
默认不可以。一个授权码绑定一个域名。如果需要多站点,请购买多站点授权。
授权码能退款吗?
购买后 7 天内、未激活、未发生技术问题,可以联系客服申请退款。已激活的授权码不支持退款。
开发者常见问题
Q: 客户端 API 请求超时?
检查清单:
- 授权服务器域名是否可访问(
ping license.example.com) - 是否启用了 HTTPS(部分环境需要 SSL 配置)
- PHP
allow_url_fopen是否启用 - cURL 扩展是否安装(
php -m | grep curl)
Q: 签名总是验证失败?
常见原因:
- 空格问题:拼接字符串时多了空格
- API_SECRET 不一致:客户端和服务器端不同
- 编码问题:域名包含中文(应先转 Punycode)
调试方法:
<?php
$domain = 'www.example.com';
$license_key = 'LIC-XXXXX';
$product = 'my-plugin';
$serial = 1;
$secret = 'your-secret';
$sign_data = $domain . '|' . $license_key . '|' . $product . '|' . $serial;
$signature = hash_hmac('sha256', $sign_data, $secret);
// 把 $sign_data 和 $signature 一起传给服务器端对比
// 服务器端:hash_hmac('sha256', $sign_data, $api_secret)
// 必须完全一致
Q: 数据库表不存在错误?
通常是 install.php 没运行过,或部分表创建失败。
解决:
- 访问
/install.php重跑 - 如果报错,对比错误日志,定位失败的 SQL
Q: 怎么修改 API_SECRET?
两种方式,推荐第二种:
- 推荐:后台 UI —
系统设置 → API 设置 → API Secret卡片- 点「重新生成」按钮:服务端随机生成 32 位 hex
- 点「替换为自定义值」:自行填入密钥(≥ 16 字符,仅允许字母数字下划线连字符点号)
- 修改后立即生效(无需重启 Web 服务)
- 命令行 / 配置文件 — 修改
config.php(仅首次安装时生效,不推荐用于生产)<?php define('API_SECRET', 'new-secret-here');⚠️ 仅供首次安装回填。生产环境推荐用后台 UI 修改(写到 DB settings 表),修改后通知所有插件用户在「授权管理 → API 设置」中同步更新密钥。
Q: 怎么升级到新版本?
- 备份数据库
- 上传新文件(覆盖)
- 访问
/upgrade.php(如有) - 检查新功能是否生效
Q: 怎么清空测试数据?
开发环境使用:
TRUNCATE lic_licenses;
TRUNCATE lic_orders;
TRUNCATE lic_user_logs;
DELETE FROM lic_users WHERE id > 1;
千万不要在生产环境执行!
管理员常见问题
Q: 怎么批量导入授权?
进入「授权管理」→「批量添加」,支持 CSV:
license_key,user_email,domain,product_slug,expires_at
LIC-AAA-BBB-CCC-DDD,user1@example.com,site1.com,my-plugin,
LIC-EEE-FFF-GGG-HHH,user2@example.com,site2.com,my-plugin,2027-01-01
Q: 怎么给用户退款?
- 进入「订单管理」
- 找到对应订单,点击「退款」
- 选择退款方式(原路退回)
- 系统会自动调用易支付退款接口
Q: 怎么备份数据?
每日自动备份(已在部署时配置)。手动备份:
mysqldump -u license_user -p license_server | gzip > backup_$(date +%Y%m%d).sql.gz
Q: 易支付回调收不到?
检查步骤:
- 易支付商户后台 → 通知地址:
https://license.example.com/api/epay_notify.php - 授权服务器防火墙是否允许易支付 IP(问易支付客服)
- 检查
epay_notify.php错误日志 - 手动访问
api/epay_notify.php看是否 404
Q: 怎么禁用某个用户的授权?
- 进入「用户管理」
- 找到该用户,点击「禁用」
- 该用户所有授权会自动 suspend
技术支持
- QQ 群:123456789
- GitHub Issues:github.com/yourname/license-server/issues
- 邮件:support@example.com