实战代码解析:京东获得 JD 商品详情 API (item_get_pro) 返回值说明
一、接口概述
京东商品详情 API(item_get_pro)是京东开放平台提供的一个接口,用于获取商品的详细信息。通过此接口,开发者可以获取商品的基础信息、价格、库存、图片、视频、规格参数等数据。这些数据对于商品分析、市场研究、价格监控等场景非常有用。
二、实战代码解析
(一)注册与认证
-
注册开发者账号:访问京东开放平台,完成账号注册。
-
创建应用:在开发者后台创建应用,填写应用信息,提交审核。
-
获取API密钥:审核通过后,获得
AppKey和AppSecret,用于后续API调用的身份验证。
(二)接口调用准备
-
阅读API文档:在京东开放平台找到目标接口(如
jd.item.get),详细阅读接口文档,明确请求URL、方法、必填参数及返回格式。 -
生成签名:
-
将请求参数按字典序排序后拼接成字符串。
-
结合
AppSecret使用MD5或HMAC-SHA256算法生成签名,确保请求合法性。 -
示例代码(Python):
import hashlibdef generate_sign(params, app_secret):sorted_params = sorted(params.items())query_string = ''.join(f'{k}{v}' for k, v in sorted_params)sign = hashlib.md5((query_string + app_secret).encode()).hexdigest().upper()return sign
-
(三)发送请求与处理响应
-
发送HTTP请求:使用HTTP客户端(如Python的
requests库)发送请求,包含必要的请求头(如Authorization、Content-Type)和参数。 -
解析响应数据:处理返回的JSON数据,提取所需信息(如商品名称、价格、图片URL等)。
(四)PHP调用示例
以下是一个完整的PHP调用示例,展示如何获取京东商品详情:
<?php
// 以下是京东开放平台的 API 所需的必要信息,请根据实际情况替换
$appKey = "YOUR_APP_KEY";
$appSecret = "YOUR_APP_SECRET";
$skuId = "YOUR_SKU_ID"; // 你要查询的商品的 SKU 标识// API 的基本信息
$method = "jingdong.item.get";
$timestamp = date('Y-m-d H:i:s');
$format = "json";
$v = "2.0";// 构建请求参数
$paramJson = json_encode(["sku_id" => $skuId,// 你可以根据自己的需求添加更多的字段,以下是一些示例字段"fields" => "item_id,title,price,image_url,category,stock_state,description"
]);// 完整的请求参数数组
$requestParams = ["app_key" => $appKey,"method" => $method,"timestamp" => $timestamp,"format" => $format,"v" => $v,"param_json" => $paramJson
];// 对请求参数进行签名
ksort($requestParams); // 按照键名对参数进行升序排序
$signStr = $appSecret;
foreach ($requestParams as $key => $value) {$signStr .= $key . $value;
}
$signStr .= $appSecret;
$sign = strtoupper(md5($signStr)); // 生成签名,转换为大写
$requestParams['sign'] = $sign;// 构建完整的请求 URL
$url = "https://api.jd.com/routerjson";// 初始化 cURL 会话
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($requestParams));// 执行请求
$response = curl_exec($ch);// 检查是否有错误发生
if (curl_errno($ch)) {die("cURL 错误: " . curl_error($ch));
}// 关闭 cURL 会话
curl_close($ch);// 处理响应
$result = json_decode($response, true);
if ($result) {if (isset($result['error_response'])) {// 处理 API 返回的错误信息echo "API 错误: " . $result['error_response']['msg'] . PHP_EOL;} else {// 输出商品详情echo "商品详情: " . json_encode($result, JSON_PRETTY_PRINT) . PHP_EOL;}
} else {echo "无法解析 API 响应。" . PHP_EOL;
}
?>
三、返回值说明
以下是item_get_pro接口返回值的核心字段解析:
(一)基础信息
-
skuId:商品唯一标识符,用于精准定位商品变体(如不同颜色、尺寸)。 -
title:商品名称,通常包含品牌、型号、核心卖点。 -
price:当前售价。 -
promotionPrice:促销价。 -
stock:库存数量(部分接口返回模糊值,如“100+”)。
(二)营销与销售数据
-
saleNum:商品销量(累计或近30天)。 -
commentCount:评价总数。 -
goodCommentCount:好评数。 -
couponInfo:优惠券信息。
(三)商品描述与媒体资源
-
desc:商品详情页HTML代码。 -
imageUrl:主图与轮播图URL。 -
videoUrl:商品视频链接。
(四)物流与售后
-
deliveryInfo:配送范围、时效、运费模板。 -
afterSaleService:退换货政策、保修期限。
四、总结
通过本文的实战代码解析,开发者可以快速理解和使用京东商品详情 API(item_get_pro)。此接口提供了丰富的商品详情数据,适用于多种电商场景。在使用过程中,确保按照京东开放平台的文档要求进行操作,并合理处理API返回的错误信息。
如遇任何疑问或有进一步的需求,请随时与我私信或者评论联系。
