Date | Version | Description |
---|---|---|
2016.02 | 1.0 | 1. 创建 |
2016.03 | 1.1 | 1. 库存变更引入后端商品 |
2016.03 | 1.2 | 1. 库存变更引入前端商品,增加库存占用调整接口 |
2016.03 | 1.3 | 1. 订单全链路同步接口入参增加入参增加actionTime |
2016.03 | 1.4 | 1. 门店新增shopid非必填,营业时间去掉秒级;库存占用调整接口 originalWarehouseId非必填 |
2016.03 | 1.5 | 1. 修改门店查询返回条数 |
2016.04 | 1.6 | 1. 增加库存通方案对比,修改商品关联门店、门店关联商品增加翻页 |
2017.09 | 1.7 | 1. 增加发货回传 |
全渠道里面商品通,需要将线下门店基础信息、门店商品信息、商品的库存信息、以及订单下行时的分单情况 同步到线上。商家中台系统(OMS或ERP等)通过奇门接口与阿里星盘进行数据打通。
奇门接口示例:
http://qimen.api.taobao.com/router/qimen/service?method=[qimen_API]×tamp=[2015-02-01 00:00:00]&format=xml&app_key=[erp_appkey]&v=1.0&sign=[xxxxxxxxxxxxxxxxxxxxxx]&sign_method=md5&customerId=[taobao_sellerId]
注:
1. []中需要根据具体业务进行填写。
2. qimen_API具体见下方的API名称。
3. timestamp和customerId的值需要做URL Encoding处理。
4. customerId指商家线上店铺的sellerid,即卖家ID。
5. 请求和响应的消息主体使用XML格式。
6. 所有非叶子节点下都可以增加remark和extendProps。如remark :
extendProps(扩展属性)使用key-value结构
<extendProps> <key1>value1</key1> <key2>value2</key2> </extendProps>
参数 | 说明 | 类型 | 约束 |
---|---|---|---|
method | 相关的业务接口名称 | string | 必须 |
timestamp | 时间戳,格式为yyyy-mm-dd HH:mm:ss | string | 必须 |
format | content格式 | string | 仅支持xml |
app_key | 淘宝开放平台应用接入时申请的appkey | string | 必须 |
v | 协议版本号,1.0或者2.0 | string | 必须 |
sign | 根据url和密钥计算的结果。具体算法参看附录1 | string | 必须 |
sign_method | 参数加密方法,md5 | string | 必须 |
customerid | 淘宝账号id | string | 必须 |
参数 | 说明 | 类型 | 约束 |
---|---|---|---|
flag | success\failure | string | 必须 |
code | 返回状态码 | string | 必须 |
message | 返回状态描述 | string | 必须 |
商品通基础接入,示图如下:
接口说明: 商家在ERP等系统中调用该接口,新建线下门店,并将其与线上店铺关联。新建门店成功后,会返回一个门店ID,是一个全局ID,后续所有的接口都用此ID通信。其中门店主营类目字段,需要通过1.2的“门店类目获取接口”获取所有类目候选项,然后上传对应的类目编号。
1.1.1 接口介绍
API名称:taobao.qimen.store.create
1.1.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <storeCode>建议ERP系统中 门店编码+shopId,string(50),必填</storeCode> <companyName>商户名称(例如,甘其食),string(50),必填</companyName> <storeName>门店名称(例如,文一西路淘宝店),string(50),必填</storeName> <storeType>类型,string(50),NORMAL=普通门店,MALL = 商城, MALL_SHOP = 店中店, LIGHT_SHOP = 淘小铺, HOSPITAL = 阿里健康(医院), DEPARTMENT = 阿里健康(医院科室), WAREHOUSE=仓库,必填</storeType> <mainCategory>门店主营类目,int,必填</mainCategory> <startTime>开始营业时间,string (19) , HH:MM,必填</startTime> <endTime>关闭营业时间,string (19) , HH:MM,必填</endTime> <address> <region>区域(如华南区),string(50)</region> <province>省份,string(50),必填</province> <city>城市,string(50),必填</city> <area>区域,string(50),必填</area> <town>村镇,string(50)</town> <detailAddress>详细地址,string(50),必填</detailAddress> <countryCode>国家二字码,string(50)</countryCode> </address> <storeStatus>门店状态,string(50),HOLD=暂停营业 ,CLOSE=关店,NORMAL=正常</storeStatus> <storeDescription>商户介绍,string(500)</storeDescription> <storeKeeper> <name>姓名,string(50)</name> <tel>固定电话,string(50),必填</tel> <mobile>移动电话,string(50),必填</mobile> <fax>传真,string(50)</fax> <zipCode>邮编,string(50)</zipCode> </storeKeeper> <remark>备注,string(500)</remark> </request>1.1.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <storeId>门店ID</storeId> <code>响应码</code> <message>响应信息</message> </response>1.2.门店类目获取接口
接口说明:调用该接口,获取门店类目,其中每个最末端类目对应一个id,每当商家选定一个主营类目时,ISV只需将对应的ID传给奇门即可。
建议:每次新增门店时,实时拉取下门店类目,保证类目的同步。1.2.1 接口介绍
API名称:taobao.qimen.storecategory.get
1.2.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <remark>备注,string(500)</remark> </request>1.2.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <storeCategory>类目的JSON格式文件</storeCategory> <code>响应码</code> <message>响应信息</message> </response>1.3.门店更新接口
接口说明:调用该接口,更新门店信息
1.3.1 接口介绍
API名称:taobao.qimen.store.update
1.3.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <storeId>门店ID,long,必填</storeId> <storeCode>ERP系统中 门店编码,string(50),必填</storeCode> <shopId>需要关联的线上店铺ID,long,必填</shopId> <companyName>商户名称,string(50),必填</companyName> <storeName>门店名称,string(50),必填</storeName> <storeType>类型,string(50),NORMAL=普通门店,MALL = 商城, MALL_SHOP = 店中店, LIGHT_SHOP = 淘小铺, HOSPITAL = 阿里健康(医院), DEPARTMENT = 阿里健康(医院科室), WAREHOUSE=仓库,必填</storeType> <mainCategory>门店主营类目,int,必填</mainCategory> <startTime>开始营业时间,string (19) , HH:MM,必填</startTime> <endTime>关闭营业时间,string (19) , HH:MM,必填</endTime> <address> <region>区域(如华南区),string(50)</region> <province>省份,string(50),必填</province> <city>城市,string(50),必填</city> <area>区域,string(50),必填</area> <town>村镇,string(50)</town> <detailAddress>详细地址,string(50),必填</detailAddress> <countryCode>国家二字码,string(50)</countryCode> </address> <storeStatus>门店状态,string(50),HOLD=暂停营业 ,CLOSE=关店,NORMAL=正常 </storeStatus > <storeDescription>商户介绍,string(500)</storeDescription> <storeKeeper> <name>姓名,string(50)</name> <tel>固定电话,string(50),必填</tel> <mobile>移动电话,string(50),必填</mobile> <fax>传真,string(50)</fax> <zipCode>邮编,string(50)</zipCode> </storeKeeper> <remark>备注,string(500)</remark> </request>1.3.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> </response>
接口说明:调用该接口,删除门店数据
1.4.1 接口介绍
API名称:taobao.qimen.store.delete
1.4.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <storeId>门店ID,long,必填</storeId> </request>1.4.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> </response>1.5.门店信息查询接口
接口说明:调用该接口,查询门店信息
1.5.1 接口介绍
API名称:taobao.qimen.store.query
1.5.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <storeId>门店ID,long,必填</storeId> </request>1.5.3 出参规范
<?xml version="1.0" encoding="UTF-8"?> <response> <storeCode>ERP系统中 门店编码,string(50)</storeCode> <shopId>需要关联的线上店铺ID,long</shopId> <companyName>商户名称,string(50)</companyName> <storeName>门店名称,string(50)</storeName> <storeType>类型,string(50),NORMAL=普通门店,MALL = 商城, MALL_SHOP = 店中店, LIGHT_SHOP = 淘小铺, HOSPITAL = 阿里健康(医院), DEPARTMENT = 阿里健康(医院科室), WAREHOUSE=仓库 </storeType> <mainCategory>门店主营类目,int </mainCategory> <startTime>开始营业时间,string (19) , HH:MM </startTime> <endTime>关闭营业时间,string (19) , HH:MM </endTime> <address> <region>区域(如华南区),string(50)</region> <province>省份,string(50) </province> <city>城市,string(50) </city> <area>区域,string(50) </area> <town>村镇,string(50)</town> <detailAddress>详细地址,string(50) </detailAddress> <countryCode>国家二字码,string(50)</countryCode> </address> <storeStatus>门店状态,string(50),HOLD=暂停营业 ,CLOSE=关店,NORMAL=正常 </storeStatus> <storeDescription>商户介绍,string(500)</storeDescription> <storeKeeper> <name>姓名,string(50)</name> <tel>固定电话,string(50) </tel> <mobile>移动电话,string(50) </mobile> <fax>传真,string(50)</fax> <zipCode>邮编,string(50)</zipCode> </storeKeeper> <remark>备注,string(500)</remark> </response>
接口说明:调用该接口,将线上商品和线下门店“新建/删除”关联。这里的线上。每次只能单个商品关联多个门店,门店上限200。
1.6.1 接口介绍
API名称:taobao.qimen.itemstore.banding
1.6.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <actionType>操作类型,string(50),ADD=新建,DELETE=删除,必填</actionType> <itemId>线上商品ID,long,必填</itemId> <storeIds> <storeId>门店ID,long,必填</storeId> </storeIds> <remark>备注,string(500)</remark> </request>1.6.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> </response>
接口说明:调用该接口,查询商品所关联的门店列表
1.7.1 接口介绍
API名称:taobao.qimen.itemstore.query
1.7.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <itemId>线上商品ID,long,必填</itemId> <page>当前页数,long,非必填,默认值为1,返回第一页数据,每页默认记录100条</page> </request>1.7.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success</flag> <code>响应码</code> <storeIds> <storeId>门店ID,long </storeId> </storeIds> <message>响应信息</message> <totalLines>storeIds总条数,int</totalLines> </response>
接口说明:调用该接口,查询某门店所关联的线上商品列表
1.8.1 接口介绍
API名称:taobao.qimen.storeitem.query
1.8.2 入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <storeId>门店ID,long ,必填</storeId> <page>当前页数,long,非必填,默认值为1,返回第一页数据,每页默认记录100条</page> </request>1.8.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success</flag> <code>响应码</code> <itemIds> <itemId>线上商品ID,long</itemId> </ itemIds > <message>响应信息</message> <totalLines>商品ID总条数,int</totalLines> </response>2.库存通(前端商品)
说明:通过前端商品方式对接库存,代表货品中心与前端商品的映射关系阿里系统自动完成。
2.1.创建电商仓
说明:电商仓的创建沿用先前的产品,可以通过页面创建,也可以通过接口创建。先前没有对接过商品通的商家,对于库存的维护基本上都是通过卖家中心编辑商品对应的sku的库存完成的。对接商品通后,将库存细分为了电商仓库存和门店库存,而且必须全部通过全渠道库存接口来维护库存。
2.1.1页面创建方式
库存中心地址:https://inventory.tmall.com/merchant/storeManager.htm?spm=0.0.0.0.jKpAuM
2.1.2TOP接口创建方式
taobao.inventory.store.manage (创建或更新仓库): //open.taobao.com/doc2/apiDetail.htm?spm=a219a.7386797.0.0.ATXxUE≈iId=21611
接口说明:全量更新电商仓或门店库存,该接口一次可以初始化多个门店(或电商仓)的多个商品的多种类型库存,支持多次初始化。
2.2.1接口介绍
API名称:taobao.qimen.storeinventory.iteminitial
2.2.2入参规范
<?xml version="1.0" encoding="UTF-8"?> <request> <userId>淘宝账号ID,long ,必填</userId> <operationTime>操作时间,string (19) , YYYY-MM-DD HH:MM:SS,必填</operationTime> <stores> <store> <warehouseType>库存来源的类型,string(50),WAREHOUSE=电商仓,STORE=门店,必填</warehouseType> <warehouseId>门店ID(商户中心) 或 电商仓ID,string(50),必填</warehouseId> <storeInventories> <storeInventory> <billNum>单据流水号,用于幂等操作,string(50) ,必填</billNum> <itemId>淘宝前端商品id,long,必填</itemId> <outerId>ISV系统中商品SKU外部编码(一定要和itemid,skuid一致,不然会认为是一个新的商品,且保证唯一),string(50) ,必填</outerId> <skuId>商品的SKU编码,long,有sku的必填</skuId> <inventoryType>库存类型,string(50),CERTAINTY=确定性库存,UNCERTAINTY=不确定性库存,必填</inventoryType> <quantity>对应类型的库存数量(正数),int,必填</quantity> </storeInventory> </storeInventories> </store> </stores> </request>2.2.3出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> <errorDescriptions> <error> <descrpition>错误描述,String(50)</descrption> <failedBillNum>处理失败的流水号(有多个时,用逗号分隔),string(50)</failedBillNum> </error> </errorDescriptions> </response>
接口说明:增量更新门店或电商仓库存,该接口一次可以同时增量更新10个SKU的库存。若存在大量库存需要更新情况。需采用并发多线程的调用方式。
2.3.1接口介
API名称:taobao.qimen.storeinventory.itemupdate
2.3.2入参规范
<?xml version="1.0" encoding="UTF-8"?> <request> <userId>淘宝账号ID,long ,必填</userId> <operationTime>操作时间,string (19) , YYYY-MM-DD HH:MM:SS,必填</operationTime> <stores> <store> <warehouseType>库存来源的类型,string(50),WAREHOUSE=电商仓,STORE=门店,必填</warehouseType> <warehouseId>门店ID(商户中心) 或 电商仓ID,string(50),必填</warehouseId> <storeInventories> <storeInventory> <billNum>单据流水号,用于幂等操作,string(50) ,必填</billNum> <billType>单据类型,String(50),TAOBAO_INCLUDED=包括淘系销售及其他渠道销售, TAOBAO_EXCLUDED=只含其他渠道销售,不包括淘系销售,BALANCE=盘点(包括入库、出库、盘亏盘盈),必填</billType> <itemId>淘宝前端商品id,long,必填</itemId> <outerId>ISV系统中商品SKU外部编码(一定要和itemid,skuid一致,不然会认为是一个新的商品,且保证唯一),string(50) ,必填</outerId> <skuId>商品的SKU编码,long,有sku的必填</skuId> <inventoryType>库存类型,string(50),CERTAINTY=确定性库存,UNCERTAINTY=不确定性库存,必填</inventoryType> <quantity>本次调整库存数量(新增时填正数,扣减时填负数),int, 必填</quantity> <finalQuantity>调整后库存数量,int</finalQuantity> </storeInventory> </storeInventories> </store> </stores> </request>2.3.3出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> <errorDescriptions> <error> <descrpition>错误描述,String(50)</descrption> <failedBillNum>处理失败的流水号(有多个时,用逗号分隔),string(50)</failedBillNum> </error> </errorDescriptions> </response>
接口说明:查询门店或电商仓库存,该接口一次可以同时查询多个门店或电商仓的多个商品的多种类型的库存
2.4.1接口介绍
API名称:taobao.qimen.storeinventory.itemquery
2.4.2入参规范
<?xml version="1.0" encoding="UTF-8"?> <request> <userId>淘宝账号ID,long ,必填</userId> <stores> <store> <warehouseType>库存来源,string(50),WAREHOUSE=电商仓,STORE=门店,必填</warehouseType> <warehouseId>门店ID(商户中心) 或 电商仓ID,string(50) ,必填</warehouseId> <storeInventories> <storeInventory> <itemId>淘宝前端商品id,long,必填</itemId> <outerId>ISV系统中商品SKU外部编码(一定要和itemid,skuid一致,不然会认为是一个新的商品,且保证唯一),string(50) ,必填</outerId> <skuId>商品的SKU编码,long,有sku的必填</skuId> </storeInventory> </storeInventories> </store> </stores> </request>2.4.3出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> <stores> <store> <warehouseType>库存来源,string(50),WAREHOUSE=电商仓,STORE=门店</warehouseType> <warehouseId>门店ID(商户中心) 或 电商仓ID,string(50)</warehouseId> <storeInventories> <storeInventory> <itemId>淘宝前端商品id,long</itemId> <outerId>ISV系统中商品SKU外部编码,string(50)</outerId> <skuId>商品的SKU编码,long</skuId> <quantityDetails> <quantityDetail> <inventoryType>库存类型,string(50),CERTAINTY=确定性库存,UNCERTAINTY=不确定性库存</inventoryType> <quantity>当前类型库存数量,int</quantity> </quantityDetail> </quantityDetails> </storeInventory> </storeInventories> </store> </stores> </response>
接口说明:当第三方系统出现分单结果和天猫货品中心分单结果不一致时,需要调用此接口同步分单消息给天猫货品中心,调整之前占用的门店/电商仓库存
2.5.1接口介绍
API名称:taobao.qimen.storeinventory.itemadjust
2.5.2入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <userId>淘宝账号ID,long ,必填</userId> <operationTime>操作时间,string (19) , YYYY-MM-DD HH:MM:SS,必填</operationTime> <inventoryAdjustInfo> <billNum>流水号,用于幂等操作,string(50),必填</billNum> <tbTradeOrder>淘宝订单号,string(50),必填</tbTradeOrder> <tbSubTradeOrder>淘宝子订单号,string(50),必填</tbSubTradeOrder> <targetWarehouseType>调整到的目标仓储类型,string(50),STORE=门店,WAREHOUSE=电商仓,必填</targetWarehouseType> <targetWarehouseId>需要调整到的目标门店ID(商户中心) 或电商仓ID,string(50),必填</targetWarehouseId> <itemId>淘宝前端商品id,long,必填</itemId> <outerId>ISV系统中商品SKU外部编码(一定要和itemid,skuid一致,不然会认为是一个新的商品,且保证唯一),string(50) ,必填</outerId> <skuId>商品的SKU编码,long,有sku的必填</skuId> <inventoryType>库存类型,string(50),CERTAINTY=确定性库存,UNCERTAINTY=不确定性库存,必填</inventoryType> <quantity>需调整的库存数量,long,必填</quantity> </inventoryAdjustInfo> </request>2.5.3出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> </response>3.订单全链路同步(在isv或者商家系统分单之后,立刻调用该接口)
3.1.订单全链路接口
接口说明:商家中台,将订单下行分单情况同步到线上(注:此接口用于非星盘非店掌柜的分单接单)
3.1.1接口介绍
API名称:taobao.qimen.orderStatus.sync
3.1.2入参规范
<?xml version="1.0" encoding="utf-8"?> <request> <sellerCode>卖家淘宝ID,String,必填</sellerCode> <parentOrderCode>淘系主订单号,Long,必填(单订单情况下主子订单号相同)</parentOrderCode> <orderCodes> <orderCode>淘系子订单号,Long,必填</orderCode> </orderCodes> <storeId>目标门店的商户中心门店编码, Long,条件必填(门店发货、门店自提相关状态场景下)</storeId> <type>业务类型,String,条件必填(门店发货、门店自提相关状态下)(枚举值:FAHUO、ZITI)</type> <status>订单状态,String,必填</status> <operator>操作人,String,必填</operator> <actionTime>事件发生时间,String(yyyy-MM-dd HH:mm:ss),必填</actionTime> </request>3.1.3 出参规范
<?xml version="1.0" encoding="utf-8"?> <response> <flag>success|failure</flag> <code>响应码</code> <message>响应信息</message> </response>
门店发货场景状态(两个状态都必须上传,且是在发货前回传):
通知门店配货 X_ALLOCATION_NOTIFIED
门店已接单 X_SHOP_ALLOCATION
A.回写订单全链路的意义
1) 物流详情将展现门店发货的详细信息,如下:
2) 逆向交易中,支持退换给门店,这要求全链路中的门店信息一定要正确填写:
3) 商场同款标也是基于全链路数据显示,如果没有全链路数据,商场同款标将会不显示:
B. 接口使用说明:
1)不拆单情况
假设主订单号tid1,子订单号tid2,tid3,tid4.
<parentOrderCode>tid1</parentOrderCode> <orderCodes> <orderCode>tid2</orderCode> <orderCode>tid3</orderCode> <orderCode>tid4</orderCode> </orderCodes>
2)拆单情况
假设主订单号tid1,子订单号tid2,tid3,tid4,其中tid2一个包裹,tid3,tid4一个包裹。那么需要调用两次接口。
<parentOrderCode>tid1</parentOrderCode> <orderCodes> <orderCode>tid2</orderCode> </orderCodes>
<parentOrderCode>tid1</parentOrderCode> <orderCodes> <orderCode>tid3</orderCode> <orderCode>tid4</orderCode> </orderCodes>
接口说明:将全渠道发货信息回传,包括门店信息和仓信息
4.1.1接口介绍
API名称:taobao.logistics.offline.send;taobao.logistics.online.send
注:对这两个TOP接口,在接口入参的feature字段中增加两个key,含义如下:
retailStoreId: 发货门店ID(务必要传全渠道的门店id)或仓信息(仓信息见2.1)
retailStoreType: 发货门店类别,STORE表示门店,WAREHOUSE表示电商仓
只需要升级对接的发货接口即可4.1.2新增字段示例
参数 示例 描述 feature retailStoreId=12345;retailStoreType=STORE feature参数格式范例: retailStoreId=12345,发货门店ID或仓信息。retailStoreType=STORE: 发货门店类别,STORE表示门店,WAREHOUSE表示电商仓。对于全渠道订单回传的商家,retailStoreId和retailStoreType字段为必填字段。
http://qimenapi.tbsandbox.com/router/qimen/service?method=taobao.qimen.itemlack.report×tamp=2015-04-26 00:00:07&format=xml&app_key=testerp_appkey&v=2.0&sign=abc&sign_method=md5&customerId=stub-cust-code
method= taobao.qimen.itemlack.report timestamp=2015-04-26 00:00:07 format=xml app_key= testerp_appkey v=2.0 sign_method=md5 customerId =test
app_key= testerp_appkey customerId = stub-cust-code format=xml method= taobao.qimen.entryorder.query sign_method=md5 timestamp=2015-04-26 00:00:07 v=2.0
连接参数名与参数值,并在首尾加上secret,此处假设secret=test,如下: testapp_keytesterp_appkeycustomerIdstub-cust-codeformatxmlmethodtaobao.qimen.itemlack.reportsign_methodmd5timestamp2015-04-26 00:00:07v2.0bodytest 其中:body用请求中的body数据代替
32位大写MD5值-> D06D88CB34B2EC0E5C9BAB396C9542B6
将所有参数值转换为UTF-8编码,然后拼装,并作URL ENCODING 如下: http://qimenapi.tbsandbox.com/router/qimen/service?method=taobao.qimen.itemlack.report×tamp=2015-04-26%2000:00:07&format=xml&app_key=testerp_appkey&v=2.0&sign=D06D88CB34B2EC0E5C9BAB396C9542B6&sign_method=md5&customerId=stub-cust-code
http://qimen.api.taobao.com/router/qimen/service