京东开放平台获取京东商品详情API接口操作解答

在京东开放平台获取商品详情的API接口操作需遵循京东官方规范,以下为分步骤的详细解答及关键注意事项:


一、前期准备

  1. 注册开发者账号
    • 访问京东开放平台或万邦开放平台,完成企业或个人开发者注册。
    • 提交资质审核(企业需营业执照,个人需身份证)。
  2. 创建应用并获取密钥
    • 登录开发者后台,创建新应用,填写应用名称、描述等。
    • 审核通过后,获取App KeyApp Secret,用于后续接口调用。
  3. 申请API权限
    • 在应用管理页面,申请"商品详情查询"等相关权限。
    • 等待京东审核通过(通常1-3个工作日)。

二、API接口调用流程

1. 接口文档查阅
  • 官方文档地址:京东开放平台文档。
  • 核心接口:
    • 商品详情查询jd.union.open.goods.query(用于查询商品基本信息、佣金、价格等)。
    • SKU详情查询jd.union.open.goods.skuid.query(通过SKU ID获取详细规格)。
2. 请求参数准备
  • 公共参数
    • app_key:应用唯一标识。
    • method:接口名称(如jd.union.open.goods.query)。
    • timestamp:当前时间戳(毫秒级)。
    • sign:签名(需按规则生成)。
  • 业务参数
    • goodsReq:JSON格式,包含商品ID(materialId)、分类ID(cid1/cid2/cid3)等。
3. 签名生成规则
  • 步骤

    1. 将所有参数按字典序排序。
    2. 拼接为key1=value1&key2=value2...格式。
    3. 在末尾追加app_secret,进行MD5加密,转为大写。
  • 示例

    复制代码

    plaintext

    |---|--------------------------------------------------------------------|
    | | 参数排序后:app_key=xxx&method=xxx&timestamp=xxx |
    | | 拼接密钥:app_key=xxx&method=xxx&timestamp=xxx&app_secret=your_secret |
    | | MD5加密:生成32位大写签名 |

4. 发起请求
  • 请求方式POST(推荐)或GET

  • 请求URLhttps://router.jd.com/api

  • 请求头

    复制代码

    http

    |---|---------------------------------------------------|
    | | Content-Type: application/x-www-form-urlencoded |

  • 请求体

    复制代码

    plaintext

    |---|--------------------------------------------------------------------------------------------------------------------|
    | | app_key=xxx&method=jd.union.open.goods.query&timestamp=123456789&sign=SIGNATURE&goodsReq={"materialId":"123456"} |

5. 响应处理
  • 成功响应

    复制代码

    json

    |---|------------------------------|
    | | { |
    | | "code": "200", |
    | | "data": { |
    | | "goodsInfoList": [ |
    | | { |
    | | "materialId": "123456", |
    | | "goodsName": "商品名称", |
    | | "priceInfo": { |
    | | "price": "100.00", |
    | | "discountPrice": "80.00" |
    | | }, |
    | | "commissionInfo": { |
    | | "commissionShare": "10.00" |
    | | } |
    | | } |
    | | ] |
    | | } |
    | | } |

  • 错误响应

    复制代码

    json

    |---|---------------------|
    | | { |
    | | "code": "1001", |
    | | "message": "签名错误" |
    | | } |


三、关键注意事项

  1. 接口权限与频率限制
    • 确保已申请对应接口权限,未授权调用会返回403错误。
    • 频率限制:单应用每分钟最多调用100次(具体以文档为准)。
  2. 数据时效性
    • 商品价格、库存等信息可能实时变动,建议缓存数据并定期更新。
  3. 错误处理
    • 常见错误码:
      • 1001:签名错误(检查签名生成逻辑)。
      • 1002:参数缺失(核对必填参数)。
      • 1004:App Key无效(检查密钥是否正确)。
  4. 合规性要求
    • 不得将API数据用于非法用途(如爬虫、竞品分析)。
    • 遵守京东《开放平台服务协议》,违规可能导致封号。

四、代码示例(Python)

复制代码

python

|---|----------------------------------------------------------------------------|
| | import requests |
| | import hashlib |
| | import time |
| | import json |
| | |
| | def generate_sign(params, app_secret): |
| | sorted_params = sorted(params.items(), key=lambda x: x[0]) |
| | sign_str = "&".join([f"{k}={v}" for k, v in sorted_params]) + app_secret |
| | return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper() |
| | |
| | def get_goods_detail(app_key, app_secret, material_id): |
| | base_url = "https://router.jd.com/api" |
| | timestamp = int(time.time() * 1000) |
| | params = { |
| | "app_key": app_key, |
| | "method": "jd.union.open.goods.query", |
| | "timestamp": timestamp, |
| | "v": "1.0", |
| | "goodsReq": json.dumps({"materialId": material_id}) |
| | } |
| | params["sign"] = generate_sign(params, app_secret) |
| | |
| | response = requests.post(base_url, data=params) |
| | return response.json() |
| | |
| | # 示例调用 |
| | app_key = "your_app_key" |
| | app_secret = "your_app_secret" |
| | material_id = "123456" |
| | result = get_goods_detail(app_key, app_secret, material_id) |
| | print(result) |


五、替代方案

  • 京东联盟Web服务:通过京东联盟后台直接获取商品推广链接和基础信息(无需API)。
  • 第三方数据服务:如慢慢买、什么值得买等,提供商品数据接口(需付费)。

通过以上步骤,开发者可合规获取京东商品详情数据。如遇问题,可联系京东开放平台技术支持(邮箱:open@jd.com)。

相关推荐
南囝coding5 小时前
Claude Code 插件系统来了
前端·后端·程序员
濑户川5 小时前
基于DDGS实现图片搜索,文本搜索,新闻搜索
人工智能·爬虫·python
左灯右行的爱情5 小时前
ImportCandidates 类详细解析
java·spring boot
摇滚侠5 小时前
Spring Boot 3零基础教程,WEB 开发 默认的自动配置,笔记25
前端·spring boot·笔记
老K的Java兵器库5 小时前
Metaspace OOM 排查实录:一次 Spring 热部署爆掉 256 M 元空间
java·jvm·spring
Cherry Zack5 小时前
Vue Router 路由管理完全指南:从入门到精通前言
前端·javascript·vue.js
啦啦9117145 小时前
提供一些准备Java八股文面试的建议
java·开发语言·面试
深蓝电商API5 小时前
快速上手 Scrapy:5 分钟创建一个可扩展的爬虫项目
爬虫·python·scrapy
考虑考虑5 小时前
JDK25中的StableValue
java·后端·java ee
亮子AI6 小时前
【npm】npm install 产生软件包冲突怎么办?(详细步骤)
前端·npm·node.js