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

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

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

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

  1. 账号与资质 :注册开放平台账号,完成企业实名认证(个人账号权限 / 额度极低,不适合商用)。
  2. 应用创建 :创建应用(服务型 / 网站型),填写HTTPS 备案回调地址 ,获取AppKey、AppSecret。
  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切换站点。
  • 核心凭证: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 标准)
  1. 所有参数(公共 + 业务)按ASCII 升序排序。
  2. 拼接为key1=value1&key2=value2...(值需 URL 编码)。
  3. 首尾拼接AppSecret → AppSecret+拼接串+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 订单详情 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,多站点)
  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 Token与shop_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_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 天
敏感数据 需聚石塔调用 需企业认证 + 店铺授权

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

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

六、合规与注意事项

  1. 数据使用:仅用于授权店铺的业务场景,禁止二次分发、竞品恶意监控。
  2. 隐私合规:用户数据脱敏,遵守《个人信息保护法》、平台规则。
  3. 接口版本:定期更新 SDK,适配平台接口迭代(如淘宝 TOP v2.0、京东 JOS v2.0)。
  4. 环境区分 :先用沙箱环境调试,再上线生产环境。
相关推荐
闲云lazycloud3 小时前
第 1 课:Harness 与 Agent 运行时
人工智能·后端
智驭未来掌门人3 小时前
AI+行业赋能,到底什么才算落地?——一个差旅差标项目的深度自省
人工智能
马优晨3 小时前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
是真的小外套4 小时前
第9章:网络层安全协议 IPSec 学习笔记
网络·网络协议·tcp/ip
不会是要长脑子了吧4 小时前
ChatGPT 网页端报 “Model not found“
人工智能·chatgpt
史努比的蓝色皮肤4 小时前
从 ChatGPT 到 Agent :AI 发展脉络
人工智能·chatgpt
kyriewen4 小时前
我扒了 npm 三年数据:AI 没把依赖变胖,是把包变多了
前端·人工智能·程序员
面包狗AI4S4 小时前
ChatGPT/Codex Windows:本地桌面端应用离线包安装与免安装启动方法(无需管理员权限)
人工智能·windows·ai·chatgpt
龙粤GEO4 小时前
RAG检索机制如何影响AI引用?一次SaaS品牌GEO优化实战复盘
人工智能
编码小哥4 小时前
YOLO26深度解析:为边缘计算而生的新一代实时视觉模型
人工智能·边缘计算