京东平台API获取商品详情接口技术贴及代码示例

66 阅读3分钟

在电商领域,商品详情页是用户了解产品信息、做出购买决策的关键页面。京东作为国内重要的电商平台,提供了丰富的API接口供开发者使用,以便获取商品详情、价格、库存等信息。本文将详细介绍如何使用京东开放平台的API接口获取商品详情,并提供Python代码示例。

一、准备工作

  1. 注册开发者账号

  2. 创建应用

    • 登录开发者中心,创建一个新的应用。
    • 申请商品详情相关的API权限。
    • 获取应用的appKey(应用密钥)和appSecret(应用密码)。
  3. 获取访问令牌

    • 使用appKeyappSecret通过京东开放平台提供的认证接口获取accessToken(访问令牌)。

二、API接口说明

京东开放平台提供的商品详情接口允许开发者通过商品ID或SKU获取商品的详细信息。以下是一些关键参数和返回值说明:

  • 接口地址:通常形如https://router.jd.com/api,具体路径和参数需参考京东开放平台官方文档。

  • 请求方法:GET或POST。

  • 关键参数

    • method:接口名称,如jingdong.ware.product.get
    • app_key:应用的API密钥。
    • access_token:访问令牌。
    • timestamp:请求时间戳。
    • v:API版本。
    • sign:请求签名,用于验证请求合法性。
    • skupid:商品ID或SKU,用于唯一标识目标商品。
  • 返回值:包含商品的详细信息,如标题、价格、库存、图片链接、规格参数等。

三、代码示例

以下是一个使用Python的requests库调用京东商品详情API的示例代码:

python
import requests
import hashlib
import hmac
import time
import base64
import urllib.parse
 
# 京东商品详情API的URL
api_url = "https://router.jd.com/api"
 
# 商品ID(SKU)
sku = "1234567890"  # 替换为实际的商品ID或SKU
 
# 获取appKey和appSecret(在实际使用中需要替换成自己的值)
app_key = "你的App Key"
app_secret = "你的App Secret"
 
# 生成签名
def generate_sign(params, app_secret):
    params_str = "&".join(["{}={}".format(urllib.parse.quote(k), urllib.parse.quote(v)) for k, v in sorted(params.items())])
    sign_content = app_secret + params_str + app_secret
    sign = base64.b64encode(hmac.new(sign_content.encode('utf-8'), digestmod=hashlib.md5).digest()).decode('utf-8')
    return sign
 
# 构建请求参数
params = {
    "method": "jingdong.ware.product.get",
    "app_key": app_key,
    "timestamp": str(int(time.time() * 1000)),  # 毫秒级时间戳
    "v": "2.0",
    "sku": sku,
}
 
# 生成签名并添加到请求参数中
params["sign"] = generate_sign(params, app_secret)
 
# 发送请求
response = requests.get(api_url, params=params)
 
# 解析返回的JSON数据
data = response.json()
 
# 提取商品详情信息
product = data.get("jingdong_ware_product_get_response", {}).get("ware_product_dto", {})
if product:
    print("商品标题:", product.get("product_name"))
    print("商品价格:", product.get("price"))
    print("商品库存:", product.get("stock_num"))
    print("商品图片链接:", product.get("image_url"))
    # 可以根据需要打印其他商品信息
    # print(product.get("product_desc"))
    # print(product.get("specs"))
else:
    print("未找到商品信息")

四、注意事项

  1. 接口调用频率限制:京东开放平台对API调用频率有限制,请合理使用,避免触发频率限制。
  2. 接口安全性:调用接口时需要进行签名验证,确保请求的安全性和合法性。签名算法和参数排序规则需严格按照京东开放平台文档执行。
  3. 接口更新:京东的API可能会根据业务需求和平台政策进行调整和更新,因此在使用时要及时关注京东开放平台的官方文档获取最新信息。
  4. 错误处理:在实际应用中,需要考虑接口调用的错误处理,如网络异常、API返回错误码等情况。根据错误码进行相应的错误提示或重试操作。

通过以上步骤和代码示例,开发者可以轻松地通过京东开放平台的API接口获取商品详情数据,进而进行数据分析、商品推荐等应用。