主题
客户端错误码说明 - ClientErrorCodes
授权平台网关(OLAAppService)对外返回两类客户端可见错误:
| 段 | 形态 | 客户端如何识别 |
|---|---|---|
| 1000 段 | 明文 JSON:{"errorCode":1001} | 响应体可直接解析出 errorCode 字段(解密前失败或无法加密时) |
| 2000 段 | 加密业务响应中,Message 为 错误码:中文描述(如 "2001:未激活") | SDK / 插件解密后读取 Message;同时 Status/Code 为 0 |
说明:通过官方 SDK / DLL 调用时,多数情况下已完成加解密;业务失败请优先查看返回对象的
Message。2000 段可直接展示冒号后的中文,也可按首个冒号拆分解析错误码。成功时Message仍为中文成功文案(如「登录成功」「月卡激活成功」「success」),不含错误码前缀。
模块总览见 授权管理模块总览。
一、完整错误码表
2000 段(加密响应 Message)
格式固定为:
text
{错误码}:{中文描述}示例:2001:未激活、2013:未开放客户端解绑。
| 错误码 | Message 示例 | 常见触发场景 |
|---|---|---|
2001 | 2001:未激活 | 尚无有效授权,需先 Activate / Trial |
2002 | 2002:用户码无效 | UserCode 非法(如非 32 位) |
2003 | 2003:参数无效 | SoftCode、HardwareId、激活码等校验失败 |
2004 | 2004:用户不存在 | 平台无对应用户 |
2005 | 2005:软件不可用或未开通 | 软件不存在、未启用,或用户未开通该软件 |
2006 | 2006:访问被拒绝 | 黑白名单拦截 |
2007 | 2007:账号权限不足 | 如充值不足无法使用 Plus / Ultra 客户端能力 |
2008 | 2008:授权无效 | 授权已过期、已失效等 |
2009 | 2009:余额不足 | 插件计费时余额不够 |
2010 | 2010:插件验证失败 | 插件查询/验证过程异常(如数据库不可用) |
2011 | 2011:次卡功能已隐藏 | 当前授权/卡类型为次卡,客户端不再开放次卡能力 |
2012 | 2012:特性不被允许 | 请求的插件特性不在软件白名单内 |
2013 | 2013:未开放客户端解绑 | 软件未开启「开放客户端解绑」,见 ForceUnBind |
2014 | 2014:永久卡无法续费 | 设备已有有效永久授权,拒绝再次激活续费 |
2015 | 2015:未找到可解绑设备授权 | 当前用户名下无对应 SoftCode + HardwareId 的可解绑授权 |
2016 | 2016:试用授权不支持解绑 | 试用授权且未指定激活码时禁止解绑 |
2017 | 2017:激活码不属于当前用户设备 | 指定解绑的激活码不属于当前用户设备 |
2018 | 2018:权限不合法,请检查FeatureList参数 | FeatureList 中插件不存在、版本不可用或已禁用等 |
2099 | 2099:未知错误 或 2099:业务文案 | 未预期异常;激活/试用/解绑下游失败时冒号后可能带具体业务原因 |
二、客户端解析建议
- 若 body 为明文 JSON 且含
errorCode:按 1000 段处理(网络/协议层失败)。 - 否则按用户码解密,得到业务 JSON:
Status == 1(或解绑类Code == 1)为成功;- 失败时若
Message形如数字:文案,按首个:拆分:左侧为错误码,右侧为可直接展示的中文; - 成功时
Message一般为纯中文成功提示(无错误码前缀),直接展示即可。
text
成功:Status/Code == 1
失败:Status/Code == 0,并查看 Message
└─ Message = "{码}:{中文}" → 解析码做分支;展示冒号后中文(或整串)示例(伪代码):
cpp
// Message 例:"2001:未激活"
auto pos = message.find(':');
if (pos != npos && 全数字(message.substr(0, pos))) {
int code = stoi(message.substr(0, pos));
string tip = message.substr(pos + 1); // "未激活"
// tip 可直接 UI 展示;code 用于业务分支
}三、各接口与错误码对应关系
Login(2000 段)
| Message 示例 | 说明 |
|---|---|
2001:未激活 | 需先激活或申请试用 |
2002:用户码无效 | 用户码无效 |
2003:参数无效 | 参数无效 |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | 软件不可用或未开通 |
2006:访问被拒绝 | 黑白名单拒绝 |
2007:账号权限不足 | Plus/Ultra 权限不足 |
2008:授权无效 | 授权已过期/已失效 |
2009:余额不足 | 余额不足 |
2010:插件验证失败 | 插件验证过程异常 |
2011:次卡功能已隐藏 | 次卡功能已隐藏 |
2012:特性不被允许 | 插件特性不在白名单 |
2018:权限不合法,请检查FeatureList参数 | FeatureList 不合法 |
2099:未知错误 | 未知错误 |
Activate / Trial
业务失败时同样返回 错误码:中文描述(与 Login 一致)。协议层失败仍可能出现 1000 段 errorCode。
| Message 示例 | 说明 |
|---|---|
2002:用户码无效 | UserCode 无效 |
2003:参数无效 | Salt / SoftCode / HardwareId 等校验失败 |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | SoftCode 无效或未开通 |
2008:授权无效 | 激活/试用后授权状态异常 |
2011:次卡功能已隐藏 | 次卡类型不再对客户端开放 |
2014:永久卡无法续费 | 仅 Activate:设备已有有效永久授权 |
2099:… | 激活失败 / 试用申请失败等(冒号后可能为下游具体原因) |
UnBind
| Message 示例 | 说明 |
|---|---|
2003:参数无效 | 参数无效 |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | 软件不可用或未开通 |
2015:未找到可解绑设备授权 | 设备授权不存在 |
2016:试用授权不支持解绑 | 试用授权禁止解绑 |
2017:激活码不属于当前用户设备 | 激活码归属校验失败 |
2099:… | 解绑业务失败 |
2099:未知错误 | 未知错误 |
ForceUnBind
| Message 示例 | 说明 |
|---|---|
2003:参数无效 | 参数无效(如激活码为空) |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | 软件不可用或未开通 |
2013:未开放客户端解绑 | 软件未开放客户端解绑 |
2099:… | 解绑业务失败(冒号后可能为具体原因) |
2099:未知错误 | 未知错误 |
公告 / 软件更新类接口
适用于:GetUnreadAnnouncements、GetAnnouncementsByType、GetSoftUpdateStatus、GetSoftUpdateLogs。
| Message 示例 | 说明 |
|---|---|
2003:参数无效 | 参数无效 |
2004:用户不存在 | 用户不存在 |
2005:软件不可用或未开通 | 软件不可用或未开通 |
成功时 Message 常为 success。
四、相关页面
| 页面 | 说明 |
|---|---|
| 授权管理模块总览 | 推荐流程与接口一览 |
| 登录 - Login | 建立会话,错误码最完整 |
| 激活 - Activate / 申请试用 - Trial | 写入授权,失败同样返回错误码 |
| 解绑 - UnBind / 强制解绑 - ForceUnBind | 解绑相关错误码(含 2013–2017) |
