A7验证完整错误码对照表
A7验证所有接口的响应结构统一为:
json
{ "code": 200, "message": "success", "data": {} }code为200表示成功,其余均为失败。code为201表示"流程未结束、需继续轮询"(目前仅 QQ 扫码登录使用)。- 部分错误会在
data.remark中附带补充信息(禁用原因、原绑定机器码等)。
完整错误码表
| 错误码 | 含义 | 典型触发场景 | 解决方案 |
|---|---|---|---|
200 | 成功 | 请求正常处理完成 | 直接读取 data |
201 | 等待授权 | QQ 扫码登录第二步,用户尚未完成扫码 | 间隔 1~2 秒继续轮询 UserLogin(带 State) |
1001 | 程序不存在 | Init 的 AppId 查不到程序;或 Handle 的 ApiPassword 不匹配任何程序 | 核对控制台里的 AppId;ApiPassword 过期请重新调用 Init |
1003 | 密码错误 | UserLogin / GetUserInfo / ChangeBind 密码不匹配;UpdatePwd 原密码错误 | 提示用户重新输入密码 |
1004 | 卡密无效 | 卡密不存在、不属于当前程序、已被退款 | 核对卡密字符串,或让用户联系发卡渠道 |
1005 | 已过期 / 未激活 | 时长卡到期、按次卡次数用完、用户账号无激活记录 | 引导用户用 UserRecharge 或 SingleLogin 续期激活 |
1006 | 已禁用 / 已停封 / 已冻结 | 卡密被禁用或冻结、设备被禁用、用户账号被停封 | 读取 data.remark 展示原因,联系开发者后台解封 |
1007 | Token 无效,请重新登录 | 心跳时 Token 找不到对应会话(服务重启、Token 被清、Type 传错) | 重新走一遍登录流程拿新 Token |
1010 | 签名错误 | Sign 计算错误:拼接顺序错、时间戳与签名不一致、大小写/编码问题 | 对照签名规则逐段核对,确认签名用的时间戳与提交的一致 |
1011 | 程序密钥错误 | Init 的 AppKey 与后台不一致 | 到控制台重新复制 AppKey |
1012 | 程序未审核通过 / 套餐已过期 | 程序还在审核中,或开发者套餐到期 | 等待审核通过;套餐到期请续费 |
1013 | 参数不完整 | 必填字段缺失或为空(message 会列出缺哪些字段) | 按接口文档补齐必填参数 |
1014 | 时间戳已过期 | 客户端时间与服务器相差超过 ±300 秒 | 校准客户端系统时间,或改用服务器下发时间 |
1015 | 未知操作 | action 不在 12 个业务 action 列表中(拼写错误、大小写错误) | 对照 action 列表 修正,注意大小写敏感 |
1016 | 用户未注册 | 用户名在当前程序下不存在;QQ 登录时 OpenID 未绑定账号 | 先调用 UserRegin 注册 |
1017 | 用户名已被注册 | UserRegin 时用户名在当前程序下已存在 | 换一个用户名,或改走登录流程 |
1019 | 该 IP 注册数已达上限 | 开启了「每 IP 最大注册数」限制并已触顶 | 到后台调高限额,或引导用户换网络环境 |
1020 | 新机器码与当前机器码相同 | ChangeBind 传入的 Mac 和已绑定的一致 | 无需换绑,直接登录即可 |
1021 | 换绑次数已达上限 | 开启了换绑次数限制且已用完 | 到后台重置该用户的 bind_count 或调高上限 |
1022 | 机器码已变更,请调用 ChangeBind 换绑 | UserLogin 时机器码与账号已绑定的不一致,data.remark 为原机器码 | 提示用户确认换机,然后调用 ChangeBind |
1023 | 已被列入黑名单 | 当前 IP 或机器码命中程序黑名单 | 到后台黑名单中移除对应条目 |
1024 | 按次卡密不能用于该操作 | 用按次卡去做 UserRegin / UserLogin 续期 / UserRecharge | 按次卡只能走 SingleLogin 卡密登录 |
按场景分组速查
握手 / 通信层(Init 与 Handle 通用)
| 错误码 | 含义 |
|---|---|
1001 | 程序不存在(AppId 或 ApiPassword 无效) |
1010 | 签名错误 |
1011 | 程序密钥错误 |
1012 | 程序未审核通过 / 套餐已过期 |
1013 | 参数不完整 |
1014 | 时间戳已过期 |
1015 | 未知操作 |
卡密相关
| 错误码 | 含义 |
|---|---|
1004 | 卡密无效 / 已退款 |
1005 | 卡密已过期 / 次数已用完 |
1006 | 卡密已禁用 / 已冻结 |
1024 | 按次卡密不能用于充值续期或注册 |
用户账号相关
| 错误码 | 含义 |
|---|---|
1003 | 密码错误 |
1016 | 用户未注册 |
1017 | 用户名已被注册 |
1019 | 该 IP 注册数已达上限 |
设备与风控相关
| 错误码 | 含义 |
|---|---|
1020 | 新机器码与当前机器码相同 |
1021 | 换绑次数已达上限 |
1022 | 机器码已变更,需要换绑 |
1023 | IP 或机器码在黑名单中 |
会话相关
| 错误码 | 含义 |
|---|---|
1007 | Token 无效,请重新登录 |
带 remark 的错误码
以下错误会在 data.remark 中附带补充信息,建议在 UI 上原样展示给用户:
| 错误码 | data.remark 内容 |
|---|---|
1006 | 后台填写的禁用/停封原因 |
1022 | 该账号原先绑定的机器码 |
json
{
"code": 1006,
"message": "卡密已禁用",
"data": { "remark": "违规使用,已封停" }
}json
{
"code": 1022,
"message": "机器码已变更,请调用 ChangeBind 换绑",
"data": { "remark": "OLD-MAC-0001" }
}历史遗留错误码(当前后端不再返回)
早期版本的 /api-doc.html 中出现过以下两个错误码,当前后端已不再返回,仅为兼容老客户端保留说明:
| 旧错误码 | 旧含义 | 当前替代 |
|---|---|---|
1002 | 签名验证失败 | 统一改为 1010 签名错误 |
1008 | 设备不匹配 | 用户模式下改为 1022 机器码已变更;卡密模式下改为 1006 该设备已被禁用 |
如果你的老客户端仍在判断 1002 / 1008,建议在升级时一并把这两个分支合并到 1010 / 1022。
排错建议
- 先看
code,再看message:message中通常写明了缺哪个字段、超了什么限额。 1010签名错误优先自查三件事:签名用的时间戳是否就是提交的那个、Data是否是 HEX 后的字符串、拼接顺序是否是ApiPassword + TimeStamp + Data。1014时间戳过期几乎都是客户端时钟问题:虚拟机、长期休眠的笔记本最容易踩。1001出现在 Handle 阶段通常意味着ApiPassword已失效,重新调用一次 Init 即可。- 线上排查时建议把
code与message一起写日志,不要只记message。