
淘宝 / 天猫 / 京东多站点 API 接入全流程(含多站点标识、签名、代码示例)
淘宝、天猫共用淘宝开放平台(TOP) ,京东使用京东宙斯开放平台(JOS) 。多站点接入核心是统一应用 + 分站点标识 / 授权,以下为完整接入流程、核心规则与实战代码。
一、通用接入前提(三平台一致)
- 账号与资质 :注册开放平台账号,完成企业实名认证(个人账号权限 / 额度极低,不适合商用)。
- 应用创建 :创建应用(服务型 / 网站型),填写HTTPS 备案回调地址 ,获取
AppKey、AppSecret。 - 权限申请:按业务场景申请接口权限(如商品、订单、库存),提交用途说明,审核 1-5 个工作日。
- 授权机制 :
- 淘宝 / 天猫:SessionKey(授权码),卖家授权后获取,有效期 7 天。
- 京东:Access Token(OAuth2.0),有效期 30 天,需自动刷新。
- 多站点核心 :
- 淘宝 / 天猫:通过seller_id/shop_id区分不同店铺(站点)。
- 京东:通过shop_id/pin区分不同店铺 / 站点。

二、淘宝 / 天猫 API 接入(TOP 平台,多站点统一入口)
1. 平台入口与准备
- 开放平台:

- 多站点逻辑:一个应用可授权多个淘宝 / 天猫店铺 ,通过
seller_id/shop_id切换站点。 - 核心凭证:
AppKey、AppSecret、SessionKey(店铺授权后)。
2. 接入流程(5 步)
(1)注册与创建应用
- 登录开放平台 → 进入应用管理 → 创建服务型应用 → 填写名称、描述、HTTPS 回调地址(ICP 备案)。
- 审核通过后,在应用详情页获取
AppKey、AppSecret。
(2)申请接口权限
- 进入接口管理 → 搜索目标接口(如
taobao.item.get、tmall.item.get、taobao.trade.get)。 - 提交业务场景说明(如 "多店铺商品监控""订单同步"),等待审核(1-3 天)。
(3)店铺授权(多站点关键)
-
构造授权 URL: plaintext
https://oauth.taobao.com/authorize?response_type=code&client_id=你的AppKey&redirect_uri=你的回调地址&state=自定义参数 -
引导卖家扫码 / 登录授权 → 回调地址获取
code→ 用code换取SessionKey。 -
多店铺:重复授权,保存每个店铺的
SessionKey与seller_id。
(4)签名机制(MD5,TOP 标准)
- 所有参数(公共 + 业务)按ASCII 升序排序。
- 拼接为
key1=value1&key2=value2...(值需 URL 编码)。 - 首尾拼接
AppSecret→AppSecret+拼接串+AppSecret。 - MD5 加密并转为大写 → 得到
sign。
(5)接口调用(Python 示例,多站点切换)
python
运行
import requests
import hashlib
from urllib.parse import quote
import time
# 配置(多站点:切换SessionKey与seller_id即可)
APP_KEY = "你的AppKey"
APP_SECRET = "你的AppSecret"
# 淘宝店铺A SessionKey
SESSION_KEY_TB = "6100e23XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# 天猫店铺B SessionKey
SESSION_KEY_TM = "6200f45XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
SELLER_ID_TB = "12345678" # 淘宝店铺ID
SELLER_ID_TM = "87654321" # 天猫店铺ID
API_URL = "https://eco.taobao.com/router/rest"
# 生成签名
def generate_sign(params, app_secret):
sorted_params = sorted(params.items())
param_str = "&".join([f"{k}={quote(str(v))}" for k, v in sorted_params])
sign_str = f"{app_secret}{param_str}{app_secret}"
return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()
# 调用商品详情接口(多站点示例)
def get_item_detail(num_iid, session_key, seller_id):
params = {
"method": "taobao.item.get", # 天猫用tmall.item.get
"app_key": APP_KEY,
"session": session_key,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sign_method": "md5",
"num_iid": num_iid, # 商品ID
"seller_id": seller_id # 多站点标识
}
params["sign"] = generate_sign(params, APP_SECRET)
response = requests.post(API_URL, data=params)
return response.json()
# 调用示例:淘宝店铺A查商品
print(get_item_detail("654321", SESSION_KEY_TB, SELLER_ID_TB))
# 调用示例:天猫店铺B查商品
print(get_item_detail("987654", SESSION_KEY_TM, SELLER_ID_TM))
3. 多站点核心接口(淘宝 / 天猫)
表格
| 接口名称 | 功能 | 多站点参数 |
|---|---|---|
taobao.item.get/tmall.item.get |
商品详情 | seller_id |
taobao.items.onsale.get |
在售商品列表 | session(店铺授权) |
taobao.trade.get |
订单详情 | session、seller_id |
taobao.inventory.query |
库存查询 | session、seller_id |
三、京东 API 接入(宙斯 JOS 平台,多站点分授权)
1. 平台入口与准备
- 开放平台
- 多站点逻辑:一个应用可授权多个京东店铺 ,通过
shop_id/pin切换站点。 - 核心凭证:
AppKey、AppSecret、Access Token(OAuth2.0)。
2. 接入流程(5 步)
(1)注册与创建应用
- 登录宙斯平台 → 进入管理中心 → 应用管理 → 创建应用 → 选择电商工具 / B2B 应用 → 填写信息、回调地址。
- 审核通过后获取
AppKey、AppSecret。
(2)申请接口权限
- 进入API 权限管理 → 添加权限(如
jd.item.get、jingdong.pop.order.search)。 - 提交用途说明 + 系统截图,审核 1-5 天。
(3)店铺授权(OAuth2.0,多站点)
-
构造授权 URL: plaintext
https://oauth.jd.com/oauth/authorize?response_type=code&client_id=你的AppKey&redirect_uri=你的回调地址&scope=seller_order_get,item_read -
卖家授权 → 回调获取
code→ 用code换取Access Token(有效期 30 天)。 -
多店铺:保存每个店铺的
Access Token与shop_id。
(4)签名机制(MD5,JOS 标准)
- 参数按字典序 排序 → 拼接
key1=value1&key2=value2...。 - 末尾追加
AppSecret→ MD5 加密并大写 →sign。
(5)接口调用(Python 示例,多站点切换)
python
运行
import requests
import hashlib
import time
# 配置(多站点:切换Access Token与shop_id)
APP_KEY = "你的AppKey"
APP_SECRET = "你的AppSecret"
# 京东店铺A Token
TOKEN_A = "a1b2c3XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
# 京东店铺B Token
TOKEN_B = "x9y8z7XXXXXXXXXXXXXXXXXXXXXXXXXXXX"
SHOP_ID_A = "123456" # 店铺A ID
SHOP_ID_B = "654321" # 店铺B ID
API_URL = "https://api.jd.com/routerjson"
# 生成京东签名
def generate_jd_sign(params, app_secret):
sorted_params = sorted(params.items())
param_str = "&".join([f"{k}={v}" for k, v in sorted_params])
sign_str = f"{param_str}{app_secret}"
return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()
# 调用商品详情接口(多站点)
def get_jd_item(sku_id, access_token, shop_id):
params = {
"method": "jd.item.get",
"app_key": APP_KEY,
"access_token": access_token,
"timestamp": time.strftime("%Y-%m-%d %H:%M:%S"),
"format": "json",
"v": "2.0",
"sku_id": sku_id, # 商品SKU
"shop_id": shop_id # 多站点标识
}
params["sign"] = generate_jd_sign(params, APP_SECRET)
response = requests.post(API_URL, data=params)
return response.json()
# 调用示例:店铺A查商品
print(get_jd_item("100012345678", TOKEN_A, SHOP_ID_A))
# 调用示例:店铺B查商品
print(get_jd_item("100087654321", TOKEN_B, SHOP_ID_B))
3. 多站点核心接口(京东)
表格
| 接口名称 | 功能 | 多站点参数 |
|---|---|---|
jd.item.get |
商品详情 | shop_id |
jingdong.pop.order.search |
订单列表 | access_token、shop_id |
jingdong.ware.stock.get |
库存查询 | access_token、shop_id |
jingdong.pop.order.get |
订单详情 | access_token、shop_id |
四、三平台多站点接入对比表
表格
| 维度 | 淘宝 / 天猫(TOP) | 京东(JOS) |
|---|---|---|
| 开放平台 | open.taobao.com | jos.jd.com |
| 多站点标识 | seller_id/shop_id |
shop_id/pin |
| 授权凭证 | SessionKey(7 天) | Access Token(30 天) |
| 签名算法 | MD5(首尾加 AppSecret) | MD5(末尾加 AppSecret) |
| 接口域名 | eco.taobao.com | api.jd.com |
| 权限审核 | 1-3 天 | 1-5 天 |
| 敏感数据 | 需聚石塔调用 | 需企业认证 + 店铺授权 |
五、多站点接入核心难点与解决方案
- Token/SessionKey 管理
- 问题:多站点凭证有效期不同,手动维护繁琐。
- 方案:搭建自动刷新服务,定时检测凭证状态,失效自动重新授权 / 刷新。
- 限流与并发
- 问题:各平台单店铺限流(淘宝≈50 次 / 分钟,京东≈80 次 / 分钟)。
- 方案:分布式请求队列,按店铺分配配额,异步调用,避免超限制。
- 数据标准化
- 问题:三平台字段命名 / 格式差异大(如淘宝
num_iid、京东sku_id)。 - 方案:构建统一数据模型,映射各平台字段,输出标准化数据。
- 问题:三平台字段命名 / 格式差异大(如淘宝
- 多站点切换效率
- 方案:用配置中心 管理所有店铺的
AppKey、Token、shop_id,一键切换站点。
- 方案:用配置中心 管理所有店铺的
六、合规与注意事项
- 数据使用:仅用于授权店铺的业务场景,禁止二次分发、竞品恶意监控。
- 隐私合规:用户数据脱敏,遵守《个人信息保护法》、平台规则。
- 接口版本:定期更新 SDK,适配平台接口迭代(如淘宝 TOP v2.0、京东 JOS v2.0)。
- 环境区分 :先用沙箱环境调试,再上线生产环境。