该文档已过时,请参考最新文档https://open.taobao.com/docV3.htm?docId=109122&docType=1
奇门接口报错无外乎奇门平台的报错和对方接口的校验报错,针对不同的报错找对应的人。奇门平台的报错信息请参看本页中的错误码及解决方案。
1. 如果<response>报错信息中code=TOP15或者code=TOP60,则该报错是奇门平台给出的报错信息,根据报错message信息在本页下面的表格中查找对应的解决方案。奇门上线以来,所有ISV反馈的奇门平台报错信息,在这里都能找到答案。(注:如果是奇门的报错,message信息一定是英文的)
2. 如果<response>报错信息中code是其他的信息,则该条报错信息一定是对方的报错,请联系对方协助排查原因。
奇门已经开放了ISV查询日志工具,可以查询正式(线上)环境和测试环境的日志,请登录”奇门中心-奇门日志查询“ 页面进行查
1.奇门仓储业务接口报错
CODE=TOP15/TOP60 MESSAGE |
解决方案 |
Signature is invalid, customerId is *****, fromAppkey is *****, original signature is *****; |
签名问题的排查思路:
|
Failed to get seller information |
1.请求URL中customerId参数没传 |
error=[QIMEN-ERROR] 获取不到卖家[tuserid=null, customerId=260898, app_key=null]的授权关系 qimen inernal error | isp.route-error | 路由服务信息异常 |
授权关系错误,要么是参数用错,要么是奇门没有配置: |
Cannot get destination appkey, unresolvable url |
1.请求URL中method没传 |
No App(appsecret) found for appkey |
1.app_key为空 |
Only MD5 is supported in current |
sign_method为空或者不是md5 |
Standard request parse error |
请求body出错,可能的原因如下: XML格式排查工具:http://tool.oschina.net/codeformat/xml/ |
Remote service error | isp.http-connection-refuse |
该类问题,直接联系对方技术人员,产生原因可能是: |
Connection Failed |
遇到这种情况首先检查一下公司网络是否可以访问奇门沙箱环境,将沙箱地址http://qimenapi.tbsandbox.com/router/qimen/service贴到浏览器,如果没有收到奇门返回的信息,需要重新设置一下网络环境。 |
qimen inernal error | qimen.request-convert-error | |
1.奇门转发的url中不包含http或https,导致奇门无法获得端口号,检查授权关系中的url是否正确。 |
qimen inernal error | qimen.request-convert-error | Standard request parse error: : only whitespace content allowed before start tag and not t |
1.检查是否body传的不是XML格式,或者不是标准的xml格式; |
can not get log info successfully |
奇门日志落库出现了问题 |
<message>?????????????????????!</message> |
1.去日志工具查看对方返回的就是?????,还是接收方自己解析的时候出现了?????,谁的问题找谁解决。 2.处理的方法建议:new String(response.getBytes("ISO-8859-1"), "UTF-8"); |
Qimen service error | other-mistake |
如果收到这个请求,说明对方的响应不符合白皮书标准,奇门现在要求请求和响应都严格按照白皮书的标准,否则会被拦截! |
<response> <flag>failure</flag> <code>404</code> |
挡板自测时遇到的问题,把v改成2.0 |
<response><flag>failure</flag><code>TOP15</code><message>Remote service error | isp.io-failure</message></response> |
通常是对方服务的异常,首先确认对方服务器是否正常 |
<response> |
请求的格式非JSON/XML格式,一般是服务报错造成,比如404,503报错等 |
<response/> |
返回内容只有一个Response却没有内容节点,需要检查返回的内容格式是否和API定义格式一致 |
后端http服务不可用 |
请检查提示的字段是否类型一致或者有包含特殊字符等 |
isp.fill-qimen-topRequest-error |
请检查API名是否合法,API名必须是完整的,比如taobao.qimen.transferorder.query不能缩写成.transferorder.query |
1.自测和联调要用沙箱的appkey,那么什么是沙箱appkey,以及沙箱的secret怎么获取?
A:登陆开放平台open.taobao.com,进入控制台,找到对接奇门使用的应用,应用设置里有沙箱环境的参数。一般情况,沙箱appkey是正式appkey前面加10,沙箱secret是sandbox开头的。
2.自测时候挡板的appkey和secret是多少?
A:在挡板自测的时候,appkey=自己应用的appkey时,请从问题1中获取secret;如果需要模拟挡板向自己的应用发起调用,那么APPKEY使用挡板的APPKEY(testerp_appkey)时,secret用:sandboxe014f2b9a8031cdf928955f2f。
3.挡板自测的时候获取的报文是乱码怎么办?
A:这里提供一个Java版的解决办法:new String(response.getBytes("ISO-8859-1"), "UTF-8");
4.ERP-WMS的奇门接口中会遇到orderCode和orderId两个字段,有什么区别?
A:orderCode是ERP定义的订单号,而很多仓库也会对单号进行定义,那么就放在orderId中,这两个字段指同一个单号。后续ERP查询/修 改单号信息的时候,如果WMS定义了orderId,那么查询/修改的时候也要把orderId字段带上(所以该字段属性为条件必填);同 理,itemCode和itemId也是一样的。
5.签名时注意timestamp字段的处理。
A:timestamp字段做签名的时候,要用encode之前的,验证签名的时候,要用decode之后的。也就是,计算签名的时候都使用 timestamp的原始数据。如:签名的时候用encode之前的timestamp2015-08-19 12:04:24,传URL的时候要encode,用stamptime2015-04-26%2000:00:07,校验签名的时候还是用 timestamp2015-08-19
12:04:24。如果使用SDK,则不存在这个问题。
6.关于订单被重复处理的问题。
A:有一种场景会存在订单被重复处理的风险,请服务商注意:ERP发送一个发货单创建申请,WMS接收到请求,但响应的时间超过了奇门的最大超时时间,假设8s,即WMS在8s内没有给出响应,那么奇门会返回ERP系统time-out的错误,ERP认为该订单没有发送成功,一定会重新发,而实际上WMS已经在系统中成功处理了该订单。那么第二次ERP重发的时候,WMS正确的做法是判断该订单号是否发已处理,如果已处理则返回成功即可,而不要返回类似“该订单已存在/已处理”等类似的报错,因为返回报错响应,ERP依然认为该订单没有发送成功,会陷入死循环。其他接口也有类似问题,请注意!
7.请求url中的v如何定义版本号?
A:奇门仅支持大版本号,即v=1.0或者v=2.0,但是不支持小版本号,如2.1,2.2。v=1.0是早期对接奇门时候的版本,现在都是2.0,服务商可以都使用v=2.0。
8.百川应用是否可以对接奇门接口?
A:暂时还不能,会报:No App(appsecret) found for appkey。