常见问题
先看返回的错误码,再核对对应设置。响应里的 request_id 可以帮助你从服务器日志中找到这次操作,不要把完整密钥贴进日志或截图。
激活失败,先检查什么?
检查服务器地址能否访问、产品 ID 是否正确、授权码是否完整,以及许可证是否属于这个产品。如果服务器还没部署,客户电脑不能用你的 127.0.0.1 地址连接,它表示客户自己的电脑。
| 错误码 | 先做什么 |
|---|---|
LICENSE_INVALID | 检查产品 ID、完整许可证密钥和所属产品 |
LICENSE_EXPIRED | 查看许可证到期时间,需要继续使用时由厂商续期 |
LICENSE_REVOKEDDEVICE_RELEASED | 授权已被吊销或设备已释放;客户端会清除旧缓存 |
DEVICE_LIMIT_REACHED | 许可证的设备名额已占满;释放旧设备,或修改该许可证的设备上限 |
API_QUOTA_EXCEEDED | API 硬额度已用完;查看当前周期和套餐限制 |
API_BALANCE_INSUFFICIENT | API 超额余额不足;检查对应环境和币种的余额 |
MONTHLY_QUOTA_EXCEEDED | 设备硬额度已达到;它与许可证的设备上限是两项不同限制 |
IDEMPOTENCY_CONFLICT | 同一 Key 被用于不同正文;新操作换新 Key,重试保留原正文 |
IDEMPOTENCY_EXPIRED | 旧响应或设备绑定已失效;检查当前状态后,为新的操作使用新 Key |
断网后还能用,是否没有验证?
允许离线时,SDK 仍会在本机检查服务器签名、产品、设备、功能和到期时间。它只是没有联系服务器。签名缓存过期,或已联网收到吊销、释放等明确拒绝后,就不能继续使用。
为什么验签或设备检查不通过?
公钥不匹配、使用了其他产品的缓存、把缓存复制到另一台电脑,都可能导致失败。核对 trusted_keys 的密钥 ID 和公钥是否来自当前产品,再检查是否更换或重装了系统。
SDK 报 clock rollback 时,检查系统时间是否被调回。修正时间后,尝试主动联网刷新授权。
完整的错误响应
{
"error": {
"code": "LICENSE_REVOKED",
"message": "License was revoked"
},
"request_id": "99999999-9999-4999-8999-999999999999"
}| 字段 | 含义与处理 |
|---|---|
error.code · string | 稳定的错误标识,程序按它判断如何处理,不依赖 message 的文字。 |
error.message · string | 说明失败原因的文字,适合诊断或转换为面向客户的提示。 |
request_id · UUID | 服务器为这次 HTTP 请求生成的编号,供查日志。它不是许可证 ID,也不是 Idempotency-Key。 |
400 / 415 先修正字段或 Content-Type;401 检查管理 Key;403 按具体错误码处理授权;409 检查额度、会话或幂等冲突;429 按 Retry-After 等待。运行授权请求重试时沿用原 Idempotency-Key 和正文;管理写请求按各接口的幂等规则恢复,普通签发和续期不能因超时直接重发。
请求返回的 JSON 怎么看?
成功返回 data 和 request_id;失败返回 error.code、error.message 和 request_id。保留错误码和 request_id 就能定位多数问题。
需要检查邮件、支付或部署设置时,继续看 支持与排查。