京东商品详情API接口开发指南(含Java/Python实现)

简介: 京东开放平台商品详情查询接口,支持单/批量SKU查询(最多20个),返回含标题、价格、图片、促销等结构化JSON数据;具备签名验签、HTTPS加密、高并发安全机制。需先申请API权限并配置密钥。(239字)

接口概述

京东开放平台为开发者提供了强大的商品详情查询接口,借助该接口,开发者仅需通过SKUID,即可轻松获取商品的全面详细信息,涵盖商品标题、精准价格、高清图片以及丰富的促销信息等。在当前电商市场竞争激烈,数据精准获取与快速响应至关重要的背景下,此接口为开发者提供了高效便捷的数据获取途径。不过,使用该接口前,开发者需要申请API权限并获取认证密钥。

接口特点

批量查询支持:支持批量查询商品信息,一次最多可查询20个SKU,大大提高了数据获取效率,尤其适用于需要大量商品数据对比分析的场景。据市场调研,使用批量查询功能可使数据获取时间缩短70%。

数据格式规范:返回标准的JSON格式数据,便于开发者进行解析和处理,与主流编程语言的数据处理方式高度兼容,降低了开发成本。

安全验证机制:采用签名验证方式,确保数据传输的安全性和完整性,有效防止数据篡改和恶意攻击,保障了开发者和平台的利益。

协议安全可靠:全面支持HTTPS协议,为数据传输提供了加密通道,在当今网络环境日益复杂的形势下,为数据安全保驾护航。

Java实现示例

import com.alibaba.fastjson.JSON;

import com.alibaba.fastjson.JSONObject;

import org.apache.commons.codec.digest.DigestUtils;

import java.io.BufferedReader;

import java.io.InputStreamReader;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

import java.util.TreeMap;

public class JdProductApi {

private static final String API_URL = "https://api.jd.com/routerjson";

private static final String VERSION = "1.0";

public static String queryProductDetail(long skuId, String appKey, String appSecret) {

try {

// 精心构造请求参数

Map params = new TreeMap<>();

params.put("method", "jd.union.open.goods.detail.query");

params.put("app_key", appKey);

params.put("timestamp", System.currentTimeMillis());

params.put("v", VERSION);

params.put("format", "json");

// 构建商品请求参数

JSONObject goodsReq = new JSONObject();

goodsReq.put("skuIds", new long[]{skuId});

params.put("goodsReq", goodsReq);

// 严格生成签名

String sign = generateSign(params, appSecret);

params.put("sign", sign);

// 准确发送请求

URL url = new URL(API_URL);

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

conn.setRequestMethod("POST");

conn.setDoOutput(true);

conn.getOutputStream().write(JSON.toJSONString(params).getBytes());

// 高效处理响应

BufferedReader reader = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

StringBuilder response = new StringBuilder();

String line;

while ((line = reader.readLine()) != null) {

response.append(line);

}

return response.toString();

} catch (Exception e) {

e.printStackTrace();

return null;

}

}

private static String generateSign(Map params, String appSecret) {

StringBuilder sb = new StringBuilder(appSecret);

for (Map.Entry entry : params.entrySet()) {

sb.append(entry.getKey()).append(entry.getValue());

}

sb.append(appSecret);

return DigestUtils.md5Hex(sb.toString()).toUpperCase();

}

}

Python实现示例

import hashlib

import time

import json

import requests

class JdProductApi:

API_URL = "https://api.jd.com/routerjson"

VERSION = "1.0"

@staticmethod

def query_product_detail(sku_id, app_key, app_secret):

params = {

"method": "jd.union.open.goods.detail.query",

"app_key": app_key,

"timestamp": int(time.time() * 1000),

"v": JdProductApi.VERSION,

"format": "json",

"goodsReq": {"skuIds": [sku_id]}

}

严谨生成签名

sign = JdProductApi.generate_sign(params, app_secret)

params["sign"] = sign

可靠发送请求

response = requests.post(

JdProductApi.API_URL,

json=params,

headers={"Content-Type": "application/json"}

)

return response.json()

@staticmethod

def generate_sign(params, app_secret):

param_str = app_secret

for key in sorted(params.keys()):

param_str += f"{key}{params[key]}"

param_str += app_secret

return hashlib.md5(param_str.encode()).hexdigest().upper()

接口返回示例

{

"code": 0,

"message": "success",

"data": {

"skuId": 1234567,

"skuName": "示例商品名称",

"price": 299.00,

"imageList": ["http://img1.jpg", "http://img2.jpg"],

"brandName": "示例品牌",

"category": "电子产品",

"shopId": 10001,

"shopName": "官方旗舰店",

"promotionList": [

{

"promotionId": 1,

"promotionName": "满299减30",

"startTime": "2025-05-01 00:00:00",

"endTime": "2025-05-31 23:59:59"

}

]

}

}

开发注意事项

权限申请先行:在使用接口前,务必先在京东开放平台申请API权限,这是使用接口的前提条件,否则无法正常调用接口获取数据。

频率限制牢记:每个应用都有调用频率限制,通常为100次/秒。开发者需要合理规划调用策略,避免因频繁调用触发限制,导致数据获取中断。

签名算法精准:签名算法必须严格按照文档要求实现,任何细微的偏差都可能导致签名验证失败,从而无法获取数据。

协议选择恰当:建议使用HTTPS协议进行数据传输,以保证传输过程的安全性,防止数据泄露和篡改。

异常处理全面:要充分考虑并处理可能出现的异常情况,如网络超时、参数错误等,确保程序的稳定性和可靠性。

以上代码提供了Java和Python两种语言的实现示例,开发者可以根据自己的技术栈选择合适的版本。实际使用时,需要将appKey和appSecret替换为实际获取的值,并添加适当的错误处理逻辑,以应对各种可能出现的异常情况。

欢迎各位大佬评论互动,小编必回

相关文章
|
1月前
|
人工智能 自然语言处理 安全
阿里云通义千问大模型详解:Qwen3.7系列核心能力、应用价值与订阅全解
2026年,AI大模型从“对话娱乐”全面迈入“产业落地”阶段,**阿里云千问(Qwen)作为国产自研旗舰大模型**,是通义实验室打造的超大规模语言与多模态模型体系,也是阿里云AI生态的核心引擎。从早期通义千问到2026年5月发布的**Qwen3.7系列**,千问已形成“旗舰+均衡+轻量+多模态”的完整矩阵,覆盖文本、代码、视觉、语音、视频全场景,兼顾个人免费体验与企业级安全合规需求。本文从核心定义、模型能力矩阵、差异化优势、全场景应用、订阅计费规则五大维度,系统拆解2026年千问大模型的完整体系。
3169 3
|
1月前
|
SQL 人工智能 文字识别
阿里开源的 AI 代码审查工具 open-code-review 来了
阿里巴巴开源Open Code Review(OCR),融合确定性工程与LLM Agent,已服务数万开发者、发现百万级缺陷。内置NPE、SQL注入等安全规则,支持CLI、Agent集成及多平台部署,让AI代码审查更精准、稳定、可落地。(239字)
1941 1
|
2月前
|
运维 Java 开发者
[015][web模块]基于Spring Boot的HTTP客户端日志与默认配置实战
本文详解基于Spring Boot的HTTP客户端统一配置方案,支持RestTemplate、RestClient与WebClient三种客户端,实现无侵入的日志记录(请求/响应头、状态码)、默认请求头注入(如X-Request-Id)、非2xx异常自动转换及链路追踪支持,全部通过Customizer与Filter机制自动装配,开箱即用,提升微服务调用可观测性与开发效率。(239字)
247 5
[015][web模块]基于Spring Boot的HTTP客户端日志与默认配置实战
|
1月前
|
数据采集 人工智能 运维
从报警风暴到主动免疫:吉利汽车智能运维落地实践
分享我们和阿里云 STAROps 一起,共建高质量智能运维的三步路径。
|
1月前
|
人工智能 安全 前端开发
10|Agent Harness 的未来:从代码助手到工程协作系统
AI编程正迈入第三阶段——Agent Harness:AI不再仅补全代码或回答问题,而是深度融入研发全流程——读仓库、改文件、跑测试、连工具、协作者。未来核心在于“可治理的工程协作”,而非单纯自动化。(239字)
188 8
|
前端开发 NoSQL Java
【AgentScope Java新手村系列】(2)第一个Agent-基础对话
第一个Agent-基础对话 — 演示 HarnessAgent 的 Builder 模式创建、ReAct 推理循环、流式事件与思考模式三个核心能力。
414 2
|
1月前
|
消息中间件 人工智能 运维
Agentic AICon【智能体基础设施与 AgentOps 专场】精彩回顾 & PPT 下载
Agentic AICon【智能体基础设施与 AgentOps 专场】精彩回顾 & PPT 下载。
|
14天前
|
前端开发 安全 JavaScript
Harness Engineering 实践案例:如何Agent 写一份行为规范
本文展示Harness Engineering落地实践:通过`AGENTS.md`(行为总纲)、`ARCHITECTURE.md`(系统骨架)等结构化文档,为编码Agent建立可追溯、可审计、防幻觉的工作规范,实现RAG+微调系统的可控开发。
162 4
Harness Engineering 实践案例:如何Agent 写一份行为规范
|
1月前
|
人工智能 运维 自然语言处理
深度了解千问Qwen3.7-Max 阿里云百炼旗舰模型能力特点与计费订阅方案参考
在国内大模型产业高速发展的当下,通用大模型逐步从基础对话服务,走向复杂推理、工程编码、长文本处理、多领域专业分析等高阶应用场景。阿里云百炼作为国内主流大模型服务平台,持续迭代通义千问系列模型,**Qwen3.7-Max** 作为当前定位旗舰级的主力版本,凭借顶尖的综合能力、全面的场景适配、稳定的服务表现,成为企业研发、个人开发者、内容创作、智能体搭建等场景的首选模型之一。
1011 5
|
1月前
|
人工智能 自然语言处理 监控
告别复杂接入流程:用 AI Agent Skill 驱动云监控可观测接入
对云原生与AI应用带来的接入复杂性,阿里云可观测团队将接入接口CLI化,并提供开箱即用的Skill,支持主流的APM和AI应用高效接入,用户仅需自然语言描述即可完成自动化接入,显著降低运维门槛。
274 22