全部
常见问题
产品动态
精选推荐

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

管理 管理 编辑 删除

接口概述

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

dd56d202507150946014082.png
点击获取key和secret

接口特点

  • 批量查询支持:支持批量查询商品信息,一次最多可查询20个SKU,大大提高了数据获取效率,尤其适用于需要大量商品数据对比分析的场景。据市场调研,使用批量查询功能可使数据获取时间缩短70%。
  • 数据格式规范:返回标准的JSON格式数据,便于开发者进行解析和处理,与主流编程语言的数据处理方式高度兼容,降低了开发成本。
  • 安全验证机制:采用签名验证方式,确保数据传输的安全性和完整性,有效防止数据篡改和恶意攻击,保障了开发者和平台的利益。
  • 协议安全可靠:全面支持HTTPS协议,为数据传输提供了加密通道,在当今网络环境日益复杂的形势下,为数据安全保驾护航。

Java实现示例

javaimport 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<String, Object> 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<String, Object> params, String appSecret) {        StringBuilder sb = new StringBuilder(appSecret);        for (Map.Entry<String, Object> entry : params.entrySet()) {            sb.append(entry.getKey()).append(entry.getValue());        }        sb.append(appSecret);        return DigestUtils.md5Hex(sb.toString()).toUpperCase();    }}

Python实现示例

pythonimport hashlibimport timeimport jsonimport 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()

接口返回示例

json{     "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替换为实际获取的值,并添加适当的错误处理逻辑,以应对各种可能出现的异常情况。


请登录后查看

跨境电商api+代购系统 最后编辑于2025-07-15 09:46:52

快捷回复
回复
回复
回复({{post_count}}) {{!is_user ? '我的回复' :'全部回复'}}
排序 默认正序 回复倒序 点赞倒序

{{item.user_info.nickname ? item.user_info.nickname : item.user_name}} LV.{{ item.user_info.bbs_level || item.bbs_level }}

作者 管理员 企业

{{item.floor}}# 同步到gitee 已同步到gitee {{item.is_suggest == 1? '取消推荐': '推荐'}}
{{item.is_suggest == 1? '取消推荐': '推荐'}}
沙发 板凳 地板 {{item.floor}}#
{{item.user_info.title || '暂无简介'}}
附件

{{itemf.name}}

{{item.created_at}}  {{item.ip_address}}
打赏
已打赏¥{{item.reward_price}}
{{item.like_count}}
{{item.showReply ? '取消回复' : '回复'}}
删除
回复
回复

{{itemc.user_info.nickname}}

{{itemc.user_name}}

回复 {{itemc.comment_user_info.nickname}}

附件

{{itemf.name}}

{{itemc.created_at}}
打赏
已打赏¥{{itemc.reward_price}}
{{itemc.like_count}}
{{itemc.showReply ? '取消回复' : '回复'}}
删除
回复
回复
查看更多
打赏
已打赏¥{{reward_price}}
97
{{like_count}}
{{collect_count}}
添加回复 ({{post_count}})

相关推荐

快速安全登录

使用微信扫码登录
{{item.label}} 加精
{{item.label}} {{item.label}} 板块推荐 常见问题 产品动态 精选推荐 首页头条 首页动态 首页推荐
取 消 确 定
回复
回复
问题:
问题自动获取的帖子内容,不准确时需要手动修改. [获取答案]
答案:
提交
bug 需求 取 消 确 定
打赏金额
当前余额:¥{{rewardUserInfo.reward_price}}
{{item.price}}元
请输入 0.1-{{reward_max_price}} 范围内的数值
打赏成功
¥{{price}}
完成 确认打赏

微信登录/注册

切换手机号登录

{{ bind_phone ? '绑定手机' : '手机登录'}}

{{codeText}}
切换微信登录/注册
暂不绑定
CRMEB客服

CRMEB咨询热线 咨询热线

400-8888-794

微信扫码咨询

CRMEB开源商城下载 源码下载 CRMEB帮助文档 帮助文档
返回顶部 返回顶部
CRMEB客服