1. 错误类型

其中,服务可以直接抛出异常,被平台所捕获,从而转化为NSP_STATUS。

2. 错误处理机制

调用服务时的错误处理机制建议为:

错误码处理机制
0检测HTTP STATUS,看是否正常。
1检测NSP_STATUS ,看是否正常。
2根据调用服务的说明,看返回值中是否有错误。

3. HTTP STATUS描述

异常码描述
200成功
401需要鉴权
500开放网关发生异常
502~504其他网络错误

4. NSP STATUS描述

异常码描述
0
成功
1一个未知的错误发生
2服务临时不可用
3未知的方法
4应用已达到设定的请求上限
5请求来自未经授权的IP地址
6当前用户session key过期了
7调用次数超过了限制
8调用太频繁
100无效未知参数
101无效的API_KEY
102无效的SESSION_KEY
103必须是POST提交
104无效的签名
105缺少系统参数:如nsp_svc, nsp_ts, nsp_key等。
106app或者session没有调用当前服务的权限
107client和secret需要重新获取(如算法升级等)
108路由失败,无法识别服务投递地址。
109nsp_ts偏差过大
110接口内部异常
403无权限 

5. 接口错误码描述

主错误码子错误码描述
110120002client_id格式校验不通过,应该为全数字
110120003client_id在系统中不存在
110120012response_type格式校验不通过,应该为“code”
110120022redirect_uri格式校验不通过
110120023redirect_uri与华为开发者联盟注册的回调地址不一致,且不在OAuth服务配置的白名单中
110120024授权码code换取凭证AT(Access Token)时,code解析出来的redirect_uri和入参不一致
110120031state格式校验不通过
110120041scope格式校验不通过
110120042scope在系统不存在
110120051access_type格式校验不通过
110120071display格式校验不通过,显示指定授权页面展示风格规则:PC端为“page”、移动端为“touch”
110120073code_challenge_method值非法,当前只支持选项“S256”、“plain”
110120074code_challenge值非法,base64无法解码
110120152授权码code换取凭证AT时,code格式校验通过
110120154授权码code、设备码code或RT(Refresh Token)中解析出来的client_id和入参client_id不一致
110120155授权码code换取凭证AT时,code已过期,默认有效期为5分钟
110120156授权码code换取凭证AT时,code已经被请求过一次,每个code能且仅能请求一次
110120158code_verifier格式校验不通过
110120159code_verifier与code_chanllege不匹配
110120172换取凭证AT时,client_secret格式校验不通过
110120173client_secret非法
110120182换取凭证AT时,grant_type值非法,仅支持选项"authorization_code", "client_credentials", "refresh_token"
110120192RT(Refresh Token)换取凭证AT时,refresh_token格式校验不通过
110120401用户码user code格式校验不通过
110120402user code已经过期或非法
110120404user code已经到期
110120406设备码code换取AT时,code已经被请求过一次,每个code能且仅能请求一次
110120407设备码code换取AT时,code换取AT轮询次数超过限制,需要重新获取
110120408设备码code换取AT时,code解析出来的scope校验不通过
110120409扫码授权,user code已经请求过一次,每个code能且仅能请求一次
110120410扫码授权,user code能且仅能单次请求生成AT
110120411设备码code换取AT时,二维码超时了仍未被扫描
110120412设备码code换取AT时,用户扫描二维码后,超时了仍未授权
110220001client_id为空
110220011response_type为空
110220021redirect_uri为空
110220151换取凭证AT时,授权码code或设备码code为空
110220171换取凭证AT时,client_secret为空
110220181换取凭证AT时,grant_type为空
110220191RT换取凭证AT时,refresh_token为空
110220400user code为空
110320153授权码code换取凭证AT时,code解不开
120311205RT换取凭证AT时,refresh_token过期
120312303授权码code换取凭证AT时,client_id在系统不存在
120312304授权码code换取凭证AT时,client_secret不对
120331202RT换取凭证AT时,refresh_token满足了正则表达式校验,但解析失败
120331204RT换取凭证AT时,refresh_token在黑名单中(用户修改密码或者登出操作,会使之前的RT被加入黑名单)
120331218RT换取凭证AT时,refresh_token不满足正则表达式
160016002设备码code换取AT时,无法解开
160016003设备码code换取AT时,device code超期
160016001设备码device code无法编码(本报错属于服务器报错,服务器正常配置情形下不会出现)
1203
其他错误,包括内部组件之间网络不通等错误。