京东商品详情接口技术速览:从签名到JSON解析

知名用户180079054732小时前未分类3

一、主题定位

本文只讲开发实现这一层:请求怎么构造、签名怎么算、返回的 JSON 怎么解析。面向正在写对接代码的开发者,不铺开讲业务价值。

二、请求构造的三步

第 1 步:组装公共参数

params = {
    "app_key": "your_app_key",
    "method": "jd.union.open.goods.detail.query",
    "timestamp": "2026-10-12 16:30:00",   # 东八区,格式固定
    "format": "json",
    "v": "1.0",
    "sign_method": "md5",
    "skuId": "100012345678"               # 业务参数,核心入参
}

第 2 步:计算签名
京东的签名规则是只拼 value、不拼 key:

import hashlib

def make_sign(params, app_secret):
    # 1. 剔除 sign,按 key 的 ASCII 升序排序
    keys = sorted(k for k in params if k != "sign" and params[k] != "")
    # 2. 只拼接 value
    raw = "".join(str(params[k]) for k in keys)
    # 3. 首尾各拼一次 secret
    src = app_secret + raw + app_secret
    # 4. MD5 后转大写
    return hashlib.md5(src.encode("utf-8")).hexdigest().upper()

第 3 步:POST 到网关
https://api.jd.com/routerjson,Content-Type 用 application/x-www-form-urlencoded。

三个高频踩坑点:① 拼成 key=value(应为只拼 value);② 排序前没剔除空值参数;③ timestamp 格式不是 yyyy-MM-dd HH:mm:ss,超出 ±10 分钟窗口会被网关直接拒绝。

三、标准 JSON 返回参考

测试o0b.cn/anzexi

{
  "jd_union_open_goods_detail_query_response": {
    "code": "0",
    "msg": "success",
    "requestId": "req_20261012163012456",
    "result": {
      "goodsInfo": {
        "skuId": "100012345678",
        "spuId": "100012345600",
        "title": "2026夏季新款纯棉短袖T恤 男女同款宽松版",
        "brandName": "XX品牌",
        "shopName": "XX官方旗舰店",
        "isJdSelf": false,
        "itemUrl": "https://item.jd.com/100012345678.html",

        "priceInfo": {
          "originalPrice": "99.00",
          "discountPrice": "59.00",
          "lowestPrice30Days": "55.00"
        },

        "couponInfo": {
          "hasCoupon": true,
          "finalPrice": "49.00",
          "couponList": [
            {
              "couponId": "cp20261012001",
              "couponDiscount": "10.00",
              "couponDesc": "满59减10元店铺券",
              "endTime": "2026-10-31 23:59:59"
            }
          ]
        },

        "stockInfo": {
          "totalStock": 950,
          "isSale": true,
          "stockStatus": "in_stock"
        },

        "salesInfo": {
          "totalSales": 12580,
          "monthSales": 3210
        },

        "imageInfo": {
          "mainImg": "https://img10.360buyimg.com/n1/jfs/t1/xxx/main.jpg",
          "detailImgList": [
            "https://img10.360buyimg.com/n1/jfs/t1/xxx/d1.jpg",
            "https://img10.360buyimg.com/n1/jfs/t1/xxx/d2.jpg"
          ]
        },

        "skuList": [
          {
            "skuId": "10001234567801",
            "specText": "白色 M",
            "specs": [
              {"name": "颜色", "value": "白色"},
              {"name": "尺码", "value": "M"}
            ],
            "skuPrice": "59.00",
            "skuStock": 320,
            "isAvailable": true
          },
          {
            "skuId": "10001234567803",
            "specText": "红色 S",
            "skuPrice": "59.00",
            "skuStock": 0,
            "isAvailable": false
          }
        ],

        "productParams": [
          {"name": "面料", "value": "100%棉"},
          {"name": "版型", "value": "宽松型"}
        ],

        "commentSummary": {
          "goodRateShow": "97.2",
          "commentCount": 1860
        }
      }
    }
  }
}



相关文章

Python 调用淘宝商品详情 API:异常处理完整方案(生产级可用)

在实际调用淘宝 API 时,异常几乎一定会出现,比如:网络超时、签名错误、商品下架、限流、服务器异常等。如果不处理异常,程序会直接崩溃。我给你一套自带完整异常处理、可直接上线使用的代码,包含:网络异常...

Alibaba国际站商品详情API JSON数据返回解析指南

Alibaba国际站商品详情API JSON数据返回解析指南一、核心JSON数据结构基础结构示例:json{  "request_id": "...

其他一些常见的淘宝API接口是什么

除了之前提到的商品管理、库存更新、价格调整等接口外,天猫开放平台还提供了一系列其他重要的API接口,以下是一些常见的例子:商品搜索与推荐接口:关键词搜索商品接口:如taobao.item.search...

京东商品详情 API 完整解析 + 标准 JSON 返回示例

本文以京东联盟开放接口 jd.union.open.goods.detail.query 为例,完整说明接口结构、字段含义、业务用途,并提供可直接用于开发调试的标准 JSON 返回示例。一、接口基本信...

技术实战:微店商品详情API接口接入指南与JSON返回参考

前言在私域电商运营、多平台铺货、商品数据聚合的业务场景中,微店商品详情API是开发者和私域从业者最核心的结构化数据入口。它无需搭建复杂的页面爬虫体系,就能稳定获取全维度的微店商品信息,大幅降低私域电商...

技术实战:淘宝商品详情接口技术解析与标准JSON返回参考

前言淘宝开放平台(TOP, Taobao Open Platform)的商品详情接口(taobao.item.get)是电商ERP、选品工具、多平台同步系统最核心的基础接口之一。该接口能够实时获取淘宝...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。