京东开放平台获取京东商品详情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)。

相关推荐
namehu几秒前
Taro 小程序 Video 组件 referrer-policy="origin" 属性失效排查记
前端·taro
G探险者4 分钟前
《如何在 Spring 中实现 MQ 消息的自动重连:监听与发送双通道策略》
java·开发语言·rpc
卸任5 分钟前
性能优化大作战:React.memo 在可编辑列表中的奇效
前端·javascript·react.js
刘大猫2611 分钟前
Datax安装及基本使用
java·人工智能·算法
WildBlue13 分钟前
阮一峰闭包:JavaScript最优雅的"背包"魔法!✨
前端·javascript
LaoZhangAI16 分钟前
OpenAI API 账号分层完全指南:2025年最新Tier系统、速率限制与升级攻略
前端·后端
LeeAt16 分钟前
React Hooks 编程:useState和useEffect的详解
前端·react.js
Dream耀16 分钟前
React Hooks 指南:useState 与 useEffect 的用法与技巧
前端·javascript·react.js
zhanshuo19 分钟前
i18next + 原生JS 双引擎:打造前端多语言系统最佳实践
前端·javascript·css
小飞悟21 分钟前
React Hooks 编程:深入理解 useEffect 的执行机制与清理副作用
前端·javascript