当前位置: 首页 > news >正文

获取JD商品详情数据 get_item

在电商开发圈摸爬滚打这些年,京东商品详情 API 的 “细节陷阱” 最让人防不胜防。作为国内自营电商的标杆,它的接口返回里藏着太多 “自营专属逻辑”—— 从嵌套三层的价格体系(秒杀 / PLUS / 区域价),到区分 “总库存” 与 “可售库存” 的库存规则,再到必须传对的 “SKU-ID 绑定” 要求,每次对接都像在拆解京东自营的 “供应链密码”。今天就把这些年踩过的雷、攒的可落地代码全抖出来,给做商家工具、比价系统的朋友避避雷。

一、初次翻车:签名漏传 “v=2.0”,调试到凌晨两点
第一次接京东商品详情 API 是帮比价平台做 “实时价抓取”,按文档写的签名函数连续 5 小时返回40001签名错误。翻遍京东开放平台文档才发现:京东商品详情接口必须显式传 “v=2.0” 版本号,且 timestamp 必须是 13 位毫秒级时间戳,我不仅漏了v参数,还习惯性用了 10 位秒级时间戳,导致加密结果和官方示例差了整整一串字符。

更坑的是,京东签名要求 “参数值必须 URL 编码,但保留-_.~特殊字符”,我误把~也编码成了%7E,结果签名验证直接失败。那天对着官方签名示例算到眼酸,终于磨出能跑通的签名函数,每个京东特有的要求都标红了:

python 运行 import hashlib import time import urllib.parse def generate_jd_detail_sign(params, app_secret): """ 生成京东商品详情API签名(必传v=2.0+毫秒级timestamp!) :param params: 请求参数(不含sign) :param app_secret: 应用密钥 """ # 1. 强制添加京东商品详情接口特有必传参数,缺一个签名必错 params["v"] = "2.0" # 固定2.0版本,漏传直接40001 params["format"] = "json" # 仅支持json,不支持xml params["timestamp"] = str(int(time.time() * 1000)) # 13位毫秒级时间戳,秒级必错 params["sign_method"] = "md5" # 京东商品详情接口固定MD5,不是SHA1 # 2. 过滤sign参数,按参数名ASCII升序排序(京东对顺序敏感,差一个字符都不行) sign_params = {k: v for k, v in params.items() if k != "sign" and v is not None} sorted_params = sorted(sign_params.items(), key=lambda x: x[0]) # 3. 拼接为key=value&key=value,值URL编码(保留-_.~,其他特殊字符转义) query_str = "&".join([ f"{k}={urllib.parse.quote(str(v), safe='-_.~')}" for k, v in sorted_params ]) # 4. 首尾加app_secret,MD5加密后转大写(京东固定首尾加密钥) sign_str = f"{app_secret}{query_str}{app_secret}" return hashlib.md5(sign_str.encode()).hexdigest().upper() # 示例调用(获取商品详情,必须传sku_id) params = { "app_key": "your_jd_app_key", "method": "jd.union.open.goods.detail.query", "sku_id": "1000283456789", # 京东商品详情只认sku_id,传product_id返回空 "fields": "sku_name,price,stock,specs,promotion_info" # 必须指定返回字段,否则默认只返sku_id } params["sign"] = generate_jd_detail_sign(params, "your_app_secret") AI写代码

数据示例;数据测试

http://www.cnnetsun.cn/news/80999.html

相关文章:

  • 颠覆传统:新一代Vue3文档编辑器的商业价值解析
  • Habitat-Sim轻松上手:告别安装烦恼的完整指南
  • AI在企业人力资源中的应用白皮书2.0
  • DuckDB实战手册:嵌入式OLAP数据库的极速数据处理
  • RomM游戏库管理器的API密钥配置与安全实践指南
  • 实战指南:用Actix Web打造高性能微服务架构
  • 应用瘦身引擎实现容器智能分发:3分钟完成镜像压缩与动态路由
  • FLUX.1 Kontext Dev完整教程:本地部署AI图像编辑的终极方案
  • Flutter 与开源鸿蒙(OpenHarmony)的融合:跨平台开发新纪元
  • 终极指南:如何搭建个人专属音乐流媒体服务器
  • 探索Pts物理引擎:从基础粒子到复杂碰撞的艺术之旅
  • Excel插件教程:《成绩统计排名》和《SchoolTools》
  • DSU加载器深度体验:零门槛玩转安卓多系统的秘密武器
  • 3个关键步骤快速获取Obsidian专业资源:从新手到专家的完整指南
  • 3步搞定复杂量子系统的纠缠度计算:R语言高效实现路径曝光
  • 5分钟上手智能桌面助手:字节跳动UI-TARS开源项目实战指南
  • Amaze File Manager云存储集成实战:打造个人云端文件管理中心
  • AI编码实践:从Vibe Coding到SDD
  • R实现量子噪声通道模拟(从基础到高阶参数调优全指南)
  • 26岁中国博士生涉嫌破坏同学电脑被捕,教授:装隐蔽摄像头拍到...
  • 信息流广告是什么?信息流广告具有哪些特点呢?
  • 华为祭出百万级奖励,这些鸿蒙应用路子对了
  • Qwen命令行工具完全指南:从入门到高效使用技巧
  • 照片太多怎么办?Immich智能照片管理终极指南:轻松搞定自动回忆生成
  • 5分钟快速获取同济大学第七版线性代数教材 [特殊字符]
  • 1、24 小时学会 GIMP:安装与使用指南
  • 3、掌握GIMP基础工具,开启创意图形之旅
  • 如何快速扩展gofakeit:开发者的完整实践指南
  • ICCV 2025 | 强噪声去模糊天花板!残差引导策略 (RGS) 革新核估计,四大数据集上的全面领先
  • MLX转换终极指南:在Apple芯片上实现一键部署的完整教程