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

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

一、主题定位

本文只讲开发实现这一层:请求怎么构造、签名怎么算、返回的 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
        }
      }
    }
  }
}



相关文章

淘宝商品评论 API(taobao.item.reviews.get)完整介绍与标准 JSON 返回示例

一、接口基础说明1. 接口基础信息接口名称:taobao.item.reviews.get所属平台:淘宝开放平台 TOP(Taobao Open Platform)请求方式:HTTP POST/GET...

淘宝评论API的合规使用指南:避免封号与法律风险

淘宝评论 API 的合规使用核心是 “官方授权 + 数据闭环 + 频率管控 + 隐私保护”,必须严格遵守平台规则与法律法规,避免触碰 “未授权调用、数据滥用、反爬规避、隐私泄露” 四条红线,否则会面临...

如何确保Java调用淘宝商品详情API的效率和稳定性?

你希望了解在 Java 中调用淘宝商品详情 API(item_get)时,如何从技术层面保障调用的效率(高并发、低延迟)和稳定性(低失败率、容错能力),这是生产环境中使用 API 的核心诉求。一、核心...

转转二手商品详情采集(极简 Python 版)

转转二手商品详情采集(极简 Python 版)超简单代码,无需签名、无需抓包、无需 Token,复制就能跑。python运行import requests# 采集商品详情def&n...

淘宝商品详情API(taobao.item.get)调用的日常示例以及参数参考

我给你一套最实用、能直接复制跑通的淘宝商品详情 API(taobao.item.get)日常调用示例 + 完整参数参考,你开发时直接套用即可。一、接口基础信息接口名:taobao.item.get地址...

京东商品详情 API 介绍、业务场景与完整 JSON 返回参考

一、接口简介京东商品详情 API(联盟接口jd.union.open.goods.detail.query、商家接口jingdong.item.read.get),通过 SKU 编号查询商品完整信息,...

发表评论    

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