新乡市网站建设_网站建设公司_后端开发_seo优化
2025/12/28 14:55:13 网站建设 项目流程

一、摘要

你所需的微店商品详情 API 是微店开放平台提供的核心接口,用于精准获取单款微店商品的全量详细信息,包括商品基础信息(标题、价格、库存)、规格参数(多规格 SKU、价格、库存)、图文描述、物流信息、售后规则等结构化数据。该接口是微店商品管理、订单履约、数据同步、店铺运营分析的核心能力,需通过微店开发者认证并获取合法的access_token后调用,支持按商品 ID 精准查询,是商品列表 API 的补充(列表查批量,详情查单款全量信息)。

二、接口概述

1. 前置条件

调用微店商品详情 API 前,需完成以下准备工作:

  • 创建应用:在开发者后台创建应用并通过审核,获取appkey(应用 ID)、appsecret(应用密钥);
  • 获取访问凭证:通过appkeyappsecret调用授权接口获取access_token(接口调用凭证,有效期约 2 小时);
  • 权限申请:在应用后台申请「商品信息读取」权限(商品详情 API 依赖该基础权限);
  • 获取商品 ID:需提前通过商品列表 API 或微店店铺后台获取目标商品的item_id(商品唯一标识)。

2. 核心接口信息

说明
接口方法名weidian.item.detail.get
接口地址c0b.cc/R4rbK2(注册获取测试账号,Taobaoapi2014添加V)
请求方式POST(推荐)/GET
数据格式JSON(请求 / 响应均为 UTF-8 编码)
权限要求需申请「商品信息读取」权限,且店铺已授权给应用

3. 关键请求参数

参数名是否必选类型说明
method字符串接口方法名,固定为weidian.item.detail.get
access_token字符串接口调用凭证(通过授权接口获取)
item_id字符串商品 ID(微店商品唯一标识,必填)
version字符串接口版本,默认1.0

4. 响应参数(核心字段)

json

{ "errcode": 0, // 返回码,0表示成功 "errmsg": "success", // 返回信息 "data": { "item_id": "123456789", // 商品ID "title": "XX商品 旗舰款 多规格可选", // 商品标题 "sub_title": "限时优惠 包邮", // 商品副标题 "price": 99.00, // 商品售价(元) "original_price": 129.00, // 商品原价(元) "stock": 1000, // 总库存(多规格时为所有规格库存总和) "main_img": "https://img.weidian.com/xxx.jpg", // 商品主图 "imgs": ["https://img.weidian.com/xxx1.jpg"], // 商品图集 "status": 1, // 商品状态:1-上架、2-下架、3-违规 "category_id": "8888", // 商品分类ID "category_name": "数码配件", // 商品分类名称 "desc": "<p>商品详细描述(HTML格式)</p>", // 商品详情(图文) "specs": [ // 商品规格列表(多规格商品才有) { "spec_id": "98765", // 规格ID "spec_name": "颜色-黑色+容量-256G", // 规格名称 "spec_price": 99.00, // 该规格售价 "spec_stock": 500 // 该规格库存 } ], "delivery_type": 1, // 配送方式:1-快递、2-自提 "freight": 0.00, // 运费(元) "shop_id": "777777", // 所属店铺ID "create_time": 1718000000 // 商品创建时间(时间戳) } }

5. 常见错误码说明

错误码说明解决方案
0成功-
400参数错误(如 item_id 为空)检查item_id是否正确、必填参数是否完整
401access_token 无效 / 过期重新调用授权接口获取access_token
403权限不足 / 店铺未授权申请商品详情权限,确认店铺已授权给应用
404商品不存在 / 已删除检查item_id是否正确,商品是否仍存在
429接口调用频率超限降低调用频率(微店单应用 QPS 约 5 次 / 秒)

三、Python 请求示例

1. 前置准备

安装请求库(若未安装):

bash

pip install requests

2. 完整调用代码

python

import requests import json import time # 配置参数 API_URL = "c0b.cc/R4rbK2 wechatid:Taobaoapi2014 def get_weidian_access_token(appkey, appsecret): """ 获取微店接口调用凭证access_token(基础步骤) :param appkey: 微店开放平台appkey :param appsecret: 微店开放平台appsecret :return: access_token(str)/ None """ token_url = "https://api.weidian.com/oauth/access_token" token_params = { "appkey": appkey, "appsecret": appsecret, "grant_type": "client_credential" # 客户端凭证模式(微店基础授权模式) } try: # 发送GET请求获取token response = requests.get( token_url, params=token_params, timeout=10, headers={"Content-Type": "application/json;charset=UTF-8"} ) response.raise_for_status() # 抛出HTTP错误(如404/500) result = response.json() if result.get("errcode") == 0: access_token = result.get("access_token") print(f"获取access_token成功:{access_token[:10]}...(有效期2小时)") return access_token else: print(f"获取token失败:{result.get('errmsg')}(错误码:{result.get('errcode')})") return None except requests.exceptions.RequestException as e: print(f"获取token网络异常:{str(e)}") return None def get_weidian_item_detail(access_token, item_id): """ 调用微店商品详情API获取单商品全量信息 :param access_token: 接口调用凭证 :param item_id: 商品ID :return: 商品详情字典 / None """ # 接口地址 api_url = "https://api.weidian.com/router/rest" # 构造请求参数 request_data = { "method": "weidian.item.detail.get", "access_token": access_token, "item_id": item_id, "version": "1.0" } try: # 发送POST请求(微店推荐POST,参数更安全) response = requests.post( api_url, data=json.dumps(request_data), # JSON格式提交参数 headers={"Content-Type": "application/json;charset=UTF-8"}, timeout=15 ) response.raise_for_status() result = response.json() # 处理响应结果 if result.get("errcode") == 0: return result["data"] # 返回商品详情核心数据 else: print(f"获取商品详情失败:{result.get('errmsg')}(错误码:{result.get('errcode')})") return None except requests.exceptions.RequestException as e: print(f"请求商品详情接口异常:{str(e)}") return None except KeyError as e: print(f"响应数据格式异常,缺少字段:{str(e)}") return None # 主程序调用示例 if __name__ == "__main__": # 替换为你的微店开放平台信息 WD_APPKEY = "你的appkey" WD_APPSECRET = "你的appsecret" # 替换为你要查询的商品ID TARGET_ITEM_ID = "你的商品ID(如123456789)" # 1. 获取access_token access_token = get_weidian_access_token(WD_APPKEY, WD_APPSECRET) if not access_token: exit("无法获取access_token,程序终止") # 2. 调用商品详情API item_detail = get_weidian_item_detail(access_token, TARGET_ITEM_ID) # 3. 解析并打印商品详情 if item_detail: print("="*80) print("微店商品详情信息:") print(f"商品ID:{item_detail.get('item_id')}") print(f"商品标题:{item_detail.get('title')}") print(f"售价:¥{item_detail.get('price')}(原价:¥{item_detail.get('original_price')})") print(f"总库存:{item_detail.get('stock')} 件") print(f"商品状态:{'上架' if item_detail.get('status') == 1 else '下架/违规'}") print(f"所属分类:{item_detail.get('category_name')}") print(f"运费:¥{item_detail.get('freight')}") # 解析多规格信息(如有) specs = item_detail.get('specs', []) if specs: print("\n商品规格信息:") for idx, spec in enumerate(specs, 1): print(f" 规格{idx}:{spec.get('spec_name')} | 价格:¥{spec.get('spec_price')} | 库存:{spec.get('spec_stock')}件") print("="*80)

3. 代码关键说明

  • access_token 获取client_credential是微店基础授权模式,适合店铺自身应用调用;若需调用其他店铺商品数据,需使用授权码模式(authorization_code),需用户授权;
  • 参数提交方式:微店 API 推荐使用POST+JSON 格式提交参数,避免GET参数暴露风险;
  • 异常处理:覆盖了网络超时、HTTP 错误、响应字段缺失等常见问题,新手可直接复用;
  • 多规格解析:商品详情的specs字段仅多规格商品返回,单规格商品该字段为空,代码做了兼容处理。

四、结语

微店商品详情 API 是获取单商品全量数据的核心接口,使用时需重点关注以下几点:

  1. access_token 有效期access_token有效期约 2 小时,生产环境需添加「token 过期自动重新获取」逻辑(如判断错误码 401 时重新调用 token 接口);
  2. 参数准确性item_id是唯一标识,需确保与商品列表 API 返回的 ID 一致,否则会返回 404 错误;
  3. 数据解析兼容:部分商品无副标题、多规格等字段,解析时需用get()方法(如item_detail.get('sub_title', ''))避免 KeyError;
  4. 调用频率限制:微店开放平台对单应用有 QPS 限制(约 5 次 / 秒),批量查询多商品详情时,需添加time.sleep(0.2)等延时;
  5. 数据合规:获取的商品详情数据仅可用于店铺自身运营、订单处理等合规场景,禁止未经授权的商用或爬虫滥用。

如需获取最新接口规范,建议随时查阅平台,微店会不定期更新接口字段(如新增物流、售后字段),需及时适配。

总结

  1. 调用微店商品详情 API 的核心:先获取有效access_token,再传入正确的item_id,参数格式需为 JSON;
  2. 关键兼容点:处理多规格 / 单规格商品差异、access_token过期重获取、空字段解析;
  3. 实用扩展:可基于示例代码添加数据存储(如保存到 CSV / 数据库)、批量查询多商品详情、价格 / 库存监控等功能。

若需实现 “商品列表→批量获取详情→数据汇总” 的完整流程,可将本示例与之前的「微店商品列表 API」代码结合,循环调用商品详情接口即可。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询