首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >京东商品详情接口技术速览:从签名到JSON解析

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

原创
作者头像
Anzexi58
发布于 2026-10-12 16:45:36
发布于 2026-10-12 16:45:36
110
举报
文章被收录于专栏:API接口开发API接口开发

一、主题定位

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

二、请求构造的三步

第 1 步:组装公共参数

代码语言:javascript
复制
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:

代码语言:javascript
复制
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

代码语言:javascript
复制
{
  "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
        }
      }
    }
  }
}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 二、请求构造的三步
  • 三、标准 JSON 返回参考
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档