淘宝获取卖出的商品订单列表 API 深度解析指南

以下是关于淘宝获取卖出的商品订单列表API的深度解析指南,结合官方文档和开发者经验整理,包含调用方法、参数详解、返回结果解析及常见问题处理:

一、API核心接口说明

1. taobao.trades.sold.get(官方基础接口)
  • 功能:获取卖家近3个月内已卖出的订单列表(支持批量查询)。
  • 适用场景:初始化订单同步、历史订单分析。
  • 请求参数
    • 公共参数
      • app_key:应用唯一标识(需申请)。
      • timestamp:时间戳(防重放攻击)。
      • sign:请求签名(HMAC-SHA1加密)。
      • format:返回格式(json/xml)。
    • 业务参数
      • fields:指定返回字段(如tid,status,payment,created)。
      • start_created/end_created:订单创建时间范围(格式:yyyy-MM-dd HH:mm:ss)。
      • page_size:每页订单数(默认40,最大200)。
      • page_no:页码(默认1)。
      • use_has_next:是否返回分页标识(true/false)。
2. taobao.seller_order_list(高级筛选接口)
  • 功能:支持按状态、时间、买家昵称等多条件筛选订单。
  • 适用场景:精准查询特定订单(如未发货、退款中订单)。
  • 请求参数
    • 筛选条件
      • tabCode:订单状态分类(如waitSend待发货、refunding退款中)。
      • dateBegin/dateEnd:订单时间范围。
      • buyerNick:买家昵称(模糊匹配)。
      • itemTitle:商品标题关键词。
      • orderId:订单号精确查询。
    • 分页参数
      • page:页码。
      • pageSize:每页数量(默认20)。

二、API调用流程详解

1. 准备工作
  • 注册开发者账号:访问淘宝开放平台/万邦开放平台完成实名认证。
  • 创建应用:选择“商家服务”类型,申请订单管理权限,获取App KeyApp Secret
  • 权限审核:提交应用后需等待淘宝审核(通常1-3工作日)。
2. 生成签名(以Python为例)
 

python复制代码

import hmac
import hashlib
import urllib.parse
import time
def generate_sign(params, app_secret):
params_filtered = {k: v for k, v in params.items() if k not in ['sign']}
sorted_params = sorted(params_filtered.items(), key=lambda x: x[0])
string_to_sign = '&'.join([f"{urllib.parse.quote(k)}={urllib.parse.quote(str(v))}" for k, v in sorted_params])
sign = hmac.new(app_secret.encode('utf-8'), string_to_sign.encode('utf-8'), hashlib.sha1).hexdigest().upper()
return sign
# 示例参数
params = {
'app_key': 'your_app_key',
'method': 'taobao.trades.sold.get',
'timestamp': str(int(time.time())),
'format': 'json',
'fields': 'tid,status,payment',
'start_created': '2025-04-01 00:00:00',
'end_created': '2025-04-07 23:59:59'
}
sign = generate_sign(params, 'your_app_secret')
params['sign'] = sign
3. 发送HTTP请求
  • 请求URLhttps://gw.api.taobao.com/router/rest
  • 请求方式:GET/POST均可(建议POST传递敏感参数)。
  • 示例代码(Python)
 

python复制代码

import requests
response = requests.post('https://gw.api.taobao.com/router/rest', data=params)
data = response.json()
if data['error_response']:
print(f"错误码:{data['error_response']['code']}, 描述:{data['error_response']['msg']}")
else:
trades = data['trades_sold_get_response']['trades']['trade']
for trade in trades:
print(f"订单号:{trade['tid']}, 状态:{trade['status']}, 实付金额:{trade['payment']}")

三、返回结果解析

1. 成功响应结构
 

json复制代码

{
"trades_sold_get_response": {
"trades": {
"trade": [
{
"tid": "订单号",
"status": "交易状态(如TRADE_FINISHED)",
"payment": "实付金额(单位:分)",
"created": "下单时间",
"buyer_nick": "买家昵称",
"orders": {
"order": [
{
"oid": "子订单号",
"title": "商品标题",
"num": "购买数量",
"price": "单价(分)"
}
]
}
}
]
},
"total_results": "总订单数"
}
}
2. 状态码映射表

状态码(status)含义
WAIT_BUYER_PAY等待买家付款
WAIT_SELLER_SEND等待卖家发货
WAIT_BUYER_CONFIRM等待买家确认收货
TRADE_FINISHED交易完成
TRADE_CLOSED交易关闭(如退款成功)

四、常见问题与解决方案

1. 签名错误(错误码:15)
  • 原因:参数排序错误、App Secret泄露或编码问题。
  • 解决
2. 权限不足(错误码:11)
  • 原因:应用未申请订单权限或审核未通过。
  • 解决:登录开放平台,在“应用管理”中补全权限申请。
3. 频率超限(错误码:16)
  • 限制规则:默认每小时1000次调用,可申请提升配额。
  • 解决
    • 分散请求时间(如使用队列分批查询)。
    • 联系行业小二申请更高QPS。
4. 时间范围过大
  • 限制:单次查询时间跨度不超过3个月。
  • 解决:拆分查询为多个时间段(如按月查询)。

五、高级功能扩展

  1. 增量同步:使用taobao.trades.sold.increment.get接口获取订单变更数据(适用于实时更新场景)。
  2. 订单详情查询:调用taobao.trade.fullinfo.get获取物流、退款等详细信息。
  3. 自动化工具:结合Airflow或自定义脚本实现定时拉取订单数据到本地数据库。

通过以上指南,开发者可快速实现订单数据的获取与管理。建议在实际调用前,使用https://api.taobao.com/apidoc/explorer.htm验证参数有效性。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值