主流跨境平台多站点 API 接入流程:淘宝天猫京东API接口

淘宝 / 天猫 / 京东多站点 API 接入全流程(含多站点标识、签名、代码示例)

淘宝、天猫共用淘宝开放平台(TOP) ,京东使用京东宙斯开放平台(JOS) 。多站点接入核心是统一应用 + 分站点标识 / 授权,以下为完整接入流程、核心规则与实战代码。

一、通用接入前提(三平台一致)

  1. 账号与资质 :注册开放平台账号,完成企业实名认证(个人账号权限 / 额度极低,不适合商用)。
  2. 应用创建 :创建应用(服务型 / 网站型),填写HTTPS 备案回调地址 ,获取AppKeyAppSecret
  3. 权限申请:按业务场景申请接口权限(如商品、订单、库存),提交用途说明,审核 1-5 个工作日。
  4. 授权机制
    • 淘宝 / 天猫:SessionKey(授权码),卖家授权后获取,有效期 7 天。
    • 京东:Access Token(OAuth2.0),有效期 30 天,需自动刷新。
  5. 多站点核心
    • 淘宝 / 天猫:通过seller_id/shop_id区分不同店铺(站点)。
    • 京东:通过shop_id/pin区分不同店铺 / 站点。

二、淘宝 / 天猫 API 接入(TOP 平台,多站点统一入口)

1. 平台入口与准备

  • 开放平台:
  • 多站点逻辑:一个应用可授权多个淘宝 / 天猫店铺 ,通过seller_id/shop_id切换站点。
  • 核心凭证:AppKeyAppSecretSessionKey(店铺授权后)。

2. 接入流程(5 步)

(1)注册与创建应用
  • 登录开放平台 → 进入应用管理 → 创建服务型应用 → 填写名称、描述、HTTPS 回调地址(ICP 备案)。
  • 审核通过后,在应用详情页获取AppKeyAppSecret
(2)申请接口权限
  • 进入接口管理 → 搜索目标接口(如taobao.item.gettmall.item.gettaobao.trade.get)。
  • 提交业务场景说明(如 "多店铺商品监控""订单同步"),等待审核(1-3 天)。
(3)店铺授权(多站点关键)
  • 构造授权 URL: plaintext

    复制代码
    https://oauth.taobao.com/authorize?response_type=code&client_id=你的AppKey&redirect_uri=你的回调地址&state=自定义参数
  • 引导卖家扫码 / 登录授权 → 回调地址获取code → 用code换取SessionKey

  • 多店铺:重复授权,保存每个店铺的SessionKeyseller_id

(4)签名机制(MD5,TOP 标准)
  1. 所有参数(公共 + 业务)按ASCII 升序排序。
  2. 拼接为key1=value1&key2=value2...(值需 URL 编码)。
  3. 首尾拼接AppSecretAppSecret+拼接串+AppSecret
  4. 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 订单详情 sessionseller_id
taobao.inventory.query 库存查询 sessionseller_id

三、京东 API 接入(宙斯 JOS 平台,多站点分授权)

1. 平台入口与准备

  • 开放平台
  • 多站点逻辑:一个应用可授权多个京东店铺 ,通过shop_id/pin切换站点。
  • 核心凭证:AppKeyAppSecretAccess Token(OAuth2.0)。

2. 接入流程(5 步)

(1)注册与创建应用
  • 登录宙斯平台 → 进入管理中心 → 应用管理 → 创建应用 → 选择电商工具 / B2B 应用 → 填写信息、回调地址。
  • 审核通过后获取AppKeyAppSecret
(2)申请接口权限
  • 进入API 权限管理 → 添加权限(如jd.item.getjingdong.pop.order.search)。
  • 提交用途说明 + 系统截图,审核 1-5 天。
(3)店铺授权(OAuth2.0,多站点)
  1. 构造授权 URL: plaintext

    复制代码
    https://oauth.jd.com/oauth/authorize?response_type=code&client_id=你的AppKey&redirect_uri=你的回调地址&scope=seller_order_get,item_read
  2. 卖家授权 → 回调获取code → 用code换取Access Token(有效期 30 天)。

  3. 多店铺:保存每个店铺的Access Tokenshop_id

(4)签名机制(MD5,JOS 标准)
  1. 参数按字典序 排序 → 拼接key1=value1&key2=value2...
  2. 末尾追加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_tokenshop_id
jingdong.ware.stock.get 库存查询 access_tokenshop_id
jingdong.pop.order.get 订单详情 access_tokenshop_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 天
敏感数据 需聚石塔调用 需企业认证 + 店铺授权

五、多站点接入核心难点与解决方案

  1. Token/SessionKey 管理
    • 问题:多站点凭证有效期不同,手动维护繁琐。
    • 方案:搭建自动刷新服务,定时检测凭证状态,失效自动重新授权 / 刷新。
  2. 限流与并发
    • 问题:各平台单店铺限流(淘宝≈50 次 / 分钟,京东≈80 次 / 分钟)。
    • 方案:分布式请求队列,按店铺分配配额,异步调用,避免超限制。
  3. 数据标准化
    • 问题:三平台字段命名 / 格式差异大(如淘宝num_iid、京东sku_id)。
    • 方案:构建统一数据模型,映射各平台字段,输出标准化数据。
  4. 多站点切换效率
    • 方案:用配置中心 管理所有店铺的AppKeyTokenshop_id,一键切换站点。

六、合规与注意事项

  1. 数据使用:仅用于授权店铺的业务场景,禁止二次分发、竞品恶意监控。
  2. 隐私合规:用户数据脱敏,遵守《个人信息保护法》、平台规则。
  3. 接口版本:定期更新 SDK,适配平台接口迭代(如淘宝 TOP v2.0、京东 JOS v2.0)。
  4. 环境区分 :先用沙箱环境调试,再上线生产环境。
相关推荐
2301_814590252 分钟前
Python深度学习入门:TensorFlow 2.0/Keras实战
jvm·数据库·python
独断万古他化7 分钟前
【Java 实战项目】多用户网页版聊天室:消息传输模块 —— 基于 WebSocket 实现实时通信
java·spring boot·后端·websocket·ajax·mybatis
VALENIAN瓦伦尼安教学设备12 分钟前
设备对中不良的危害
数据库·嵌入式硬件·算法
wx_xkq128813 分钟前
营销智脑V3重磅迭代:从工具到平台,AI营销进入“全能时代“
人工智能
yyt36304584114 分钟前
spring单例bean线程安全问题讨论
java·spring
阿钱真强道14 分钟前
02 从 MLP 到 LeNet:数据、标签和任务:机器学习到底在解决什么问题?
人工智能·深度学习·机器学习·cnn·分类算法·lenet
天蓝色的鱼鱼16 分钟前
别慌!AI时代,记住这12个新名词,你就赢了一半的人
人工智能
秋923 分钟前
《世界的本质》的深度分析与解读,给出了如何“顺天应人”以实现个人价值最大化的行动指南
人工智能
小兔崽子去哪了24 分钟前
Docker 安装 PostgreSQL
数据库·后端·postgresql
野犬寒鸦28 分钟前
Redis热点key问题解析与实战解决方案(附大厂实际方案讲解)
服务器·数据库·redis·后端·缓存·bootstrap