调用拼多多开放平台API获取店铺所有商品列表

简介: 本文详解拼多多开放平台商品列表API(pdd.goods.list.get)调用方法,涵盖授权流程、签名生成、关键参数、分页处理及响应解析,助力商家/开发者高效获取全量商品数据,适用于商品管理、数据分析等场景。(239字)


对于在拼多多平台上运营店铺的商家或开发者而言,高效地管理和分析店铺商品至关重要。拼多多开放平台提供了丰富的API接口,其中商品API模块就包含了获取店铺商品列表的功能。本文将详细介绍如何调用此API接口。

一、接口概述
接口名称:商品列表查询接口(具体名称请以官方最新文档为准,例如 pdd.goods.list.get)。
功能描述:用于查询店铺下所有商品的列表信息(包括已上架、待审核、已下架等状态)。
请求方式:通常为 HTTP POST。
请求地址:https://api.pinduoduo.com/router (此为示例,实际地址请参考官方文档)。
是否需要授权:是,需要OAuth 2.0的 access_token。
二、调用前准备
成为开发者:在拼多多开放平台注册成为开发者,创建应用。
获取应用密钥:创建应用后,获得 client_id (应用标识) 和 client_secret (应用密钥)。
店铺授权:引导店铺主通过OAuth 2.0授权流程授权你的应用访问其店铺数据。授权成功后,你会获得该店铺的 access_token(访问令牌)和 refresh_token(刷新令牌)。access_token 是调用商品列表接口的凭证,通常有效期为24小时。
三、请求参数详解
调用商品列表接口通常需要传递以下关键参数:

type:固定值,表示要调用的API方法名(如 pdd.goods.list.get)。
client_id:你的应用ID。
access_token:通过授权流程获取到的店铺访问令牌。
timestamp:请求发起时的13位时间戳(毫秒)。
data_type:响应数据格式,通常为 JSON。
version:API版本号(如 V1)。
page:查询的页码(从1开始)。
page_size:每页返回的商品数量(最大值通常有限制,如100)。
(可选) goods_status:商品状态筛选(如 1-已上架, 2-待审核, 3-已下架等)。
(可选) outer_id:商品外部编码(商家编码)。
(可选) goods_name:商品名称关键字模糊搜索。
(可选) order_by:排序字段(如 create_time-创建时间, sold_quantity-销量等)。
(可选) sort_by:排序方式(DESC-倒序, ASC-正序)。
sign:重要!请求签名。使用 client_secret 和所有请求参数(按特定规则排序并拼接)生成的签名,用于验证请求合法性。签名算法通常是 MD5 或 HMAC-SHA256。
四、签名生成(示例 - 概念)
签名是保证请求安全的关键步骤。伪代码逻辑如下:

1. 获取所有请求参数(不包括 sign 本身),剔除空值参数

params = {k: v for k, v in request_params.items() if v is not None and k != 'sign'}

2. 将参数按键名升序排序

sorted_params = sorted(params.items(), key=lambda x: x[0])

3. 拼接键值对 (key + value)

concatenated_str = ''.join([k + str(v) for k, v in sorted_params])

4. 在拼接好的字符串前后加上 client_secret

sign_str = client_secret + concatenated_str + client_secret

5. 计算摘要(如 MD5)

import hashlib
sign = hashlib.md5(sign_str.encode('utf-8')).hexdigest().upper() # 示例用MD5,实际可能用其他算法

注意:务必严格按照官方文档描述的签名算法和步骤执行。

五、请求示例 (Python 伪代码)
import requests
import time
import hashlib

替换为你的实际信息

client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
access_token = "YOUR_ACCESS_TOKEN"
shop_id = "YOUR_SHOP_ID" # 可能在某些接口需要

基础参数

api_url = "https://api.pinduoduo.com/router"
api_method = "pdd.goods.list.get"
timestamp = str(int(time.time() * 1000)) # 13位毫秒时间戳
data_type = "JSON"
version = "V1"
page = 1
page_size = 100 # 假设最大100

构建基础请求参数字典 (不含 sign)

base_params = {
"type": api_method,
"client_id": client_id,
"access_token": access_token,
"timestamp": timestamp,
"data_type": data_type,
"version": version,
"page": page,
"page_size": page_size
}

生成签名 (假设官方要求 MD5 签名)

... 这里实现上述的签名逻辑,得到 sign_value ...

sign_value = generate_sign(base_params, client_secret) # 假设的函数

添加签名到请求参数

base_params["sign"] = sign_value

发送 POST 请求

response = requests.post(api_url, data=base_params)

处理响应

if response.status_code == 200:
data = response.json()

# 解析 data 中的商品列表和分页信息
goods_list = data.get("goods_list", [])
total_count = data.get("total_count", 0)
# ... 处理商品数据 ...

else:
print(f"请求失败,状态码:{response.status_code}, 响应:{response.text}")

六、响应数据结构(示例)
成功的响应通常包含以下关键信息:

{
"code": 0, // 0 表示成功,非0为错误码
"msg": "Success", // 成功或错误信息
"result": {
"goods_list": [ // 商品列表数组
{
"goods_id": 1234567890, // 商品ID
"goods_name": "示例商品名称", // 商品名称
"goods_image_url": "https://...", // 商品主图
"market_price": 10000, // 市场价 (单位:分)
"group_price": 9900, // 拼团价 (单位:分)
"sold_quantity": 999, // 销量
"goods_status": 1, // 商品状态 (1:已上架, ...)
"outer_id": "SKU123", // 商家外部编码
"create_time": 1672531200000, // 创建时间 (毫秒时间戳)
"update_time": 1672531200000 // 更新时间 (毫秒时间戳)
// ... 其他可能字段 ...
},
// ... 更多商品 ...
],
"total_count": 150, // 符合条件的商品总数
"current_page": 1, // 当前页码
"page_size": 100 // 每页数量
}
}
七、分页处理
由于店铺商品数量可能很多,接口通常采用分页返回。开发者需要:

在请求中指定 page 和 page_size。
在响应中获取 total_count(总商品数)和 current_page(当前页)。
计算总页数:total_pages = (total_count + page_size - 1) // page_size (向上取整)。
循环请求,从 page=1 开始,直到 page > total_pages 或 current_page * page_size >= total_count(或根据响应是否有下一页标识)为止。
八、注意事项
官方文档:一切以拼多多开放平台官方文档为准,接口名称、参数、签名算法、返回字段可能更新。
权限范围:确保你的应用申请了获取商品列表所需的API权限。
access_token 有效期:access_token 会过期,需通过 refresh_token 刷新。接口调用失败时,注意检查 access_token 是否失效。
请求频率限制:拼多多API通常有严格的调用频率限制(QPS),超出限制会被限流或封禁。合理设计调用策略,必要时使用缓存。
错误处理:仔细处理各种错误码(如令牌失效、参数错误、频率超限、系统错误等)。
HTTPS:务必使用HTTPS协议调用接口。
敏感信息:妥善保管 client_secret 和 access_token,不要泄露。
商业用途:如需用于商业环境,确保遵守拼多多平台规则和法律法规。
九、总结
通过调用拼多多开放平台的商品列表查询接口,开发者可以高效地批量获取店铺商品数据,为商品管理、数据分析、库存同步等应用场景提供强大的技术支持。关键在于理解授权流程、掌握签名算法、正确处理分页以及遵守平台调用规范。希望本文能帮助开发者快速上手这一功能。

再次强调:本文基于对电商平台API通用模式的认知撰写,具体实现细节请务必以拼多多开放平台最新、官方的API文档和技术规范为准。

相关文章
|
8天前
|
人工智能 安全 Linux
【OpenClaw保姆级图文教程】阿里云/本地部署集成模型Ollama/Qwen3.5/百炼 API 步骤流程及避坑指南
2026年,AI代理工具的部署逻辑已从“单一云端依赖”转向“云端+本地双轨模式”。OpenClaw(曾用名Clawdbot)作为开源AI代理框架,既支持对接阿里云百炼等云端免费API,也能通过Ollama部署本地大模型,完美解决两类核心需求:一是担心云端API泄露核心数据的隐私安全诉求;二是频繁调用导致token消耗过高的成本控制需求。
5158 9
|
16天前
|
人工智能 JavaScript Ubuntu
5分钟上手龙虾AI!OpenClaw部署(阿里云+本地)+ 免费多模型配置保姆级教程(MiniMax、Claude、阿里云百炼)
OpenClaw(昵称“龙虾AI”)作为2026年热门的开源个人AI助手,由PSPDFKit创始人Peter Steinberger开发,核心优势在于“真正执行任务”——不仅能聊天互动,还能自动处理邮件、管理日程、订机票、写代码等,且所有数据本地处理,隐私完全可控。它支持接入MiniMax、Claude、GPT等多类大模型,兼容微信、Telegram、飞书等主流聊天工具,搭配100+可扩展技能,成为兼顾实用性与隐私性的AI工具首选。
21095 114
|
7天前
|
JavaScript Linux API
保姆级教程,通过GACCode在国内使用Claudecode、Codex!
保姆级教程,通过GACCode在国内使用Claudecode、Codex!
4636 1
保姆级教程,通过GACCode在国内使用Claudecode、Codex!
|
12天前
|
人工智能 安全 前端开发
Team 版 OpenClaw:HiClaw 开源,5 分钟完成本地安装
HiClaw 基于 OpenClaw、Higress AI Gateway、Element IM 客户端+Tuwunel IM 服务器(均基于 Matrix 实时通信协议)、MinIO 共享文件系统打造。
8061 7
|
14天前
|
人工智能 JavaScript API
保姆级教程:OpenClaw阿里云/本地部署配置Tavily Search skill 实时联网,让OpenClaw“睁眼看世界”
默认状态下的OpenClaw如同“闭门造车”的隐士,仅能依赖模型训练数据回答问题,无法获取实时新闻、最新数据或训练截止日期后的新信息。2026年,激活其联网能力的最优方案是配置Tavily Search技能——无需科学上网、无需信用卡验证,每月1000次免费搜索额度完全满足个人需求,搭配ClawHub技能市场,还能一键拓展天气查询、邮件管理等实用功能。
8062 5

热门文章

最新文章