常见错误码及定义
- 错误码暂定都是5位数字,并配有相应的英文解释
- 错误码为 0 表示成功,其他都表示错误
- 错误码按模块按功能场景分级分段,前三位错误码表示模块,第四位表示模块下的功能。举例,商城系统里有交易模块和商品模块,则可以这样划分:401开头的表示交易模块,402开头的表示商品模块,4011开头的表示交易模块里的下单场景需要用到的错误码,4021表示商品模块下的添加商品场景里需要用到的错误码。如果某个场景功能下需要的比较多的错误码,则可以使用其他未被使用的码段,即该场景功能可以拥有多个码段,然后通过添加注释等方式让人理解即可。
- 数字 1 开头的错误码表示系统级别的错误,比如缺少某种字符集,连不上数据库之类的,系统级的错误码不需要分模块,可以按照自增方式进行添加
- 数字 4 开头的错误码表示API参数校验失败,比如 “交易模块下单场景中,订单金额参数不能为空” 可以用 40111 错误码来表示
- 数字 5 开头的错误码表示后台业务校验失败,比如 “交易模块下单场景中,该用户没有下单权限” 可以用 50111 错误码来表示
- 数字 4 开头的错误码与数字 5 开头的错误码对应的模块分类需要保持一致,即 4011 表示交易模块下单场景的API错误,5011 表示交易模块下单场景的业务错误
- 错误码按需分配,逐步增加,灵活扩展
网上确实没有比较成熟或者通用的设计方法,只能参考目前几大互联网巨头们的设计方法,然后结合实际需求设计出符合自己公司的解决方案。
把我目前设计的错误码方案分享给大家:
统一格式:A-BB-CCC
A:错误级别,如1代表系统级错误,2代表服务级错误;
B:项目或模块名称,一般公司不会超过99个项目;
C:具体错误编号,自增即可,一个项目999种错误应该够用;
参考:
淘宝开放平台
公共返回码说明
Error code – 微博API
http://my.oschina.net/foxty/blog/382344
一、授权/令牌请求接口返回码
描述应用发起授权请求或令牌请求时,开放平台的返回码。
错误码 |
错误描述 |
Error Description |
10000 |
非法的请求参数 |
Invalid request |
10001 |
用户认证失败 |
Invalid client |
10002 |
非法的授权信息 |
Invalid grant |
10003 |
应用没有被授权,无法使用所指定的grant_type |
Unauthorized client |
10004 |
grant_type字段超过定义范围 |
Unsupported grant_type |
10005 |
scope信息无效或超出范围 |
Invalid scope |
10006 |
提供的更新令牌已过期 |
Expired token |
10007 |
redirect_uri字段与注册应用时所填写的不匹配 |
Redirect_uri mismatch |
10008 |
response_type参数值超过定义范围 |
Unsupported response type |
10009 |
用户或授权服务器拒绝授予数据访问权限 |
Access denied |
二、API通用返回码
描述API接口的共性返回码,API自定义的接口返回码请参阅对应API接口文档描述。
错误码 |
错误描述 |
Error Description |
0 |
成功 |
Success |
1 |
未知错误 |
Unknown error |
2 |
服务暂不可用 |
Service temporarily unavailable |
3 |
未知的方法 |
Unsupported openapi method |
4 |
接口调用次数已达到设定的上限 |
Open api request limit reached |
5 |
请求来自未经授权的IP地址 |
Unauthorized client IP address |
6 |
无权限访问该用户数据 |
No permission to access user data |
7 |
来自该refer的请求无访问权限 |
No permission to access data for this referer |
100 |
请求参数无效 |
Invalid parameter |
101 |
api key无效 |
Invalid API key |
104 |
无效签名 |
Incorrect signature |
105 |
请求参数过多 |
Too many parameters |
106 |
未知的签名方法 |
Unsupported signature method |
107 |
timestamp参数无效 |
Invalid/Used timestamp parameter |
109 |
无效的用户资料字段名 |
Invalid user info field |
110 |
无效的access token |
Access token invalid or no longer valid |
111 |
access token过期 |
Access token expired |
210 |
用户不可见 |
User not visible |
211 |
获取未授权的字段 |
Unsupported permission |
212 |
没有权限获取用户的email |
No permission to access user email |
800 |
未知的存储操作错误 |
Unknown data store API error |
801 |
无效的操作方法 |
Invalid operation |
802 |
数据存储空间已超过设定的上限 |
Data store allowable quota was exceeded |
803 |
指定的对象不存在 |
Specified object cannot be found |
804 |
指定的对象已存在 |
Specified object already exists |
805 |
数据库操作出错,请重试 |
A database error occurred. Please try again |
900 |
访问的应用不存在 |
No such application exists |
转载:http://open.189.cn/index.php?m=content&c=index&a=lists&catid=31
百度Open API错误码定义
Error Code | Error Description(Chinese) | Error Description(English) |
---|---|---|
0 | 成功 | Success |
1 | 未知错误 | Unknown error |
2 | 服务暂不可用 | Service temporarily unavailable |
3 | 未知的方法 | Unsupported openapi method |
4 | 接口调用次数已达到设定的上限 | Open api request limit reached |
5 | 请求来自未经授权的IP地址 | Unauthorized client IP address:%s |
6 | 无权限访问该用户数据 | No permission to access data |
7 | 来自该refer的请求无访问权限 | No permission to access data for this referer |
100 | 请求参数无效 | Invalid parameter |
101 | api key无效 | Invalid API key |
102 | session key无效 | Session key invalid or no longer valid |
103 | call_id参数无效 | Invalid/Used call_id parameter |
104 | 无效签名 | Incorrect signature |
105 | 请求参数过多 | Too many parameters |
106 | 未知的签名方法 | Unsupported signature method |
107 | timestamp参数无效 | Invalid/Used timestamp parameter |
108 | 无效的user id | Invalid user id |
109 | 无效的用户资料字段名 | Invalid user info field |
110 | 无效的access token | Access token invalid or no longer valid |
111 | access token过期 | Access token expired |
112 | session key过期 | Session key expired |
114 | 无效的ip参数 | Invalid Ip |
210 | 用户不可见 | User not visible |
211 | 获取未授权的字段 | Unsupported permission |
212 | 没有权限获取用户的email | No permission to access user email |
800 | 未知的存储操作错误 | Unknown data store API error |
801 | 无效的操作方法 | Invalid operation |
802 | 数据存储空间已超过设定的上限 | Data store allowable quota was exceeded |
803 | 指定的对象不存在 | Specified object cannot be found |
804 | 指定的对象已存在 | Specified object already exists |
805 | 数据库操作出错,请重试 | A database error occurred. Please try again |
900 | 访问的应用不存在 | No such application exists |
950 | 批量操作已开始,请先调用end_batch接口结束前一个批量操作 | begin_batch already called, please make sure to call end_batch first |
951 | 结束批量操作的接口调用不应该在start_batch接口之前被调用 | end_batch called before start_batch |
952 | 每个批量调用不能包含多于20个接口调用 | Each batch API can not contain more than 20 items |
953 | 该接口不适合在批量调用操作中被使用 | Method is not allowed in batch mode |