供应商API文档

编制 日期 版本
姜鹏 2023.11.14 V1.0

1 文档范围

2 全局约定

2.1 返回码

返回码 说明 类型
401 没有权限 string
403 拒绝访问 string
200 正确返回 string
429 网关限流返回。 string
其他 业务异常返回。如 token过期、刷新token过期、客户端调用已达最大次数。 https://confluence.mideazy.com/pages/viewpage.action?pageId=451739700 string

所有的返回码详细请参见: https://confluence.mideazy.com/pages/viewpage.action?pageId=451739700

重要说明:返回码新增 429,代表网关限流生效,请业务端捕获到此返回码后,建议等待至少1秒后再执行重试机制,可以直接Toast 给前端。

注:参数错误的情况, code, message 必返。

{
  "code", "非200",
  "message": "错误描述"

}

2.2 数据字典

2.2.1 供应商来源

字段 业务说明
supply_type midea 供应商:美的智慧家

2.2.2 订单支付状态

字段 业务说明
payment_state string 支付状态:1:待支付 2:支付成功 3:支付关闭,失败

2.2.3 商品上下架状态

字段 业务说明
status Int status 商品状态; 1-下架 2-上架

2.2.4 订单状态

字段 业务说明
status string 1 - 等待付款
2 - 等待发货
3 - 已发货(等待签收)
4 - 交易成功(确认收货)# 终态
5 - 交易(未付款)取消 # 终态
8 - 退款达成(款项处理中,等待打款操作)
9 - 交易结束 # 终态

2.2.5 字段说明

业务中台字段与供应商字段映射关系详见:https://docs.qq.com/sheet/DUG16RVRXUWZIYXhR?tab=BB08J2

业务开发人员可以不用关注这个,以此业务中台的文档协议进行对接即可。

2.2.6 本期接口域名

域名 环境
https://tx-platform-biz-sit.remacsmart.com SIT
https://tx-platform-biz.remacsmart.com 生产

2.3 API 返回值风格

所有的返回字段尽可能按下划线而非驼峰格式的返回。

3 安全规范

业务访问中台的所有接口均需要使用 bizToken 作为HTTP头部标识。详见:

https://confluence.mideazy.com/pages/viewpage.action?pageId=451739700

其中: bizToken为业务应用根据中台分配的client_id, client_secret 生成的Token。 详细见: https://confluence.mideazy.com/pages/viewpage.action?pageId=451739700

4 API

4.1 获取供应商商品分页数据

URL: /tx/platform-biz/openapi/skus/page

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
page_no int 页码
page_size int 分页 尺寸 , 最大尺寸为 100。超过将取最大值100.
sku_ids Array(string) 供应商的商品SKU ID列表。sku_id 为字符类型,以兼容不同供应商的sku_id

请求示例:

{"supply_type": "midea", "biz_data": {"page_no": 1, "page_size": 20, "sku_ids":["1004865"] }

返回结果

{
  "code": "200",
  "messsage": "success",
  "data": {
    "trace_id": "995c40df9e23ed8766fcaa3aca59c13e",
    "total": 1,
    "sku_list": [
      {
        "sku_id": 1004865,
        "category": "",
        "category_id": 113,
        "sku_name": "【测试商品】空气炸锅 MF-KZ30E201 KZ30E201G 1325W",
        "status": 2,
        "sale_price": 20,
        "item_detail_url": "https://sitm.midea.cn/detail/index?itemid=10000000010012071004865"

      },
      ...
    ]
  }
}

相关字段说明:

sku_id: 供应商商品SKUID

trace_id: 供应商系统的traceid 便于日志查询

total: 总记录数量 。

status: 见数据字典《2.2.3 商品上下架状态

sale_price: sku零售价格,分为单位

item_detail_url: 商品详情页面

4.2 获取供应商商品详情

URL: /tx/platform-biz/openapi/sku/detail

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
sku_id String 商品SKU的ID, 注意是字符类型。

请求示例:

{"supply_type": "midea", "biz_data": {"sku_id":  :"1004865" }}

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "27580b200ef647c12af419084b334351",
    "sku_detail": {
      "sku_id": 1004865,
      "sku_name": "【测试商品】空气炸锅 MF-KZ30E201 KZ30E201G 1325W",
      "imgs": [
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028312051.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028312115.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028305654.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028305268.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028310925.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028310853.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619028311120.jpg"
      ],
      "pc_descs": [
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027958384.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027888922.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027929220.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915284.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027923262.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915836.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027966461.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027960381.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027973257.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027916254.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027924285.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027916058.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027921237.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915401.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027959859.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027963684.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027886435.jpg"
      ],
      "mobile_descs": [
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027958384.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027888922.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027929220.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915284.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027923262.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915836.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027966461.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027960381.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027973257.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027916254.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027924285.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027916058.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027921237.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027915401.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027959859.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027963684.jpg",
        "https://dsdcp.smartmidea.net/mcsp/prod/20210422/1619027886435.jpg"
      ],
      "sale_price": 20,
      "settle_price": 20,
      "pkginfos": [
        {
          "netlength": 220,
          "netwidth": 325,
          "netheight": 275,
          "netweight": 3200,
          "pkglength": 300,
          "pkgwidth": 300
        }
      ],
      "product_model": "MF-KZ30E201",
      "status": 2,
      "selling_point": "空气热能烹饪,少油健康 、旋钮控制,时间可调 ;双重安全防护 、不粘设计,容易清洗 、外观小巧、3L容量,美味分享\"\n"

  }
}

返回值说明:

supply_type string 供应链
sku_name string 商品名称
status number 商品状态
category_id number 供应商的产品分类
category string 品类
measure_unit string 计量单位
brand string 品牌
selling_point string 商品卖点
imgs string[] 商品图片
pc_descs string[] 商详(pc)
mobile_descs string[] 移动端商详
sku_id number 外部商品编码
product_model string 产品型号
sale_price number 零售指导价
settle_price number 结算价
introduction string 产品介绍
tech_param string 技术参数
installation_condition string 安装条件
cabling_plan string 布线方案
supportmoduleinfo object 服务支持
pkginfos object[] 包装信息。对象数组。[ { "netlength":"", "netwidth":"", "netheight":"", "netweight":"", "pkglength":"", "pkgwidth":"", "pkgheight":"", "pkgweight":"" }, { "netlength":"", "netwidth":"", "netheight":"", "netweight":"", "pkglength":"", "pkgwidth":"", "pkgheight":"", "pkgweight":"" } ]
brand string 品牌名称

4.3 查询商品库存

URL: /tx/platform-biz/openapi/sku/stock

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
sku_ids Array 商品SKU的ID集合
province_code Int 省(直辖市)编码
city_code Int 市编码
region_code Int 区编码

请求示例:

{"supply_type": "midea",      "biz_data": {"sku_ids": ["1004865"], "province_code": 110000,  "city_code": 110000, 
"region_code": 110101 } }

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "total": 1,
    "trace_id": "14375870dc34c7c7809b9adff7c441e1",
    "stocks": [
      {
        "sku_id": 1004865,
        "stock": 97981,
        "store_id": 0
      }
    ]
  }
}

total: 查询总数

stock: 库存

store_id: 仓库id

4.4 批量下单

URL: /tx/platform-biz/openapi/order/submit/batch

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONArray 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
orders JSONArray 订单集合。当supply_type = midea 订单集合上限200,其他供应商上限待定。

订单对象

字段 类型 是否必 传 说明
out_order_id String 业务系统订单标识
business_type String 业务类型,此处为 tiance
sku_id String sku ID
purchase_num int 购买数量
province_code int 收件人省编码;使用业务中台行政区划编码
city_code int 收件人市编码;使用业务中台行政区划编码
region_code int 收件人区编码;使用业务中台行政区划编码
province_name String 收件人省名称,需要通过这个名称检索不同供应商的地址码
city_name String 收件人市名称, 需要通过这个名称检索不同供应商的地址码
region_name String 收件人区名称, 需要通过这个名称检索不同供应商的地址码
recv_name String 收件人姓名
recv_address String 收件人地址
recv_mobile String 收件人手机号
recv_postcode String 收件人邮编。由业务中台自行匹配邮编。
invoice_type Int 1-普通纸质发票 ;3-专用增值税发票;4-需要电子发票。supply_type=midea 不用传。
invoice_drawee_type Int 发票受票人类型, 1-个人,2-企业。invoice_type=1,4时必填。supply_type=midea 不用传。
invoice_head String 发票抬头, invoice_drawee_type=2时必填。supply_type=midea 不用传。
taxpayer_code String 纳税人识别号, invoice_drawee_type=2时必填, invoicetype=1,3时不填。supply_type=midea 不用传。
buyer_note String 买家备注。

请求示例:

{"supply_type": "midea",  "biz_data": [ {"out_order_id": "22345678923", "business_type": "tiance", "sku_id": "1004865",   "purchase_num": 1,   "province_code": 420000 ,  "city_code": 420700,    "region_code":420703,    "recv_name": "姜生",     "recv_address": "天王老子村",     "recv_mobile": "13926003676",  "recv_postcode": "420703", "invoice_type": 1 }] }

返回结果

(1) 完全失败返回

注: 异常返回会返回每一个订单下单失败的详细原因。多出一个 faile_order_list JSON数组。

{
  "code": "9999",
  "message": "下单失败,\n",
  "data": {
    "trace_id": "",
    "fail_order_list": [
      {
        "out_order_id": "0112112345678992",
        "err_code": 560074798,
        "err_msg": "外部订单号已经存在,对应订单号[1110510730800200000]"
      }
    ],
    "bdeal_info": {
      "bdeal_id": "",
      "deal_list": null
    }
  }
}

(2) 完全成功返回:

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "01ed770c15cf9601decd51fc99dbfbce",
    "fail_order_list": [],
    "bdeal_info": {
      "bdeal_id": "A25835630020",
      "deal_list": [
        {
          "deal_id": "1110510731800200000",
          "out_order_id": "1112112345678992"
        }
      ]
    }
  }
}

bdeal_id: 供应商返回的大订单ID,对应业务方的多个批量订单号,请业务方做好关联。

out_order_id: 业务方的订单ID

deal_id: 供应商的订单号。请业务方做好关联 ,订单详情的查询依赖此字段。

(3) 部分成功,部分失败返回

请求示例:

{"supply_type": "midea",  "biz_data": [ {"out_order_id": "111121123456788956", "business_type": "tiance", "sku_id": "1004928",   "purchase_num": 1,   "province_code": 420000 ,  "city_code": 420700,    "region_code":420703,  "recv_name": "姜生",     "recv_address": "天王老子村",     "recv_mobile": "13926003676",  "recv_postcode": "420703", "invoice_type": 1 }, {"out_order_id": "11112112345678895691", "business_type": "tiance", "sku_id": "1004928",   "purchase_num": 1,   "province_code": 420000 ,  "city_code": 420700,    "region_code":420703,  "recv_name": "姜生",     "recv_address": "天王老子村",     "recv_mobile": "13926003676",  "recv_postcode": "420703", "invoice_type": 1 }] }

返回示例:

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "7b7d6097e4e948c2cf1eecdb5df4330d",
    "fail_order_list": [
      {
        "out_order_id": "111121123456788956",
        "err_code": 560074798,
        "err_msg": "外部订单号已经存在,对应订单号[1110510739400200000]"
      }
    ],
    "bdeal_info": {
      "bdeal_id": "A25836320020",
      "deal_list": [
        {
          "deal_id": "1110510743400200000",
          "out_order_id": "11112112345678895691"
        }
      ]
    }
  }
}

批量提交多个订会出现部分成功部分失败的情况。成功的会返回大订单号及小订单号;失败的后返回失败的原因和业务单号。

注意: 业务端错误信息处理:

返回结果处理:

1: 无 data对象, 返回错误直接取 message;

2: 有 data 存在两种情况:

2-1 需要看 data中的 fail_order_list 集合是否有值,如果有值需要取集合对象中的对象 err_msg字段,用于准确描述订单失败原因 ;

2-2 data中的 fail_order_list 集合没有值, 直接取 message

4.5 发起支付

URL: /tx/platform-biz/openapi/order/pay/submit

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
bdeal_id String 供应商大订单ID

请求示例:

{"supply_type": "midea", "biz_data": {"bdeal_id": "A25822270020" }}

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "batch_payment_no": "G1010077691002000000000107214092",
    "payment_state": "1",
    "create_time": "2023-11-27 15:36:00",
    "payment_total_amount": 20,
    "provider_trade_no": "",
    "trace_id": "aabafe9aa722c3fde24485e7fc9180d8"
  }
}

返回字段说明

参数名称 类型 是否必须 示例 备注
batch_payment_no string G1010077691023100000000107182640 支付批次号
payment_state String 1 见数据字典《2.2.2 订单支付状态》
create_time string 2023-07-01 12:32:22 拉起支付时间
payment_total_amount int 1235 支付金额,单位为分
provider_trade_no string 23423423423423454454 支付商交易流水号

4.6 单个支付记录查询

URL: /tx/platform-biz/openapi/order/pay/query/bybpno

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
batch_payment_no String 支付批次号

请求示例:

{"supply_type": "midea",  "biz_data": { "batch_payment_no": "G1010077691002000000000107214092"} }

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "8006fe23fdf1fd015f992f5436ec0238",
    "bdeal_id": "",
    "batch_payment_no": "G1010077691002000000000107214092",
    "payment_state": "2",
    "create_time": "2023-11-27 15:36:00",
    "payment_total_amount": 20,
    "provider_trade_no": "1071202311270000000000",
    "return_time": "2023-11-27 15:36:01"
  }
}

4.7 按大单号查询支付记录

URL: /tx/platform-biz/openapi/order/pay/query/bybdid

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
bdeal_id String 供应商大单号

请求示例:

{"supply_type": "midea",  "biz_data": { "bdeal_id": "A25822270020"} }

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "5971a7c8fb7e481ed18e64e3256c5c70",
    "batch_payments": [
      {
        "bdeal_id": "A25822270020",
        "batch_payment_no": "G1010077691002000000000107214011",
        "payment_state": "2",
        "create_time": "2023-11-22 13:32:45",
        "payment_total_amount": 20,
        "provider_trade_no": "1071202311220000001002",
        "return_time": "2023-11-22 13:34:25"
      }
    ]
  }
}

provider_trade_no: 支付商交易流水号

payment_state: 参考数据字典 《2.2.2 订单支付状态》

4.8 批量查询订单状态

URL: /tx/platform-biz/openapi/order/status/batch/query

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
deal_ids String[] 供应商订单号集合,注: 不是供应商的大单号。

请求示例:

{"supply_type": "midea",  "biz_data": { "deal_ids": ["1110510734800200000"]} }

返回结果


{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "f7c932e8263765da6d960b99ad594218",
    "orders_status": [
      {
        "deal_id": "1110510734800200000",
        "status": "1"
      }
    ]
  }
}

status: 订单状态,详见数据字典《2.2.4 订单状态》

4.9 订单详情查询

URL: /tx/platform-biz/openapi/order/detail

方法: POST / PUT

HTTP头: bizToken

请求体:body 约定如下表

字段 类型 是否必 传 说明
biz_data JSONObject 业务参数
supply_type 见数据字典 《2.2.1 供应商来源》

biz_data 业务参数属性列表:

字段 类型 是否必 传 说明
deal_id String 供应商订单号,注: 不是供应商的大单号。

请求示例:

{"supply_type": "midea",  "biz_data": { "deal_id": "1110510734800200000"} }

返回结果

{
  "code": "200",
  "message": "success",
  "data": {
    "trace_id": "1eea79137b6dc2e30d4149ab7ee6ba1d",
    "deal_info": {
      "dea_lid": "1110510739400200000",
      "deal_state": 3,
      "deal_payment": 299900,
      "pay_time": "2023-12-01 14:03:19",
      "confirm_recv_time": "1970-01-01 08:00:00",
      "express_no": "333",
      "express_company_id": "1",
      "express_company_name": "安得物流"
    }
  }
}

deal_state: 参见数据字典《2.2.4 订单状态》

express_no:供应商物流快递单号

express_company_name: 供应商物流公司名称

express_company_id: 供应商的物流公司id

confirm_recv_time: 确认收货时间

Copyright © www.remacsmart.com/ 2021 all right reserved,powered by Gitbook该文件修订时间: 2024-01-10 21:27:44

results matching ""

    No results matching ""