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

相关推荐
老邓计算机毕设1 天前
SSM学生选课系统xvbna(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·学生选课系统·ssm 框架·高校教学管理
带刺的坐椅1 天前
Solon AI Skills 会是 Agent 的未来吗?
java·agent·langchain4j·solon-ai
jacGJ1 天前
记录学习--文件读写
java·前端·学习
哈哈不让取名字1 天前
基于C++的爬虫框架
开发语言·c++·算法
花间相见1 天前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su1 天前
Java---Properties 类
java·开发语言
枷锁—sha1 天前
【PortSwigger Academy】SQL 注入绕过登录 (Login Bypass)
数据库·sql·学习·安全·网络安全
cypking1 天前
四、CRUD操作指南
java
2301_780669861 天前
文件字节流输出、文件复制、关闭流的方法
java
一条咸鱼_SaltyFish1 天前
远程鉴权中心设计:HTTP 与 gRPC 的技术决策与实践
开发语言·网络·网络协议·程序人生·http·开源软件·个人开发