主题授权签发 · 域名绑定 · 到期管理 · 版本分发,一套接口跑通商业闭环。
| 项目 | 状态 |
|---|---|
| PHP 版本 | 8.2.33 |
| ZipArchive 扩展 | 已启用 |
| 主题包目录可写 | /www/wwwroot/mochain/uploads/ |
授权校验与版本检测两个接口都要带 HMAC-SHA256 签名;下载接口用一次性令牌,不签名。
sign)ksort 排序http_build_query 拼接sign = hash_hmac('sha256', 拼接串, api_key)timestamp 与服务器时间差不得超过 ±300 秒$params = [
'license_code' => 'AB12-CD34-EF56-GH78',
'domain' => 'client-site.com',
'theme' => 'MyTheme',
'timestamp' => time(),
];
ksort($params);
$params['sign'] = hash_hmac('sha256', http_build_query($params), $api_key);
$url = 'https://sq.zixk.cn/api/license.php?' . http_build_query($params);
https://sq.zixk.cn/api/license.php
| 参数 | 说明 |
|---|---|
| license_code | 授权码 |
| domain | 客户站点域名(HTTP_HOST) |
| theme | 主题标识(与后台一致) |
| timestamp | Unix 时间戳 |
| sign | 签名 |
域名规则:主域(不带 www)本身、www.主域 与自动登记的最多 3 个子域都在授权范围内。
https://sq.zixk.cn/api/version.php,在授权校验参数基础上多传 current_version(同样参与签名)。
返回 has_update / min_version / force_update / changelog,有新版本或触发强制升级时下发 download_token。
https://sq.zixk.cn/api/download.php?token={download_token},返回 zip 流,令牌一次性有效,响应头带 X-Download-Sha256。
| code | 含义 |
|---|---|
| 200 | 成功 |
| 400 | 参数不完整 / 缺少签名 / 令牌格式错误 |
| 401 | 时间戳过期 / 授权已过期 / 令牌已使用或过期 |
| 403 | 签名失败 / 授权已禁用 / 域名不匹配 / 域名被封禁 |
| 404 | 授权码不存在 / 无已发布版本 / 主题包不存在 |
| 429 | 触发 IP 限流 |
| 500 | 服务端异常 |
| 503 | 服务器维护中 |
zip 根必须是一层「主题名」目录,主题文件收拢在该目录内,目录内需直接包含 functions.php:
MyTheme-1.2.0.zip
└── MyTheme/
├── index.php
├── functions.php
└── ...
文件散在 zip 根、套多层目录、含 ../ 或 .auth/.htaccess 条目的包会被服务端拒绝。