简介
1.目前开发者调用API可能出现的错误有三类:API平台错误、API业务错误和容器类错误。下面介绍一下和ISV成功率有关的名词说明:
有效访问量=成功访问量+ISV业务错误
ISV成功率=成功访问量/有效访问量
2.连接淘宝服务器错误主要是http连接错误或者连接被重置被拒绝等,这类错误是开发者访问淘宝服务器出现的问题,请直接联系服务器管理员或通过网络搜索答案。
API平台错误
API平台错误是主要包含两类错误:
(1)错误码小于100(不包含15,40,41错误码)的调用错误,这种错误一般是由于用户的请求不符合各种基本校验而引起的。用户遇到这些错误的返回首先检查应用的权限、频率等情况,然后参照文档检验一下传入的参数是否完整且合法。
(2)子错误码(sub_code)是"isp."开头的调用错误,这种错误一般是由于服务端异常引起的。用户遇到这类错误需要隔一段时间再重试就可以解决。
错误码小于100的平台级错误
错误码 | 错误描述-英文 | 错误描述-中文 | 解决方案 | 3 | Upload Fail | 图片上传失败 | 将传入的图片格式改为正确的格式、适当的大小的图片放进消息体里面传输过来,如果传输仍然失败需要减小图片大小或者增加网络带宽进行尝试 | 7 | App Call Limited | 应用调用次数超限,包含调用频率超限 | 调整程序合理调用API,等限频时间过了再调用,淘客的调用频率是系统按照上个月交易额自动修改的,修改后的频率会在官方论坛首页以公告形式通知,开发者可自行查看 | 9 | Http Action Not Allowed | HTTP方法被禁止 | 请用大写的POST或GET,如果有图片等信息传入则一定要用POST才可以 | 10 | Service Currently Unavailable | 服务不可用 | 多数是由未知异常引起的,仔细检查传入的参数是否符合文档描述 | 11 | Insufficient ISV Permissions | 开发者权限不足 | 子错误码目前有 isv.permission-api-package-empty 没有和任何访问包关联,建议根据业务规则申请对应的权限 isv.permission-api-package-not-allowed 不允许访问不可访问组的API,建议检查一下自己申请的应用标签是否正确,如果确实需要访问不可访问组的API需要根据业务规则到对应的业务线申请权限 例如:买家不可访问组就会有一些订单API不允许买家应用访问 isv.permission-api-package-limit 关联的包中不允许访问该API,建议根据业务规则申请对应的权限 isv.permission-ip-whitelist-limit IP限制不允许访问,建议到安全中心配置正确的IP白名单 isv.permission-api-widget-only-limit 仅允许widget(组件)方式访问 | 12 | Insufficient User Permissions | 用户权限不足 | 应用没有权限调用增值权限的接口,可在淘宝合作伙伴后台提交权限申请 | 13 | Insufficient Partner Permissions | 合作伙伴权限不足 | 应用没有权限调用增值权限的接口,可在淘宝合作伙伴后台提交权限申请 | 21 | Missing Method | 缺少方法名参数 | 传入的参数加入method字段 | 22 | Invalid Method | 不存在的方法名 | 传入的method字段必需是你所调用的API的名称,并且该API是确实存在的 | 23 | Invalid Format | 无效数据格式 | 传入的format必需为json或xml中的一种 | 24 | Missing Signature | 缺少签名参数 | 传入的参数中必需包含sign字段 | 25 | Invalid Signature | 无效签名 | 签名必需根据正确的算法算出来的。算法请见: http://open.taobao.com/doc/detail.htm?id=111#s6 | 26 | Missing Session | 缺少SessionKey参数 | 传入的参数中必需包含session字段 | 27 | Invalid Session 、 unmix-sessionkey-failure | 无效的SessionKey参数 | 传入的session必需是用户绑定session拿到的,如果报session不合法可能是用户没有绑定session或session过期造成的,用户需要重新绑定一下然后传入新的sessionKey | 28 | Missing App Key | 缺少AppKey参数 | 传入的参数必需包含app_key字段 | 29 | Invalid App Key | 无效的AppKey参数 | 应用所处的环境跟选择的环境不一致,例如:应用处于沙箱测试环境,却选择在正式环境进行测试。 | 30 | Missing Timestamp | 缺少时间戳参数 | 传入的参数中必需包含timestamp参数 | 31 | Invalid Timestamp | 非法的时间戳参数 | 时间戳,格式为yyyy-mm-dd hh:mm:ss,例如:2008-01-25 20:23:30。淘宝API服务端允许客户端请求时间误差为10分钟 | 32 | Missing Version | 缺少版本参数 | 传入的参数中必需包含v字段 | 33 | Invalid Version | 非法的版本参数 | 用户传入的版本号格式错误,必需为数字格式 | 34 | Unsupported Version | 不支持的版本号 | 用户传入的版本号没有被提供 | 42 | Insufficient session permissions | 短授权权限不足 | 调用的是高危API,请参考安全等级文档 http://open.taobao.com/doc/detail.htm?id=1002 | 43 | Parameter Error | 参数错误 | 一般是用户传入参数非法引起的,请仔细检查入参格式、范围是否一一对应 | 47 | Invalid encoding | 编码错误 | 一般是用户做http请求的时候没有用UTF-8编码请求造成的 | |
平台级子错误
子错误码格式 | 错误信息 | 归属方 | 是否可在程序中重试 | isp.***-service-unavailable | 调用后端服务***抛异常,服务不可用 | ISP | 是 | isp.remote-service-error | 连接远程服务错误 | ISP | 是 | isp.remote-service-timeout | 连接远程服务超时 | ISP | 是 | isp.remote-connection-error | 远程连接错误 | ISP | 是 | isp.null-pointer-exception | 空指针异常错误 | ISP | 否 | isp.top-parse-error | api解析错误(出现了未被明确控制的异常信息) | ISP | 否 | isp.top-remote-connection-timeout | top平台连接后端服务超时 | ISP | 是 | isp.top-remote-connection-error | top平台连接后端服务错误,找不到服务 | ISP | 是 | isp.top-mapping-parse-error | top-mapping转换出错,主要是由于传入参数格式不对 | ISP | 否 | isp.unknown-error | top平台连接后端服务抛未知异常信息 | ISP | 是 | |
ISV业务错误
1.ISV业务级错误是ISV传入的参数缺失,有误或格式错误等原因造成的错误。因此isv应该根据错误信息检验是否传入了相应的信息,对于这一类错误建议改正后再重试。
主要包含两类:
(1)错误码为40,41的错误;40主要是必填参数没有传入报错,41主要是传入的参数格式不对报错。:2.
(2)错误码大于100或者等于15且子错误码(sub_code)是"isv."开头【( 错误码 > 100 or 错误码 = 15 ) and (isv开头)】的调用错误:
2.错误响应是用户和服务器交互失败的最直接展示,isv在调用top服务时,如果调用失败,请尽量保留下错误日志以便进行后面的错误追查。
40,41错误介绍
错误码 | 错误描述-英文 | 错误描述-中文 | 解决方案 | 40 | Missing Required Arguments | 缺少必选参数 | API文档中设置为必选的参数是必传的,请仔细核对文档 | 41 | Invalid Arguments | 非法的参数 | 参数类型不对,例如:需要传入的是数字类型的,却传入了字符类型的参数 | |
业务级子错误
子错误码格式 | 错误信息 | 归属方 | 是否可在程序中重试 | isv.###-not-exist:*** | 根据***查询不到### | ISV | 否 | isv.missing-parameter:*** | 缺少必要的参数*** | ISV | 否 | isv.invalid-paramete:*** | 参数***无效,格式不对、非法值、越界等 | ISV | 否 | isv.invalid-permission | 权限不够、非法访问 | ISV | 否 | isv.parameters-mismatch:***-and-### | 传入的参数***和###不匹配,两者有一定的对应关系 | ISV | 否 | isv.***-service-error:### | 调用***服务返回false,业务逻辑错误,###表示具体的错误信息 | ISV | 否 | |
容器类错误
容器类错误是指用户通过容器登录之后页面上出现的错误
错误码 | 错误描述(中文) | 100 | 授权码已经过期 | 101 | 授权码在缓存里不存在,一般是用同样的authcode两次获取sessionkey | 102 | 系统错误,建议清理浏览器缓存,稍后重试 | 103 | appkey或者tid(插件ID)参数必须至少传入一个 | 104 | appkey或者tid对应的插件不存在 | 105 | 插件的状态不对,不是上线状态或者正式环境下测试状态 | 106 | 没权限调用此app,由于插件不是所有用户都默认安装,所以需要用户和插件进行一个订购关系,这个错误一般是由于用户访问了自己没有订购的在线订购应用所造成的 | 107 | 系统错误,建议清理浏览器缓存,稍后重试 | 108 | 应用是自用型应用,只有自用型绑定用户才可以访问。 | 109,111 | 服务端在生成参数的时候出了问题,建议清理浏览器缓存,稍后重试 | 110 | 服务端在写出参数的时候出了问题 ,建议清理浏览器缓存,稍后重试 | 112 | 回调地址不正确,请检查回调地址,是否为空,或者含有top认为非法的字符。 | 113 | 用户没有同意授权 | 220 | 应用使用的授权协议未设置,请到“开发者中心”--“管理授权”里设置授权协议 | 409 | call counter exceeded 刷refresh有每天的次数限制 60次 | |
安全等级和安全漏洞错误码
父错误码信息
错误码 | 英文描述 | 中文描述 | 解决方案 |
53 | Insufficient security level | 安全等级不足 | 提高应用安全等级或刷新授权安全等级 |
子错误码信息
子错误码信息 | 中文描述 | 归属方 | 解决方案 |
high-risk security breach | 存在高危安全漏洞 | ISV | 解决安全漏洞后重新发布 |
mid-risk security breach | 存在中级安全漏洞 | ISV | 解决安全漏洞后重新发布 |
R1 security authorize missing | 未进行R1级别授权 | ISV | 进行R1级别授权(用户重新授权或刷新授权) |
R1 security authorize invalid | R1级别授权过期 | ISV | 进行R1级别授权(用户重新授权或刷新授权) |
R2 security authorize missing | 未进行R2级别授权 | ISV | 进行R2级别授权(用户重新授权或刷新授权) |
R2 security authorize invalid | R2级别授权过期 | ISV | 进行R2级别授权(用户重新授权或刷新授权) |
W1 security authorize missing | 未进行W1级别授权 | ISV | 进行W1级别授权(用户重新授权或刷新授权) |
W1 security authorize invalid | W1级别授权过期 | ISV | 进行W1级别授权(用户重新授权或刷新授权) |
W2 security authorize invalid | 未进行W2级别授权 | ISV | 进行W2级别授权(用户重新授权或刷新授权) |
W2 security authorize invalid | W2级别授权过期 | ISV | 进行W2级别授权(用户重新授权或刷新授权) |
其它特有错误码
801 | App请求所带的参数错误,一般是缺失必要参数 |
802 | 如果协议要求签名,签名错误 |
803 | 时间戳校验不过,和服务端时间差距不能超过5分钟 |