chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

京東比價項目開發(fā)實錄:京東API接口(2025)

鄧林 ? 來源:jf_63013664 ? 作者:jf_63013664 ? 2025-08-22 09:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

?

在電商開發(fā)的修羅場里摸爬滾打這些年,和京東商品詳情API接口的 “較量” 堪稱一部跌宕起伏的奮斗史。從申請權(quán)限時的層層關(guān)卡,到數(shù)據(jù)解析時的各種 “暗礁”,今天就把這段實戰(zhàn)經(jīng)歷掰開揉碎,配上親測有效的代碼,給大伙避避雷!

wKgZO2idiI-AWRVrAAtexaV4-PQ400.png

還記得第一次對接京東API,天真地以為和其他平臺大同小異。結(jié)果光是申請開發(fā)者權(quán)限就碰了一鼻子灰 —— 京東對企業(yè)資質(zhì)審核極為嚴格,營業(yè)執(zhí)照、ICP 備案、應(yīng)用場景說明反復(fù)修改了三輪,整整一周才收到通過通知。好不容易拿到App Key和App Secret,簽名算法又成了攔路虎。京東采用的HMAC-SHA256加密方式,對參數(shù)拼接順序、URL 編碼要求近乎苛刻,稍有差錯就返回10001簽名錯誤。那段時間熬夜翻看官方文檔、GitHub 示例,終于啃出了簽名生成函數(shù):

python

運行

import hashlib
import hmac
import time
import urllib.parse


def generate_signature(params, app_secret):
    sorted_params = sorted(params.items(), key=lambda x: x[0])
    query_str = ""
    for k, v in sorted_params:
        if isinstance(v, list):
            v = ",".join(map(str, v))
        query_str += f"{k}{v}"
    sign_str = f"{app_secret}{query_str}{app_secret}"
    return hmac.new(
        app_secret.encode('utf-8'),
        sign_str.encode('utf-8'),
        hashlib.sha256
    ).hexdigest().upper()


# 使用示例
api_params = {
    "method": "jd.union.open.goods.query",
    "app_key": "your_app_key",
    "keyword": "手機",
    "timestamp": str(int(time.time()))
}
signed_params = generate_signature(api_params, "your_app_secret")
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

解決了簽名問題,新的 “坑” 接踵而至。京東對 API 調(diào)用頻率限制十分嚴格,不同接口還有差異化限流策略。為了避免觸發(fā)封禁,我用 Python 的asyncio結(jié)合信號量,實現(xiàn)了異步請求與限流控制:

python

運行

import asyncio
import aiohttp


class ???????RateLimiter:
    def __init__(self, rate_limit):
        self.semaphore = asyncio.Semaphore(rate_limit)

    async def limit(self):
        async with self.semaphore:
            yield


async def fetch_product_detail(session, sku_id, signed_params):
    async with RateLimiter(10).limit():
        url = "https://api.jd.com/routerjson"
        params = {**signed_params, "sku_id": sku_id}
        async with session.get(url, params=params) as response:
            return await response.json()


async def main(sku_ids, signed_params):
    async with aiohttp.ClientSession() as session:
        tasks = [fetch_product_detail(session, sku, signed_params) for sku in sku_ids]
        results = await asyncio.gather(*tasks)
        return results


# 示例調(diào)用
sku_ids = ["123456789", "987654321"]
signed_params = {...}  # 已簽名參數(shù)
asyncio.run(main(sku_ids, signed_params))
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

python數(shù)據(jù)實例

"stock": {
            "skuId": "100031963708",
            "realSkuId": "100031963708",
            "ArrivalDate": "",
            "Drd": "",
            "sidDely": 182,
            "promiseResult": "20:00前付款,預(yù)計明天(07月02日)送達",
            "isJDexpress": false,
            "StockState": 33,
            "rn": -1,
            "code": 1,
            "weightValue": "0.055kg",
            "fxgCode": "0",
            "afsCode": 1,
            "ir": [
                {
                    "iconSrc": "京準達",
                    "iconTip": "選擇京準達服務(wù),可指定精確時間點收貨;若京東責任超時,即時賠付",
                    "helpLink": "http://help.jd.com/user/issue/103-983.html",
                    "iconCode": "sendpay_zhun",
                    "resultCode": 1,
                    "showName": "京準達",
                    "picUrl": "http://m.360buyimg.com/mobilecms/jfs/t3172/266/1698067915/1634/64a0c40e/57d25fcfNd9c62bb7.png",
                    "iconType": 0,
                    "iconServiceType": 1
                },
                {
                    "iconSrc": "211限時達",
                    "iconTip": "上午下單,下午送達",
                    "helpLink": "https://help.jd.com/user/issue/91-953.html",
                    "iconCode": "sendpay_211",
                    "resultCode": 1,
                    "showName": "211限時達",
                    "picUrl": "http://static.360buyimg.com/item/assets/picon/zhongbiao.png",
                    "iconType": 0,
                    "iconServiceType": 1
                },
                {
                    "iconSrc": "明日達",
                    "iconTip": "指定時間前下單,最快明日達",
                    "helpLink": "http://help.jd.com/user/issue/103-983.html",
                    "iconCode": "sendpay_nextday",
                    "resultCode": 1,
                    "showName": "明日達",
                    "picUrl": "http://static.360buyimg.com/item/assets/picon/zhongbiao.png",
                    "iconType": 0,
                    "iconServiceType": 1
                },
                {
                    "iconSrc": "預(yù)約送貨",
                    "iconTip": "京東物流為該商品提供預(yù)約送貨服務(wù)",
                    "helpLink": "http://help.jd.com/user/issue/103-983.html",
                    "iconCode": "service_yysh",
                    "resultCode": 1,
                    "showName": "預(yù)約送貨",
                    "picUrl": "https://m.360buyimg.com/babel/jfs/t1/116316/15/7402/1031/5ec22ca4E713f857c/dd49784b20933cf5.png",
                    "iconType": 0,
                    "iconServiceType": 6
                },
                {
                    "iconSrc": "部分收貨",
                    "iconTip": "如果收件人收貨時發(fā)現(xiàn)部分貨物存在缺少配件、物流損等情形,京東物流提供訂單半收服務(wù)",
                    "helpLink": "https://help.jd.com/user/issue/103-983.html",
                    "iconCode": "service_bfsh",
                    "resultCode": 1,
                    "showName": "部分收貨",
                    "picUrl": "https://m.360buyimg.com/babel/jfs/t1/108073/34/18517/1071/5ec22ce0E11a3b1c5/f8ffea5f4cafa0f9.png",
                    "iconType": 0,
                    "iconServiceType": 6
                },
                {
                    "iconSrc": "送貨上門",
                    "iconTip": "京東快遞為您提供送貨上門服務(wù)",
                    "helpLink": "https://help.jd.com/user/issue/254-4130.html",
                    "iconCode": "service_sssm",
                    "resultCode": 1,
                    "showName": "送貨上門",
                    "picUrl": "https://m.360buyimg.com/babel/jfs/t1/115738/37/12143/1066/5f0c7d11E4faee520/de3879572e2b2014.png",
                    "iconType": 0,
                    "iconServiceType": 6
                },
                {
                    "iconSrc": "59元免基礎(chǔ)運費",
                    "iconTip": "所選地址自營訂單滿59元免基礎(chǔ)運費(20kg內(nèi)),超出重量加收1元/kg續(xù)重運費。",
                    "helpLink": "http://help.jd.com/user/issue/103-983.html",
                    "iconCode": "free_delivery_zhong",
                    "resultCode": 1,
                    "showName": "59元免基礎(chǔ)運費",
                    "picUrl": "http://static.360buyimg.com/item/assets/picon/mianyunfei.png",
                    "iconType": 0,
                    "iconServiceType": 4
                },
                {
                    "iconSrc": "京東物流",
                    "iconTip": "京東物流為您提供倉配一體供應(yīng)鏈服務(wù)",
                    "helpLink": "https://help.jd.com/user/issue/list-81.html",
                    "iconCode": "service_jdwl",
                    "resultCode": 1,
                    "showName": "京東物流",
                    "picUrl": "https://m.360buyimg.com/babel/jfs/t1/130756/9/11972/4289/5f8674d3Eabfebbef/bb964241bd789a72.png",
                    "iconType": 0,
                    "iconServiceType": 4
                },
                {
                    "iconSrc": "7天價保",
                    "iconTip": "在下單或簽收7天內(nèi),商品出現(xiàn)降價可享受價保服務(wù),部分特殊場景不支持價保,可點擊”>"了解詳細規(guī)則",
                    "helpLink": "https://help.jd.com/user/issue/291-548.html",
                    "iconCode": "service_guominwuyou",
                    "resultCode": 1,
                    "showName": "7天價保",
                    "picUrl": "https://m.360buyimg.com/babel/jfs/t1/85923/26/10113/3475/5e144da1Ef978a914/d3d44f85b4221cf6.png",
                    "iconType": 0,
                    "iconServiceType": 3
                },
                {
                    "iconSrc": "自提",
                    "iconTip": "我們提供多種自提服務(wù),包括京東自提點、自助提貨柜、京東校園派、京東星配站、京東便民站等服務(wù)",
                    "helpLink": "http://help.jd.com/user/issue/103-983.html",
                    "iconCode": "special_ziti",
                    "resultCode": 1,
                    "showName": "自提",
                    "picUrl": "http://static.360buyimg.com/item/assets/picon/shoutixiang.png",
                    "iconType": 0,
                    "iconServiceType": 5
                }
            ],
            "promiseYX": {
                "iconSrc": "7天無理由退貨",
                "iconTip": "支持7天無理由退貨",
                "helpLink": "http://help.jd.com/user/issue/126-3780.html",
                "iconCode": "service_qitiantuihuo",
                "resultCode": 1,
                "showName": "7天無理由退貨",
                "picUrl": "",
                "iconType": 0,
                "iconServiceType": 3
            },
            "self_D": {
                "venderId": 1000085871,
                "colType": 0,
                "shopId": 1000085871,
                "shopName": "zippo京東自營旗艦店",
                "vender": "zippo京東自營旗艦店",
                "hotLine": "",
                "shopWebsite": "http://zippo.jd.com",
                "po": true,
                "url": "http://zippo.jd.com"
            },
            "serviceInfo": "由京東發(fā)貨,zippo京東自營旗艦店提供售后服務(wù)",
            "sid": 182,
            "preStore": -1,
            "unifiedServiceTag": {
                "enable": true,
                "freightIconCodes": [
                    "free_delivery",
                    "free_delivery_zhong",
                    "free_delivery_fresh",
                    "free_delivery_fresh_zhong",
                    "Free_nbaoyou",
                    "Free_nsxbaoyou",
                    "free_baoyou",
                    "free_sxbaoyou"
                ],
                "iconServiceTypes": [
                    "1",
                    "5",
                    "6"
                ],
                "tsfw": [
                    {
                        "code": "s26",
                        "desc": "在下單或簽收7天內(nèi),商品出現(xiàn)降價可享受價保服務(wù)(商品在消費者下單后因參與百億補貼、政府補貼等活動導(dǎo)致降價不支持價保),可點擊“>”了解詳細規(guī)則",
                        "helpUrl": "https://ihelp.jd.com/l/help/scene/getSceneDetail?id=337318",
                        "logoUrl": "http://m.360buyimg.com/babel/jfs/t1/166785/27/4308/10074/60113548Ea9bb7dbb/be0bac01dccf5f52.png",
                        "name": "7天價保",
                        "shortDesc": "7天內(nèi)買貴退差價",
                        "iHelpLink": "https://ihelp.jd.com/l/help/scene/getSceneDetail?id=325798",
                        "ihelpLink": "https://ihelp.jd.com/l/help/scene/getSceneDetail?id=325798",
                        "mimgUrl": "http://m.360buyimg.com/babel/jfs/t1/222474/40/8926/4033/61de8162E9b3a5a0c/b11a4cc5342015b0.png",
                        "mimgUrl2": "http://m.360buyimg.com/lme/jfs/t1/222228/21/20461/3101/63048db5Ef37ece2e/83f0be5658b2f25b.png"
                    },
                    {
                        "code": "s141",
                        "desc": "由京東指定供應(yīng)商提供售后服務(wù)",
                        "name": "供應(yīng)商售后",
                        "shortDesc": "京東指定供應(yīng)商售后"

python

運行

def parse_product_data(raw_data):
    try:
        return {
            "product_name": raw_data.get("wareInfo", {}).get("wareName", ""),
            "current_price": float(raw_data.get("wareInfo", {}).get("jdPrice", 0)),
            "original_price": float(raw_data.get("wareInfo", {}).get("marketPrice", 0)),
            "stock": int(raw_data.get("wareInfo", {}).get("stockNum", 0)),
            "brand": raw_data.get("wareInfo", {}).get("brandName", "")
        }
    except KeyError as e:
        print(f"字段缺失: {e}")
        return {}


# 示例調(diào)用
raw_response = {...}  # API返回數(shù)據(jù)
parsed_data = parse_product_data(raw_response)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

最驚險的一次,幫客戶開發(fā)商品比價系統(tǒng)時,突然遇到京東接口升級,原本正常的 “商品副標題” 字段被替換成了 “shortTitle”。由于沒有做字段兼容性處理,導(dǎo)致前端頁面大量數(shù)據(jù)缺失。吃一塹長一智,后來每次調(diào)用 API 都會寫版本兼容函數(shù),動態(tài)適配字段變化:

python

運行

def adapt_data_fields(data):
    if "wareName" in data.get("wareInfo", {}):
        data["wareInfo"]["product_title"] = data["wareInfo"].pop("wareName")
    if "jdPrice" in data.get("wareInfo", {}):
        data["wareInfo"]["current_price"] = data["wareInfo"].pop("jdPrice")
    return data


# 示例調(diào)用
adapted_data = adapt_data_fields(raw_response)
poYBAGDYdXCAWkKMAAAAK8RNs4s030.png

這些年踩過的坑、寫過的代碼,都成了寶貴的經(jīng)驗。如果有遇到其他問題都可以一起交流!

?審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9547

    瀏覽量

    157262
  • API
    API
    +關(guān)注

    關(guān)注

    2

    文章

    2410

    瀏覽量

    66884
  • 京東
    +關(guān)注

    關(guān)注

    2

    文章

    1122

    瀏覽量

    50122
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    京東電商 API 接口,訂單管理高效解決方案!

    ? 在當今電商高速發(fā)展的時代,京東作為領(lǐng)先的電商平臺,其 API 接口為商家和開發(fā)者提供了強大的工具,幫助實現(xiàn)訂單管理的高效化。本文將逐步解析京東
    的頭像 發(fā)表于 07-04 16:12 ?841次閱讀
    <b class='flag-5'>京東</b>電商 <b class='flag-5'>API</b> <b class='flag-5'>接口</b>,訂單管理高效解決方案!

    京東 API 接口:打造高效京東店鋪訂單處理系統(tǒng)

    管理效率。本文將探討如何利用京東 API 打造一個高效、可靠的訂單處理系統(tǒng)。 京東 API 接口簡介
    的頭像 發(fā)表于 08-14 14:49 ?757次閱讀
    <b class='flag-5'>京東</b> <b class='flag-5'>API</b> <b class='flag-5'>接口</b>:打造高效<b class='flag-5'>京東</b>店鋪訂單處理系統(tǒng)

    巧用京東 API,精準把握京東平臺用戶消費偏好

    ? 在當今電商競爭激烈的環(huán)境下,精準把握用戶消費偏好是企業(yè)提升轉(zhuǎn)化率、優(yōu)化營銷策略的關(guān)鍵。京東作為國內(nèi)領(lǐng)先的電商平臺,提供了豐富的開放 API(應(yīng)用程序接口),允許開發(fā)者訪問用戶行為數(shù)
    的頭像 發(fā)表于 08-14 15:00 ?902次閱讀
    巧用<b class='flag-5'>京東</b> <b class='flag-5'>API</b>,精準把握<b class='flag-5'>京東</b>平臺用戶消費偏好

    揭秘京東 API,讓京東店鋪商品推薦更懂用戶

    探討如何利用它讓推薦系統(tǒng)更“懂”用戶的需求,從而提升轉(zhuǎn)化率和用戶滿意度。 什么是京東 API京東 API(Application Programming Interface)是一套
    的頭像 發(fā)表于 08-14 15:04 ?978次閱讀
    揭秘<b class='flag-5'>京東</b> <b class='flag-5'>API</b>,讓<b class='flag-5'>京東</b>店鋪商品推薦更懂用戶

    京東 API 助力,京東平臺促銷活動效果實時評估

    痛點,通過實時數(shù)據(jù)獲取和分析,幫助商家高效評估活動效果。本文將逐步解析如何利用京東API實現(xiàn)促銷活動的實時監(jiān)控與評估,確保決策精準、響應(yīng)迅速。 第一步:理解京東API的核心功能
    的頭像 發(fā)表于 08-14 15:07 ?794次閱讀
    <b class='flag-5'>京東</b> <b class='flag-5'>API</b> 助力,<b class='flag-5'>京東</b>平臺促銷活動效果實時評估

    借助京東 API,京東店鋪商品質(zhì)量反饋快速收集

    自動化、高效地獲取和處理反饋數(shù)據(jù),實現(xiàn)快速響應(yīng)。本文將逐步介紹如何利用京東 API 實現(xiàn)這一過程,確保數(shù)據(jù)真實可靠。 1. 京東 API 簡介與優(yōu)勢
    的頭像 發(fā)表于 08-15 14:55 ?946次閱讀
    借助<b class='flag-5'>京東</b> <b class='flag-5'>API</b>,<b class='flag-5'>京東</b>店鋪商品質(zhì)量反饋快速收集

    京東API 介紹

    京東 API京東開放平臺提供的一組標準化接口,允許開發(fā)者通過程序化方式訪問京東生態(tài)的核心業(yè)務(wù)
    的頭像 發(fā)表于 10-08 09:04 ?905次閱讀

    全網(wǎng)最全面介紹京東API接口指南

    。本指南將全面解析京東API接口,涵蓋從入門到實戰(zhàn)的完整流程,幫助開發(fā)者高效利用京東生態(tài)資源。 一、什么是
    的頭像 發(fā)表于 10-29 16:02 ?1398次閱讀
    全網(wǎng)最全面介紹<b class='flag-5'>京東</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>指南

    京東API接口的應(yīng)用場景介紹

    ? 京東API(Application Programming Interface)是京東開放平臺提供的一套標準化接口,允許第三方開發(fā)者通過
    的頭像 發(fā)表于 11-03 14:13 ?348次閱讀
    <b class='flag-5'>京東</b><b class='flag-5'>API</b><b class='flag-5'>接口</b>的應(yīng)用場景介紹

    京東API實時接口京東商品評論數(shù)據(jù)接口

    ??京東商品評論數(shù)據(jù)接口(通常表示為 JD.item_review)是京東開放平臺提供的一種API,它允許開發(fā)者獲取
    的頭像 發(fā)表于 11-11 11:21 ?614次閱讀

    京東平臺獲取商品詳情原數(shù)據(jù)API接口技術(shù)解析

    ? ?在電商系統(tǒng)開發(fā)、價格監(jiān)控、競品分析等場景中,獲取商品的原始詳情數(shù)據(jù)是基礎(chǔ)且關(guān)鍵的一環(huán)。京東作為國內(nèi)領(lǐng)先的電商平臺,提供了相應(yīng)的API接口開發(fā)
    的頭像 發(fā)表于 11-13 14:35 ?757次閱讀
    <b class='flag-5'>京東</b>平臺獲取商品詳情原數(shù)據(jù)<b class='flag-5'>API</b><b class='flag-5'>接口</b>技術(shù)解析

    京東關(guān)鍵詞API接口獲取

    你想要獲取京東關(guān)鍵詞相關(guān)的 API 接口,以此替代傳統(tǒng)爬蟲,更合規(guī)、穩(wěn)定地獲取商品列表等信息,我會先講解 官方合規(guī)的 API 獲取與使用方式 (推薦),再說明非官方
    的頭像 發(fā)表于 01-09 14:16 ?490次閱讀

    京東商品詳情API接口指南

    一、前言 京東商品詳情 API京東開放平臺提供的核心接口之一,用于獲取京東平臺上商品的標題、價格、庫存、規(guī)格、銷量、評價等核心信息。該
    的頭像 發(fā)表于 01-14 14:22 ?374次閱讀

    京東商品詳情API接口詳解:獲取商品標題、價格、庫存等核心數(shù)據(jù)

    京東商品詳情 API 是獲取商品 標題、價格、庫存、SKU、主圖、參數(shù) 等核心數(shù)據(jù)的官方合規(guī)入口,分 京東開放平臺(JOS)與京東聯(lián)盟 兩大體系,適合賣家做商品監(jiān)控、
    的頭像 發(fā)表于 03-02 14:28 ?355次閱讀

    京東商品詳情券后價API概述

    京東商品券后價 API京東開放平臺 / 聯(lián)盟提供的 標準化接口 ,用于 批量、實時獲取商品在疊加優(yōu)惠券、促銷后的最終到手價 ,是電商比價
    的頭像 發(fā)表于 03-22 11:13 ?1094次閱讀