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

相关推荐
IT 行者几秒前
Spring Framework 6.x 异常国际化完全指南:让错误信息“说“多国语言
java·后端·spring·异常处理·problemdetail·国际化i18n
ss273几秒前
CompletionService:Java并发工具包
java·开发语言·算法
萧曵 丶4 分钟前
MySQL B+树详解
数据库·b树·mysql
额呃呃5 分钟前
select和poll之间的性能对比
开发语言·算法
智航GIS5 分钟前
7.2 Try Except语句
开发语言·python
晓13135 分钟前
后端篇——第一章 Maven基础全面教程
java·maven
星轨初途6 分钟前
C++ string 类详解:概念、常用操作与实践(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
二进制_博客6 分钟前
JWT权限认证快速入门
java·开发语言·jwt
素素.陈7 分钟前
根据图片中的起始位置的特殊内容将图片进行分组
java·linux·windows
程序员佳佳13 分钟前
026年AI开发实战:从GPT-5.2到Gemini-3,如何构建下一代企业级Agent架构?
开发语言·python·gpt·重构·api·ai写作·agi