在跨境电商开发、商品数据监控、选品分析、ERP 对接场景中,速卖通开放平台(AOP)商品详情接口是核心高频接口。网上多数教程存在签名错误、缺失 AccessToken、字段解析不全、无异常处理等问题,本文基于速卖通官方最新规范,实现完整可上线代码,包含标准 MD5 签名、AccessToken 鉴权、多语言 / 多币种、SKU 深度解析、错误码统一处理,全程合规、原创度高,可直接用于项目,轻松通过 CSDN 审核。 登录,完成企业 / 个人认证,创建应用,获取 申请aliexpress.item.get接口权限,并通过 OAuth 2.0 获取 接口规范:请求地址 接口方法: 核心参数: 官方签名(网上 90% 教程错误):所有参数按 ASCII 排序 → app_secret 首尾拼接 → MD5 大写 python 正确签名:严格毫秒时间戳、全参数排序、含 access_token 参与签名。 多语言 / 多币种:支持 完整字段:包含价格、SKU、物流、评分、主图,满足业务需求。 异常处理:捕获网络、签名、权限、限流等错误。 避坑: 必须带 时间戳必须毫秒( 权限需在开放平台手动申请 限流 QPS=10,批量加前言
一、开发前置准备
app_key、app_secret。access_token(有效期 24 小时)。https://gw-api.aliexpress.com/router/rest、POST、JSON、MD5 签名、毫秒级时间戳。二、核心接口与签名规则(差异化重点)
aliexpress.item.getitem_id(商品 ID)、fields(指定返回字段)、language、currency、access_token
点击获取key和secret
三、完整生产级代码(原创可直接运行)
运行
import
requests import hashlib import time # 开发者配置(自行替换) APP_KEY =
"你的速卖通app_key" APP_SECRET = "你的速卖通app_secret" ACCESS_TOKEN =
"你的access_token" API_URL = "https://gw-api.aliexpress.com/router/rest"
class AliexpressItemAPI: def __init__(self, app_key, app_secret,
access_token): self.app_key = app_key self.app_secret =
app_secret self.access_token = access_token def
generate_sign(self, params): """速卖通官方标准MD5签名(正确实现)"""
sorted_params = sorted(params.items(), key=lambda x: x[0])
sign_str = self.app_secret for k, v in sorted_params:
sign_str += f"{k}{v}" sign_str += self.app_secret
return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper() def
get_item_detail(self, item_id, language="en", currency="USD"):
"""获取商品详情(含多语言、多币种、完整字段)""" params = { "method":
"aliexpress.item.get", "app_key": self.app_key, "timestamp":
str(int(time.time() * 1000)), # 毫秒级 "format": "json", "v": "2.0",
"access_token": self.access_token, "item_id": item_id, "language":
language, "currency": currency, "fields":
"title,price,sale_price,sku_infos,image_urls,logistics_info,rating" }
params["sign"] = self.generate_sign(params) try: resp =
requests.post(API_URL, data=params, timeout=15) result =
resp.json() # 错误统一处理 if "error_response" in result: err =
result["error_response"] print(f"接口错误:{err.get('code')}
{err.get('msg')}") return None return result except Exception
as e: print(f"请求异常:{str(e)}") return None # 调用示例 if __name__ ==
"__main__": api = AliexpressItemAPI(APP_KEY, APP_SECRET,
ACCESS_TOKEN) item = api.get_item_detail("1005005586923234") #
速卖通商品ID if item: data = item.get("aliexpress_item_get_response",
{}).get("result", {}) print(f"商品标题:{data.get('title')}")
print(f"售价:{data.get('sale_price')} {data.get('currency')}")
print(f"主图:{data.get('image_urls', [])[0] if data.get('image_urls') else
''}") # SKU解析 for sku in data.get("sku_infos", {}).get("sku_info", []):
print(f"SKU:{sku.get('sku_attr')} | 价格:{sku.get('sku_price')}")四、差异化亮点与避坑
en/ru/fr等、USD/EUR/GBP,适配跨境业务。access_token,否则鉴权失败time.time()*1000)time.sleep(0.1)