尧图建网站 尧图建网站 YAOTU WEB BUILD 免费咨询
ARTICLE DETAIL

资讯详情

深耕网站建设与建站编程的一线实战洞察。

京东API不是全程免费!联盟免费+商家按量,收费结构一文掰清(附Python源码)

京东API不是全程免费!联盟免费+商家按量,收费结构一文掰清(附Python源码) 很多技术同学在选型时一看京东API就默认免费结果大促前账单突然炸了——问题就出在把京东联盟CPS选品接口和宙斯JOS商家接口两套体系混为一谈。本文基于京东官方收费规则实测梳理把账掰清楚。一、先纠偏京东API其实有两套账京东开放体系下至少有两套相互独立的API体系计费逻辑完全不同体系代表接口授权要求计费逻辑京东联盟CPS​jd.union.open.goods.query、jd.union.open.goods.detail.query联盟实名无店铺接口调用免费成交后按类目抽佣 5%~20%宙斯 JOS 商家接口​jingdong.ware.read.get、jingdong.pop.order.search、jingdong.etms.trace.get企业卖家OAuth有日免费额度超量按量计费​⚠️常见误判京东API免费只看联盟京东API贵把商家按量接口和联盟混算。两套账分开看才是真实成本。二、JOS商家接口分层的按量计费根据《京东商家开放平台收费规则》官方文档接口按功能、安全性、数据价值分为免费API / 基础API / 增值API其中基础类和增值类为收费API所有增值类API未经平台允许禁止鼎外调用。收费标准鼎内 vs 鼎外价差10倍类型说明鼎内价格鼎外价格开放平台基础POP店铺交易、商品、库存基础功能¥0.01/百次​¥0.1/百次开放平台增值营销引流、会员管理、经营分析¥0.03/百次​¥0.3/百次自营业务基础自营商品、库存相关¥0.02/百次​¥0.2/百次自营业务增值自营交易、消费者相关信息¥0.06/百次​¥0.6/百次品类业务基础学习/直播/业绩等运营管理¥0.05/百次—品类业务增值交易/流量/财务等品类级数据¥20000/百次​—数据来源京东商家开放平台官方收费规则三个关键认知免费额度是有的但有上限商品查询、订单同步、物流跟踪、库存快照等接口对企业应用通常有日免费额度超量后才进入按量计费。免费≠无限制。鼎内/鼎外价差10倍同样的基础接口部署在云鼎内调用是¥0.01/百次公网直调是¥0.1/百次。ERP/中台系统务必迁云鼎否则成本直接×10。增值API禁鼎外调用会员RFM、数据罗盘、竞品洞察等增值接口未经平台允许不能在云鼎外调用且多是包月/包年制¥99~999/月级。电子面单的隐性成本无界电子面单jingdong.etms.waybill.get单独计费——按面单数计费不计入API调用费。取消未揽收的面单不扣费但已揽收的按单结算。这部分成本常被漏算。三、联盟接口免费的背后是抽佣京东联盟的选品/商品查询/佣金查询接口jd.union.open.*备案后调用免费但有两个隐性约束成交抽佣通过联盟链接成交的订单按类目抽佣5%~20%数据粒度受限联盟接口只返回有货/无货状态看不到实时库存数字、SKU维度价格所以联盟免费的真实含义是用佣金换API调用费。适合选品/导购/CPS分发场景不适合做商家自用ERP的库存同步。四、2026年的两个变量变量1宙斯开发者中心融合迁移2026-06-24 京东发布《关于宙斯开发者中心融合迁移的通知》宙斯已从接口开放平台升级为以开发者为中心的技术服务平台。老接口360buy.ware.get/jingdong.ware.get已关闭新申请需迁移到新版jingdong.ware.read.get。变量2QPS与免费额度收紧个人开发者应用默认QPS很低通常1~2/s调订单/商品高频会返回code16 / ISP_FLOW_CONTROL_LIMIT。企业应用需购买QPS资源包才能提到50/100[site:5]。免费日额度企业应用通常数万~百万次/天个人应用仅500~2000次/天。五、Python源码JOS商品接口兼容封装新老接口平滑迁移下面这段代码基于京东宙斯OAuth2.0 MD5签名机制兼容老接口jingdong.ware.get和新接口jingdong.ware.read.get可直接用于生产import hashlib import json import time import urllib.parse import requests from typing import Optional, Dict, Any class JdJosClient: 京东宙斯JOS API客户端 兼容老接口 jingdong.ware.get - 新接口 jingdong.ware.read.get GW_PROD https://api.jd.com/routerjson GW_SANDBOX https://api.sandbox.jd.com/routerjson OAUTH_TOKEN_URL https://auth.jd.com/oauth/token OAUTH_AUTH_URL https://auth.jd.com/oauth/authorize def __init__(self, app_key: str, app_secret: str, sandbox: bool False): self.app_key app_key self.app_secret app_secret self.gw self.GW_SANDBOX if sandbox else self.GW_PROD # ───────────────────────────────────────────── # 1. OAuth2.0 授权构造授权URL店铺主扫码 # ───────────────────────────────────────────── def build_auth_url(self, redirect_uri: str, state: str anti_csrf) - str: params { response_type: code, client_id: self.app_key, redirect_uri: redirect_uri, state: state, } return self.OAUTH_AUTH_URL ? urllib.parse.urlencode(params) # ───────────────────────────────────────────── # 2. 用授权码换 access_token有效期30天 # ───────────────────────────────────────────── def fetch_access_token(self, authorization_code: str, redirect_uri: str) - Dict[str, Any]: payload { grant_type: authorization_code, client_id: self.app_key, client_secret: self.app_secret, code: authorization_code, redirect_uri: redirect_uri, } resp requests.post(self.OAUTH_TOKEN_URL, datapayload, timeout10) resp.raise_for_status() return resp.json() # ───────────────────────────────────────────── # 3. MD5 签名JOS标准AppSecret KV_ASCII排序 AppSecret # ───────────────────────────────────────────── def _sign(self, params: Dict[str, str]) - str: sorted_kv sorted(params.items(), keylambda x: x[0]) query self.app_secret for k, v in sorted_kv: query f{k}{v} query self.app_secret return hashlib.md5(query.encode(utf-8)).hexdigest().upper() # ───────────────────────────────────────────── # 4. 通用调用 # ───────────────────────────────────────────── def execute(self, method: str, access_token: str, biz_params: Dict[str, Any], is_cloud_inner: bool True) - Dict[str, Any]: :param method: 接口名如 jingdong.ware.read.get :param is_cloud_inner: 是否在云鼎内调用影响计费档位 ts time.strftime(%Y-%m-%d %H:%M:%S, time.localtime()) sys_params { app_key: self.app_key, method: method, timestamp: ts, format: json, v: 2.0, sign_method: md5, } if access_token: sys_params[access_token] access_token # 业务参数拍平 all_params dict(sys_params) for k, v in biz_params.items(): all_params[k] v if isinstance(v, str) else json.dumps(v) all_params[sign] self._sign(all_params) resp requests.post(self.gw, dataall_params, timeout10) resp.raise_for_status() return resp.json() # ───────────────────────────────────────────── # 5. 兼容封装商品查询老-新平滑切换 # ───────────────────────────────────────────── def get_ware(self, access_token: str, ware_id: str, use_new_api: bool True, fields: Optional[str] None) - Dict[str, Any]: 老: jingdong.ware.get 新: jingdong.ware.read.get2026推荐 method jingdong.ware.read.get if use_new_api else jingdong.ware.get biz {wareId: ware_id} if fields: biz[fields] fields elif use_new_api: # 新接口建议补全fields包含sku库存 biz[fields] wareId,title,price,skus_json,stock_num return self.execute(method, access_token, biz) # ───────────────────────────────────────────── # 6. 订单查询按量计费接口示例 # ───────────────────────────────────────────── def search_pop_order(self, access_token: str, start_time: str, end_time: str, page: int 1, page_size: int 100) - Dict[str, Any]: jingdong.pop.order.search —— 属于开放平台基础API鼎内0.01元/百次 biz { startTime: start_time, endTime: end_time, page: page, pageSize: page_size, } return self.execute(jingdong.pop.order.search, access_token, biz) # ───────────────────────────────────────────── # 使用示例 # ───────────────────────────────────────────── if __name__ __main__: client JdJosClient( app_keyYOUR_APP_KEY, app_secretYOUR_APP_SECRET, sandboxFalse, # 生产环境置False ) # Step 1: 构造授权URL给店铺主扫码 auth_url client.build_auth_url(https://your-callback.url) print(f请店铺主访问授权URL: {auth_url}) # 店铺主扫码授权后回调拿到 authorization_code # Step 2: 换取 access_token # token_data client.fetch_access_token(AUTH_CODE, https://your-callback.url) # access_token token_data[access_token] access_token YOUR_ACCESS_TOKEN # 实际项目中从Step 2获取 # Step 3: 调用商品接口新接口 result client.get_ware( access_tokenaccess_token, ware_id100012345678, use_new_apiTrue, ) print(json.dumps(result, ensure_asciiFalse, indent2))代码要点说明签名算法JOS采用MD5(AppSecret 参数KV按ASCII升序拼接 AppSecret)的标准签名最后转大写接口迁移只需改method字符串 补全fieldsskus_json,stock_numClient/签名/网关/token一行不动云鼎内调用is_cloud_innerTrue时计费率下降10倍生产环境ERP务必部署在云鼎内token有效期access_token有效期30天需做好刷新机制六、成本测算什么规模该花多少钱场景预估月调用量月成本估算单店自用日单1003万次¥0在免费额度内中型ERP10~50店50~200万次鼎内≈¥50~200鼎外≈¥500~2000跨平台SaaS千店级2000万次必须迁云鼎买QPS包月¥2000~10000联盟选品调用不限接口费¥0成交抽佣5~20%省流建议单店自用 → 免费额度够用别花冤枉钱多店ERP →必须迁云鼎否则鼎外×10倍费率增值数据/CRM → 走包月/包年别按量硬刷联盟接口只做选品/导购别指望拿库存数据七、写在最后的避坑清单⚠️ 上线前务必核对这5件事接口类型确认调的接口是免费/基础/增值哪一类价格档位差30倍鼎内/鼎外确认应用是否部署在云鼎差价10倍日免费额度监控企业应用通常30万~100万次/天超量前要有告警QPS资源包个人默认1~2/s企业高频需购包提至50/100老接口迁移jingdong.ware.get已停新申请2026年必须切到jingdong.ware.read.get数据口径说明本文收费数字综合自京东商家开放平台官方收费规则与2026年开发者实测联盟抽佣比例、具体免费额度上限等平台保留调整权生产环境请以宙斯开发者中心最新公告为准。多平台横向对比京东这套联盟免费商家按量鼎外×10的结构在淘宝TOP/1688/拼多多/抖店里都能找到影子——下一期我们把五家《2026电商API免费额度收费对照表》完整拆解看看同样一笔订单同步在五家分别要花多少钱。关注不迷路。
返回列表