?
在電商平臺開發或數據分析中,經常需要獲取商品的實時價格信息,尤其是包含優惠券抵扣后的最終價格(券后價)。京東平臺提供了豐富的API接口供開發者使用。本文將簡要介紹如何調用京東的API來獲取商品的券后價格詳情。
核心概念
商品ID (skuId): 京東平臺為每個商品分配的唯一標識符,是查詢商品信息的關鍵。
優惠券ID (couponId): 京東平臺發放的各種優惠券的唯一標識符。不同券有不同的使用規則和面額。
券后價: 商品原價減去適用的優惠券抵扣金額后的最終成交價。
API調用流程概述
調用API獲取券后價通常涉及以下幾個步驟:
身份認證 (Authentication): 大多數京東API需要有效的訪問令牌才能調用。通常使用OAuth 2.0等協議進行授權。
構造請求 (Request Construction):
確定目標API的端點URL。
設置必要的請求頭,如 Authorization: Bearer 。
在請求體或查詢參數中包含目標商品的 skuId 和想要查詢的 couponId(如果已知特定券)。
發送請求 (Send Request): 使用HTTP客戶端庫發送請求。
解析響應 (Parse Response): 處理返回的數據(通常是JSON格式),提取所需的券后價格信息。
示例請求與響應
假設的API端點
https://api.jd.com/routerjson (實際接口地址請參考京東官方文檔)
請求參數示例 (簡化的示意)
{
"method": "jingdong.price.getCouponPrice",
"app_key": "YOUR_APP_KEY",
"access_token": "YOUR_ACCESS_TOKEN",
"timestamp": "2023-10-27 10:00:00",
"v": "2.0",
"sign": "GENERATED_SIGNATURE",
"skuId": "1234567890", // 目標商品ID
"couponId": "COUPON-ABCD-1234" // 目標優惠券ID (可選)
}

app_key, access_token, timestamp, v, sign 是京東API通用的認證和簽名參數。
skuId 指定要查詢的商品。
couponId 可選,指定要計算價格的特定優惠券。如果不提供,API可能會返回該商品所有可用券對應的券后價。
響應示例 (簡化的示意)
{
"code": 0, // 0 表示成功
"message": "Success",
"data": {
"skuId": "1234567890",
"originalPrice": 299.00, // 商品原價
"coupons": [
{
"couponId": "COUPON-ABCD-1234",
"couponName": "滿199減50",
"discount": 50.00, // 優惠券面額
"couponPrice": 249.00 // 使用此券后的券后價
},
{
"couponId": "COUPON-EFGH-5678",
"couponName": "新用戶專享立減20",
"discount": 20.00,
"couponPrice": 279.00
}
]
}
}

originalPrice 是商品的原價。
coupons 數組列出了該商品可用的優惠券及其對應的券后價 (couponPrice)。
示例代碼 (Python)
import requests import json import time import hashlib # 替換為你的實際信息 APP_KEY = "YOUR_APP_KEY" APP_SECRET = "YOUR_APP_SECRET" ACCESS_TOKEN = "YOUR_ACCESS_TOKEN" # 通常通過OAuth流程獲取 SKU_ID = "1234567890" # 目標商品ID # COUPON_ID = "SPECIFIC_COUPON_ID" # 可選,指定券ID def generate_sign(params, app_secret): """生成請求簽名 (示意邏輯,實際規則需參照京東文檔)""" # 1. 參數排序 sorted_keys = sorted(params.keys()) # 2. 拼接鍵值對 param_str = app_secret for key in sorted_keys: param_str += key + params[key] param_str += app_secret # 3. MD5簽名 (示例) return hashlib.md5(param_str.encode('utf-8')).hexdigest().upper() # 基礎參數 base_params = { "method": "jingdong.price.getCouponPrice", # 假設的方法名 "app_key": APP_KEY, "access_token": ACCESS_TOKEN, "timestamp": time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()), "v": "2.0", "skuId": SKU_ID, # "couponId": COUPON_ID # 如果需要指定券,取消注釋 } # 生成簽名 base_params["sign"] = generate_sign(base_params, APP_SECRET) # 發送請求 (假設是POST請求) url = "https://api.jd.com/routerjson" response = requests.post(url, data=base_params) # 處理響應 if response.status_code == 200: resp_data = response.json() if resp_data.get("code") == 0: # 成功 data = resp_data["data"] print(f"商品ID: {data['skuId']}, 原價: ¥{data['originalPrice']:.2f}") for coupon in data["coupons"]: print(f" 優惠券: {coupon['couponName']} (ID: {coupon['couponId']})") print(f" 面額: ¥{coupon['discount']:.2f}, 券后價: ¥{coupon['couponPrice']:.2f}") else: print(f"API調用失敗! 錯誤碼: {resp_data['code']}, 信息: {resp_data['message']}") else: print(f"HTTP請求失敗! 狀態碼: {response.status_code}")

注意事項
官方文檔: 務必查閱京東官方提供的最新API文檔,確認確切的接口名稱、請求參數、響應格式、認證方式和簽名生成規則。接口和參數可能會更新。
權限申請: 使用京東API通常需要注冊成為開發者并創建應用,申請相應的API調用權限。
頻率限制: 注意API的調用頻率限制,避免因頻繁請求被限制或封禁。
錯誤處理: 在代碼中妥善處理各種可能的錯誤(網絡錯誤、API返回錯誤、數據解析錯誤等)。
數據時效性: 券后價信息可能隨時變動(如優惠券過期、庫存變化),獲取的數據僅代表調用時刻的狀態。
安全性: 妥善保管你的 APP_KEY 和 APP_SECRET,不要泄露。
通過調用京東提供的API,開發者可以高效地獲取商品的券后價格信息,為價格監控、優惠分析、比價工具等應用提供數據支持。
?審核編輯 黃宇
-
API
+關注
關注
2文章
2368瀏覽量
66753
發布評論請先 登錄
標題:技術實戰 | 如何通過API接口高效獲取亞馬遜平臺商品詳情數據
如何通過API獲取京東商品的券后價格詳情
評論