CUSTOMER TESTING
概览
发出一份有期限的测试
为 APK、桌面程序或脚本设置独立产品标识。
设置到期时间、设备数量、调用次数和并发上限。
将激活码与客户下载页交给客户,随时查看使用情况。
当前授权策略
每次服务端调用都会检查授权、设备、有效期与额度。设备通过签名证明身份,短期会话每 10 分钟续签。
APK 正常客户端每 45 秒更新授权,网络中断最多保留 120 秒本地兜底许可。过期、停用或解绑后不再续发许可。
服务器时间是授权依据。完全留在客户端执行的代码仍可能被修改;需要严格保护的业务逻辑应放在服务器执行。
每个客户使用独立激活码。激活码仅在创建时显示一次。
| 客户 / 产品 | 授权状态 | 到期时间 | 设备 | 调用 / 额度 | 管理 |
|---|
不同产品单独授权,按需开放模型服务。
上传客户测试版本
| 文件 / 产品 | 版本 | 大小 | 校验 | 状态 | 管理 |
|---|
上游地址和 Key 仅在服务器使用。Key 保存后不会回传。
最近调用
记录状态、耗时和 Token 用量;不保存模型请求中的截图或原始内容。调用提交后计次,失败与超时也计入额度。日额度按北京时间零点重置。
| 时间 / 客户 | 模型 | 结果 | 耗时 | 输入 / 输出 Token |
|---|
管理与授权审计
接入脚本、程序与 APK
服务根地址:https://cs.931109.xyz。所有请求使用 HTTPS。
- 在“产品与接口”创建产品,并在“客户授权”签发激活码。
- 客户端在本机生成 P-256 签名密钥,调用
POST /api/v1/challenge获取挑战。 - 使用私钥签名后调用
POST /api/v1/activate,获取短期会话。 - 后续请求携带 Bearer 会话、时间、随机数和请求签名。调用
/api/v1/lease更新许可,/api/v1/refresh续签会话。 - 把核心业务放在授权接口后执行;示例
POST /api/v1/run可检查接入是否成功。
提供 Python SDK、命令行测试脚本和协议文档,随示例产品版本下载。APK 客户测试版已接入相同授权与模型代理。
部署与安全边界
激活码只保存带服务端密钥的摘要;会话只保存摘要;上游 Key 使用认证加密保存;测试文件分块使用 AES-GCM 加密。加密主密钥独立存放在服务器,并以系统凭据交给服务进程。
修改客户端时间、复制会话到其他设备、重复提交签名、超额调用均由服务端拦截。设备签名证明私钥持有关系,不等同于可信硬件证明或“绝对无法破解”。
停用授权会立即阻止后续服务端调用。已经发往上游的请求可能完成;正常客户端本地许可最迟在 120 秒内失效。纯离线软件需要迁移关键功能到服务器,才有服务端强制边界。
备份与恢复
服务器每天备份授权数据库,保留 14 份。模型 Key 和版本文件已加密,但恢复仍需要独立备份加密主密钥与版本文件。管理员凭据文件只交给开发者,不要放进客户测试包。