深度分析淘宝卖家订单详情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://eco.taobao.com/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)等形成完整的订单管理链路。
相关文章
|
24天前
|
缓存 API 网络架构
淘宝item_search_similar - 搜索相似的商品API接口,用python返回数据
淘宝联盟开放平台中,可通过“物料优选接口”(taobao.tbk.dg.optimus.material)实现“搜索相似商品”功能。该接口支持根据商品 ID 获取相似推荐商品,并返回商品信息、价格、优惠等数据,适用于商品推荐、比价等场景。本文提供基于 Python 的实现示例,包含接口调用、数据解析及结果展示。使用时需配置淘宝联盟的 appkey、appsecret 和 adzone_id,并注意接口调用频率限制和使用规范。
|
26天前
|
JSON 安全 API
Python处理JSON数据的最佳实践:从基础到进阶的实用指南
JSON作为数据交换通用格式,广泛应用于Web开发与API交互。本文详解Python处理JSON的10个关键实践,涵盖序列化、复杂结构处理、性能优化与安全编程,助开发者高效应对各类JSON数据挑战。
113 1
|
JSON API 数据格式
用 JSON 构建 API 的标准指南
http://jsonapi.justjavac.com/开始做,坚持做,重复做
657 0
|
26天前
|
JSON API 数据格式
淘宝/天猫图片搜索API接口,json返回数据。
淘宝/天猫平台虽未开放直接的图片搜索API,但可通过阿里妈妈淘宝联盟或天猫开放平台接口实现类似功能。本文提供基于淘宝联盟的图片关联商品搜索Curl示例及JSON响应说明,适用于已获权限的开发者。如需更高精度搜索,可选用阿里云视觉智能API。
|
29天前
|
监控 算法 API
电商API接口对接实录:淘宝优惠券接口对接处理促销监控系统
在电商开发中,淘宝详情页的“券后价计算”是极易出错的环节。本文作者结合实战经验,分享了因忽略满减券门槛、有效期、适用范围等导致的踩坑经历,并提供了完整的解决方案,包括淘宝API签名生成、券后价计算逻辑、常见坑点及优化建议,助力开发者精准实现券后价功能,避免业务损失。
|
2月前
|
人工智能 监控 API
API即生产力:电商行业如何用“数字接口”重构竞争壁垒?
电商API作为连接平台、商家、物流与支付的“数字钥匙”,正系统性破解数据孤岛、运营低效、决策滞后与体验断层等传统电商痛点。通过数据实时同步、流程自动化、智能分析与服务闭环,API助力企业提升效率、优化决策、增强用户体验,并推动全行业向智能化、数字化跃迁。
|
1月前
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
1月前
|
域名解析 JSON API
【干货满满】如何处理requests库调用API接口时的异常情况
在调用 API 时,网络波动、服务器错误、参数异常等情况难以避免。本文提供一套系统化的异常处理方案,涵盖 requests 库常见异常类型、处理策略、实战代码与最佳实践,通过分类处理、重试机制与兜底策略,提升接口调用的稳定性与可靠性。
|
2月前
|
人工智能 安全 API
2025电商API新特性:实时数据流、GraphQL接口与隐私合规
2025年电商API迎来技术与合规双重革新,实时数据流、GraphQL接口、隐私合规成为核心突破方向,推动全息电商、动态定价、供应链协同等场景升级,实现性能优化与用户隐私保护的协同发展。