京东店铺所有商品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获取店铺商品数据,支撑电商运营、数据分析等场景需求。建议定期关注京东开放平台文档更新,确保代码兼容性。

相关推荐
ShineWinsu8 分钟前
对于TRAE中配置Qt的解析
开发语言·c++·ide·vscode·qt·ai·trae
谢亮_vipxieliang9 分钟前
手机号验证技术方案:号段规则与正则表达式
java·服务器·spring boot·正则表达式·hibernate
敲代码的小小酥19 分钟前
InfluxDB时序数据库(续)
数据库·时序数据库
wang090721 分钟前
自己动手写一个tomcat之7监听器和过滤器
java·tomcat
梅孔立21 分钟前
Pi-Agent 终极极简配置文档(Java+Vue+Python爬虫 4-5千文件项目)
java·vue.js·python
wy31362282126 分钟前
Git——ignore让项目的 target 目录真正被忽略(忽略其他文件也是同样的道理)
开发语言·git
格林威27 分钟前
C#图像分块处理:图像按行或按块(Tile)切分,多个 CPU 核心同时处理不同的区域
开发语言·图像处理·人工智能·机器学习·计算机视觉·c#·工业相机
leisoo809734 分钟前
财报舞弊预警系统实战用Python挖掘应收存货异常因子 IG50免费开源股票数据API接口
开发语言·python
Query*34 分钟前
Agent 开发之项目 AI Native 化:通过大模型与 RAG 赋予产品智能能力
java·人工智能·ai
孫治AllenSun34 分钟前
【LangChain4J-03】Springboot 项目搭建框架
java·spring boot·后端