京东店铺所有商品API接口指南讲解

一、接入准备

  1. 注册与认证
    • 登录京东开放平台,完成企业/个人账号注册及实名认证(企业需上传营业执照,个人需身份证+人脸识别)。
    • 创建应用:进入"控制台-应用管理",填写应用名称、类型(如电商工具/数据分析)及描述,审核通过后获取AppKey (应用标识)和AppSecret(加密密钥)。
  2. 权限申请
    • 在"API权限管理"中申请商品相关接口权限,如:
      • 商品详情jd.item.get(通过SKU ID获取商品信息)
      • 店铺商品列表jd.union.open.shop.goods.get(分页获取店铺内所有商品)
      • 商品搜索jd.item.search(关键词/分类搜索)
      • 评价数据jd.union.open.comment.query(需额外申请)
    • 部分接口需京东审核(1-3个工作日),审核通过后生效。
二、接口调用核心流程
  1. 构造请求参数

    • 必填公共参数:app_key(应用标识)、method(接口名称)、timestamp(时间戳,与服务器时间差≤5分钟)、v(接口版本,如2.0)、sign(签名)。
    • 业务参数示例:
      • 商品详情:sku_id(商品SKU ID)、fields(返回字段,如title,price,stock
      • 店铺商品列表:seller_nick(店铺名称)、page(页码)、pageSize(每页数量)
  2. 生成签名(关键安全步骤)

    • 算法:采用HMAC-SHA256MD5 ,步骤如下:
      1. 参数按ASCII码排序后拼接成字符串(排除sign参数)。

      2. 首尾添加AppSecret,形成待加密字符串。

      3. 使用hashlib库进行加密(Python示例):

        复制代码

        python

        复制代码
        `import hmac
        import hashlib
        import urllib.parse
        
        def generate_sign(params, app_secret):
            sorted_params = sorted([(k, v) for k, v in params.items() if k != "sign"])
            sign_str = "&".join(f"{k}={urllib.parse.quote_plus(str(v))}" for k, v in sorted_params)
            signature = hmac.new(
                app_secret.encode("utf-8"),
                sign_str.encode("utf-8"),
                hashlib.sha256
            ).hexdigest().upper()
            return signature`
  3. 发送请求与处理响应

    • 请求方式:支持POST/GET,推荐POST保障安全。

    • 示例代码(获取店铺商品列表):

      复制代码

      python

      复制代码
      `import requests
      import os
      
      app_key = os.getenv("JD_APP_KEY")
      app_secret = os.getenv("JD_APP_SECRET")
      access_token = os.getenv("JD_ACCESS_TOKEN")  # 通过OAuth2.0获取
      
      params = {
          "app_key": app_key,
          "method": "jd.union.open.shop.goods.get",
          "seller_nick": "特步平途专卖店",
          "page": 1,
          "pageSize": 20,
          "timestamp": "2025-12-10 12:00:00",
          "v": "2.0"
      }
      params["sign"] = generate_sign(params, app_secret)
      
      response = requests.post("https://api.jd.com/routerjson", data=params)
      if response.status_code == 200:
          data = response.json()
          if data.get("code") == "0":
              for item in data["result"]["goods_list"]:
                  print(f"商品ID: {item['sku_id']}, 名称: {item['title']}, 价格: {item['price']}")`
三、关键接口说明
接口名称 功能描述 请求参数示例
jd.item.get 获取单商品详情 sku_id=123456, fields=title,price
jd.union.open.shop.goods.get 获取店铺所有商品(分页) seller_nick=店铺名称, page=1, pageSize=50
jd.item.search 商品关键词搜索 keyword=手机, sortType=1(价格升序)
四、注意事项
  • 频率限制 :单接口每分钟≤5次,超频将返回错误码1002,需设置重试机制(如指数退避)。
  • 数据时效性:商品信息实时更新,建议缓存或定时同步。
  • 安全规范AppSecret需存储在服务器端,禁止硬编码;AccessToken有效期30天,需定期刷新。
  • 错误处理 :常见错误码如1001(签名错误)、1004(AppKey无效),需结合日志排查。
五、应用场景
  • 商品监控:实时抓取价格、库存,构建竞品分析系统。
  • 订单管理:结合订单API实现自动下单与物流跟踪。
  • 营销活动:获取促销信息,嵌入自有平台提升用户转化。

通过以上步骤,可合规调用京东API获取店铺商品数据,支撑电商运营、数据分析等场景需求。建议定期关注京东开放平台文档更新,确保代码兼容性。

相关推荐
m0_5613596721 小时前
使用Python处理计算机图形学(PIL/Pillow)
jvm·数据库·python
山岚的运维笔记21 小时前
SQL Server笔记 -- 第14章:CASE语句
数据库·笔记·sql·microsoft·sqlserver
傻啦嘿哟21 小时前
Python操作PDF页面详解:删除指定页的完整方案
开发语言·python·pdf
Data_Journal21 小时前
如何使用 Python 解析 JSON 数据
大数据·开发语言·前端·数据库·人工智能·php
德育处主任Pro21 小时前
纯前端网格路径规划:PathFinding.js的使用方法
开发语言·前端·javascript
ASS-ASH21 小时前
AI时代之向量数据库概览
数据库·人工智能·python·llm·embedding·向量数据库·vlm
墨笔.丹青21 小时前
基于QtQuick开发界面设计出简易的HarmonyUI界面----下
开发语言·前端·javascript
代码无bug抓狂人21 小时前
C语言之表达式括号匹配
c语言·开发语言·算法
带刺的坐椅21 小时前
用 10 行 Java8 代码,开发一个自己的 ClaudeCodeCLI?你信吗?
java·ai·llm·agent·solon·mcp·claudecode·skills
Nebula_g1 天前
线程进阶: 无人机自动防空平台开发教程(更新)
java·开发语言·数据结构·学习·算法·无人机