[特殊字符]《京东宙斯迁移公告解读:老接口 360buy.ware.get→ jingdong.ware.read.get平滑切换(附Python源码)》 《京东宙斯迁移公告解读老接口360buy.ware.get→jingdong.ware.read.get平滑切换附Python源码》京东早期商品查询接口曾用360buy.ware.getmethod值jingdong.ware.get现在官方统一推荐jingdong.ware.read.get新版只读商品读取接口权限更清晰、支持SKU快照字段。老接口逐步下线切新接口只需改 method 微调 fields签名/网关/AccessToken 完全不变。一、老 vs 新接口对照项目老接口(逐步下线)新接口(推荐)Method​jingdong.ware.get/360buy.ware.get✅jingdong.ware.read.get网关​https://api.jd.com/routerjson同不变签名算法​MD5(AppSecretKV_ASCIIAppSecret) 秒级timestamp完全相同不需改必传参数​wareId/fields同wareId/fields建议补充skus_json返回结构​{jingdong_ware_get_response:{ware:{...}}}{jingdong_ware_read_get_response:{ware:{...}}}权限申请​老权限入口应用→接口权限→申请jingdong.ware.read.getSKU库存可见​需 seller token同传 seller AccessToken 可看stockNumin skus_json✅结论代码中只改method字符串 fields补全skus_json,stock_num其余Client / 签名 / 网关 / token一行不动即可平滑迁移。二、Python老接口 vs 新接口调用对比 兼容封装# jd_ware_migration.py 京东商品接口迁移演示 old: jingdong.ware.get → new: jingdong.ware.read.get 同一个 JdClient 复用仅 method fields 不同 import hashlib import json import requests import time from typing import Dict, Optional 封装好API供应商demo urlhttps://console.open.onebound.cn/console/?iLex # ─────────── JOS Client (内联与你之前用的一致) ─────────── class JdClient: GW https://api.jd.com/routerjson def __init__(self, ak, ask): self.ak, self.ask ak, ask def _sign(self, p: Dict) - str: filt sorted((k, v) for k, v in p.items() if v is not None and str(v).strip() ! and k ! sign) qs .join(f{k}{v} for k, v in filt) return hashlib.md5(f{self.ask}{qs}{self.ask}.encode() ).hexdigest().upper() def _call(self, method: str, biz: Dict, token: str None) - Dict: p { app_key: self.ak, method: method, timestamp: str(int(time.time())), # ← 秒级 format: json, v: 2.0, sign_method: md5, 360buy_param_json: json.dumps(biz, ensure_asciiFalse, separators(,, :)) } if token: p[access_token] token p[sign] self._sign(p) r requests.post(self.GW, datap, timeout15) r.raise_for_status() d r.json() resp_key method.replace(., _) _response if resp_key not in d: for k in d: if k.endswith(_response): resp_key k break data d.get(resp_key, d) if error_response in str(data): err d.get(resp_key, {}).get(error_response) or d.get(error_response) if err: raise Exception(fJOS [{err.get(code)}]: f{err.get(zh_desc) or err.get(en_desc)}) raise Exception(fJOS err: {d}) return data # ─── 老接口(不推荐, 仅作对比) ─── def get_ware_old(self, ware_id: str, fields: str None, token: str None) - Dict: fields fields or ware_id,title,price,jd_price,stock_num,skus_json,image_path return self._call( jingdong.ware.get, # ← 老 method {wareId: ware_id, fields: fields}, token ).get(ware, {}) # ─── ✅ 新接口(推荐迁移目标) ─── def get_ware_new(self, ware_id: str, fields: str None, token: str None) - Dict: fields fields or ( ware_id,title,brand_name,cid,category_name, price,jd_price,market_price,stock_num, skus_json,image_path,desc,outer_id ) return self._call( jingdong.ware.read.get, # ← 新 method {wareId: ware_id, fields: fields}, token ).get(ware, {}) 封装好API供应商demo urlhttps://console.open.onebound.cn/console/?iLex # # 使用示例 # if __name__ __main__: cli JdClient(YOUR_JD_APP_KEY, YOUR_JD_APP_SECRET) WARE_ID 100012345678 # ← 替换真实 wareId SELLER_TOKEN None # 查自己店铺SKU库存传卖家AccessToken try: # ★ 迁移后只用这一行 ★ ware cli.get_ware_new(WARE_ID, tokenSELLER_TOKEN) print(✅ [新接口] 商品标题:, ware.get(title)) print( 京东价:, ware.get(jd_price)) print( SPU库存:, ware.get(stock_num)) # skus_json 解析 import json as _json skus_raw ware.get(skus_json) or if skus_raw: skus _json.loads(skus_raw) print(f SKU数:{len(skus)}) for s in skus[:2]: print(f skuId:{s.get(skuId)} 价:{s.get(jdPrice)} f库:{s.get(stockNum)} 商家码:{s.get(outerId,)}) print(\n→ 迁移完成仅需改 methodjingdong.ware.read.get fields补skus_json) except Exception as e: print(❌, e) print(→ 确认: AppKey/Secret正确、接口 jingdong.ware.read.get 已申请、wareId有效)三、迁移 Checklist照着做应用后台申请新权限​→ 接口权限 → 勾选jingdong.ware.read.get→ 提交通常即时生效代码改动- method jingdong.ware.get method jingdong.ware.read.get - fields ware_id,title,price fields ware_id,title,price,jd_price,stock_num,skus_json,image_pathwareId参数名不变驼峰同老接口回归测试沙箱调通签名 ✓生产比对新旧返回字段一致性标题/价格/SKU数应一致自家店铺查 SKU 库存需传access_token同旧逻辑下线老调用确认所有环境切新 method 后删除get_ware_old()分支四、避坑坑现象解决新接口返回 403未申请jingdong.ware.read.get应用→接口权限→申请skus_json空公开查询别人商品 / 未传 token查自己店铺商品须传卖家 AccessToken​老代码wareId写成ware_id部分SDK自动映射推荐用wareId(首字母大写)与文档保持一致返回结构 key 变jingdong_ware_get_response→jingdong_ware_read_get_response解析用.get(ware)不依赖外层 keytimestamp毫秒Invalid TimestampJOS用秒级​int(time.time())五、面试/方案一句话京东商品查询老接口jingdong.ware.get迁jingdong.ware.read.get只改 method 字符串 fields 补skus_json,stock_num网关/签名/AccessToken 完全不变应用需申请新接口权限返回值结构外层key变但内层ware节点字段一致解析取.get(ware)即兼容。需要我补京东订单增量同步(jingdong.pop.order.search) APScheduler断点续跑​ 或京东库存快照定时校正脚本​ 吗

相关新闻

最新新闻

沐曦股份曦云 C 系列GPU率先 Day 0 适配美团新一代万亿参数大模型 LongCat-2.0

沐曦股份曦云 C 系列GPU率先 Day 0 适配美团新一代万亿参数大模型 LongCat-2.0

7月6日,美团宣布正式开源新一代万亿参数大模型 LongCat-2.0。LongCat-2.0从零开始预训练,原生支持 1M 超长上下文,旨在让模型在真实的 Agentic Coding 任务中,更高效、更稳定地完成代码理解、生成与执行。依托“自研GPU硬件MXMACA…

2026/7/8 3:38:50
0001 - 大模型概念入门

0001 - 大模型概念入门

[TOC](大模型概念入门)什么是大模型?一文读懂 AI 大模型本文将带你从零了解大模型的定义、原理、发展历程与分类。一、什么是大模型 大模型,一般也称为大语言模型,是一种基于深度学习技术训练出来的人工智能系统,主要用于处理和生…

2026/7/8 3:38:50
HR面试问你对国内大厂加班文化怎么看?留学生用效率至上优雅回应「蒸汽求职分享」

HR面试问你对国内大厂加班文化怎么看?留学生用效率至上优雅回应「蒸汽求职分享」

这是一道在综合面或 HR 终面里几乎百分之百会遇到的常规考题。HR 为了测试候选人的抗压弹性和心理预期,经常会直白地提问:“国内大厂的工作节奏普遍比较快,你作为海归,平时对加班是怎么看的?”很多同学由于不了解国内大…

2026/7/8 3:38:50
2026企业官网搭建平台有哪些

2026企业官网搭建平台有哪些

2026企业官网搭建平台有哪些搜索平台、公司或排行信息,本质上反映了企业对不确定性的担心。页面能不能做出来只是第一层问题,后续谁维护、怎么更新、能否支撑私域流量和长期扩展,才是影响系统投入产出比的关键。企业官网搭建可以理解为企业借…

2026/7/8 3:38:50
如何将 iPhone 微信照片传输到电脑

如何将 iPhone 微信照片传输到电脑

想妥善保存微信里的照片?把微信数据备份到电脑是稳妥的选择。既能防止手机出现故障导致图片丢失,还能释放手机存储空间,用来存放新消息、图片和各类文件。本篇教程会为你介绍多种简单方法,实现 iPhone 微信照片向电脑的传输。无论…

2026/7/8 3:38:50
【MATLAB】嵌入式系统调试与故障排查

【MATLAB】嵌入式系统调试与故障排查

【MATLAB】嵌入式系统调试与故障排查 摘要:嵌入式系统软硬件耦合度高、运行环境复杂,极易出现数据异常、时序紊乱、程序死机、内存溢出、通信报错等各类故障。传统纯硬件调试方式依赖示波器、仿真器,排查效率低、故障复现难度大、隐性问题难以定位。针对嵌入式故障随机性强…

2026/7/8 3:33:50

月新闻