Skip to content

A7验证完整错误码对照表

A7验证所有接口的响应结构统一为:

json
{ "code": 200, "message": "success", "data": {} }
  • code200 表示成功,其余均为失败。
  • code201 表示"流程未结束、需继续轮询"(目前仅 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已过期 / 未激活时长卡到期、按次卡次数用完、用户账号无激活记录引导用户用 UserRechargeSingleLogin 续期激活
1006已禁用 / 已停封 / 已冻结卡密被禁用或冻结、设备被禁用、用户账号被停封读取 data.remark 展示原因,联系开发者后台解封
1007Token 无效,请重新登录心跳时 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机器码已变更,需要换绑
1023IP 或机器码在黑名单中

会话相关

错误码含义
1007Token 无效,请重新登录

带 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

排错建议

  1. 先看 code,再看 messagemessage 中通常写明了缺哪个字段、超了什么限额。
  2. 1010 签名错误优先自查三件事:签名用的时间戳是否就是提交的那个、Data 是否是 HEX 后的字符串、拼接顺序是否是 ApiPassword + TimeStamp + Data
  3. 1014 时间戳过期几乎都是客户端时钟问题:虚拟机、长期休眠的笔记本最容易踩。
  4. 1001 出现在 Handle 阶段通常意味着 ApiPassword 已失效,重新调用一次 Init 即可。
  5. 线上排查时建议把 codemessage 一起写日志,不要只记 message

相关链接

A7验证 · 软件授权与网络验证平台