【干货满满】分享拼多多API接口到手价,用python脚本实现

简介: 拼多多开放平台提供商品价格查询API,通过“pdd.ddk.goods.detail”接口可获取商品基础价、优惠券、拼团价等信息。结合client_id、client_secret及签名机制实现身份认证,支持推广位ID获取专属优惠。本文提供完整Python实现,涵盖签名生成、接口调用与价格解析逻辑,适用于比价工具、导购平台等场景。

拼多多开放平台提供了查询商品价格及优惠信息的 API 接口,其中 “到手价” 需结合商品基础价格、优惠券、多多果园折扣等多种优惠计算。以下是基于拼多多联盟 API 的实现方案,包含签名生成、接口调用及价格解析逻辑。

一、核心接口与认证机制

1. 相关 API 接口

获取商品到手价主要依赖拼多多联盟的商品详情接口:

  • pdd.ddk.goods.detail:获取商品基础价格、优惠券、佣金、活动折扣等信息,支持直接返回优惠后价格(需联盟权限)。

    2. 认证机制

    拼多多 API 采用 client_id + client_secret + 签名 的认证体系:
  • 开发者需在拼多多开放平台注册应用,获取client_id(应用 ID)和client_secret(密钥);
  • 所有请求必须包含sign参数(通过client_secret对请求参数加密生成);
  • 接口调用需通过联盟账号授权,部分优惠信息(如专属优惠券)需传递推广位 ID。

    二、Python 脚本实现

    以下脚本实现通过拼多多 API 获取商品到手价,包含完整的签名生成、接口调用和价格解析逻辑。
    import requests import json import time import hashlib import logging from requests.exceptions import RequestException from typing import Dict, Optional
    配置日志
    logging.basicConfig(
    level=logging.INFO,
    format="%(asctime)s - %(levelname)s - %(message)s"
    )
    class PDDAPI:
    def init(self, client_id: str, client_secret: str):
    """
    初始化拼多多 API 客户端
    :param client_id: 应用 client_id
    :param client_secret: 应用 client_secret
    """
    self.client_id = client_id
    self.client_secret = client_secret
    self.base_url = "" # 拼多多 API 网关
    def _generate_sign (self, params: Dict [str, str]) -> str:
    """生成签名(拼多多 API 签名规则)"""
  1. 按参数名 ASCII 升序排序
    sorted_params = sorted(params.items(), key=lambda x: x[0])
  2. 拼接为 key=value&key=value 格式
    sign_str = "&".join([f"{k}={v}" for k, v in sorted_params])
  3. 拼接 client_secret 并 MD5 加密
    sign_str += self.client_secret
    return hashlib.md5(sign_str.encode("utf-8")).hexdigest().upper()
    def call (self, method: str, params: Optional [Dict] = None) -> Optional [Dict]:
    """
    通用 API 调用方法
    :param method: 接口方法名
    :param params: 接口参数
    :return: 接口返回的业务数据
    """
  4. 构建公共参数
    common_params = {
    "client_id": self.client_id,
    "method": method,
    "timestamp": str (int (time.time ())), # 秒级时间戳
    "format": "json",
    "v": "1.0"
    }
  5. 合并参数
    all_params = {common_params, (params or {})}
  6. 生成签名
    sign = self._generate_sign(all_params)
    all_params["sign"] = sign
  7. 发送请求
    try:
    response = requests.get(
    self.base_url,
    params=all_params,
    timeout=15
    )
    response.raise_for_status()
  8. 解析响应
    result = response.json()
    logging.info(f"API 调用成功:{method},响应:{json.dumps (result, ensure_ascii=False)[:200]}...")
  9. 处理错误(拼多多 API 错误在 error_response 节点)
    if "error_response" in result:
    error = result ["error_response"]
    logging.error (f"业务错误:{error.get ('error_msg')}(错误码:{error.get ('error_code')})")
    return None
    return result.get ("goods_detail_response", {}) # 返回业务数据节点
    except RequestException as e:
    logging.error (f"请求异常:{str (e)},接口:{method}")
    return None
    except json.JSONDecodeError:
    logging.error (f"响应格式错误:{response.text [:200]}...,接口:{method}")
    return None
    def get_item_final_price (self, goods_id: str, pid: Optional [str] = None) -> Optional [Dict]:
    """
    获取商品到手价(包含优惠券、多多果园折扣等)
    :param goods_id: 商品 ID(拼多多商品唯一标识)
    :param pid: 推广位 ID(可选,用于获取专属优惠)
    :return: 价格信息字典(含原价、到手价、优惠信息等)
    """
    method = "pdd.ddk.goods.detail"
    params = {
    "goods_id_list": json.dumps ([goods_id]), # 商品 ID 列表(JSON 字符串)
    "with_coupon": True # 包含优惠券信息
    }
    若有推广位 ID,添加参数以获取专属优惠
    if pid:
    params["pid"] = pid
    调用接口
    result = self.call(method, params)
    if not result or not result.get("goods_details"):
    return None
    解析商品信息
    goods = result["goods_details"][0]
    到手价 = 优惠后价格(已包含优惠券、折扣等)
    final_price = goods.get ("min_group_price") # 拼团最低价(单位:分,需转换为元)
    original_price = goods.get ("original_price") # 原价(单位:分)
    解析优惠券信息
    coupons = []
    if goods.get ("coupons"):
    coupons = [
    {
    "discount": c.get ("discount") / 100, # 优惠金额(分→元)
    "min_order_amount": c.get ("min_order_amount") / 100, # 门槛金额(分→元)
    "coupon_desc": c.get ("coupon_desc") # 优惠券描述
    } for c in goods ["coupons"]
    ]
    return {
    "goods_id": goods_id,
    "title": goods.get ("goods_name"), # 商品标题
    "original_price": original_price / 100 if original_price else None, # 原价(元)
    "final_price": final_price / 100 if final_price else None, # 到手价(元)
    "coupons": coupons, # 优惠券列表
    "main_image": goods.get ("goods_image_url"), # 商品主图
    "sales_count": goods.get ("sales_tip") # 销量信息(如 "已售 10 万 +")
    }
    示例调用
    if name == "main":
    替换为你的实际参数(从拼多多开放平台获取)
    CLIENT_ID = "your_client_id"
    CLIENT_SECRET = "your_client_secret"
    PID = "your_pid" # 推广位 ID(可选,若无则传 None)
    初始化客户端
    pdd_api = PDDAPI(client_id=CLIENT_ID, client_secret=CLIENT_SECRET)
    获取商品到手价(替换为实际商品 ID)
    goods_id = "1234567890" # 示例商品 ID
    price_info = pdd_api.get_item_final_price (goods_id, pid=PID)
    if price_info:
    print (f"商品标题:{price_info ['title']}")
    print (f"原价:{price_info ['original_price']:.2f} 元")
    print (f"到手价(拼团最低):{price_info ['final_price']:.2f} 元")
    print (f"销量:{price_info ['sales_count']}")
    print ("可用优惠券:")
    for coupon in price_info ["coupons"]:
    print (f"- {coupon ['coupon_desc']}(满 {coupon ['min_order_amount']} 减 {coupon ['discount']})")
    关键说明
  10. 接口与参数解析
    核心接口:pdd.ddk.goods.detail是拼多多联盟获取商品详情的核心接口,支持返回基础价格、优惠券、拼团信息等;
    goods_id:商品唯一标识,可从商品详情页 URL 提取;
    pid:推广位 ID(可选),通过联盟后台创建,用于获取专属优惠券和佣金,若无则传None。
  11. 价格单位与计算
    拼多多 API 返回的价格单位为 “分”,:
    original_price:商品原价(分);
    min_group_price:拼团最低价;
    优惠券金额(discount)和门槛(min_order_amount)同样以 “分” 为单位。
  12. 签名规则
    拼多多 API 签名生成步骤:
    收集所有请求参数(含公共参数和业务参数);
    按参数名 ASCII 码升序排序;
    拼接为key=value&key=value格式;
    末尾拼接client_secret,通过 MD5 加密并转为大写,即为sign参数。
  13. 权限与限流
    权限申请:pdd.ddk.goods.detail接口需开通拼多多联盟权限(个人 / 企业均可申请);
    限流策略:默认 QPS 为 10,超限返回429错误,需控制调用频率(如添加 1 秒间隔)。
    扩展建议
    批量查询:通过goods_id_list参数传入多个商品 ID(JSON 数组),一次获取多个商品价格;
    优惠叠加:解析coupons字段,展示 “满减 + 折扣” 等叠加优惠详情;
    推广位管理:结合pdd.ddk.pid.generate接口动态创建推广位,跟踪不同渠道的优惠效果。
    通过上述脚本,可实现拼多多商品到手价的精准获取,适用于电商比价工具、导购平台、优惠监控系统等场景。实际使用时需参考拼多多开放平台调整参数。
相关文章
|
2天前
|
JSON 运维 监控
拼多多:通过物流预警API提前识别异常订单,主动联系用户
拼多多集成物流预警API,实时监控订单状态,通过规则引擎识别延迟、丢失等异常,自动触发用户通知,提升满意度、降低售后压力。技术结合API调用、异常检测与自动化响应,实现主动式物流管理,助力构建高效、可信的电商体验。(238字)
25 0
|
5天前
|
JSON API 数据安全/隐私保护
Python采集淘宝评论API接口及JSON数据返回全流程指南
Python采集淘宝评论API接口及JSON数据返回全流程指南
|
7天前
|
人工智能 安全 API
拼多多:通过拼团API发起社交裂变,低成本获取新客
拼多多通过拼团API实现社交裂变,以低至0.5元/人的成本高效获客。其核心在于:拼团模式激发用户分享,API技术保障流畅体验,裂变系数F>1.5时形成指数传播。数学模型显示,新客呈指数增长,获客成本趋近于零。该模式为电商低成本扩张提供范本。(238字)
35 0
|
7天前
|
缓存 监控 供应链
唯品会自定义 API 自定义操作深度分析及 Python 实现
唯品会开放平台提供丰富API,支持商品查询、订单管理、促销活动等电商全流程操作。基于OAuth 2.0认证机制,具备安全稳定的特点。通过组合调用基础接口,可实现数据聚合、流程自动化、监控预警及跨平台集成,广泛应用于供应链管理、数据分析和智能采购等领域。结合Python实现方案,可高效完成商品搜索、订单分析、库存监控等功能,提升电商运营效率。
|
7天前
|
人工智能 算法 搜索推荐
拼多多:通过用户分组API实施差异化营销策略,提高客单价
拼多多通过用户分组API实现差异化营销,精准提升客单价。基于用户行为数据自动分类,针对不同群体推送专属优惠,如高频用户推高端商品、新用户送礼包、低频用户唤醒激励。结合满减、捆绑销售等策略,有效提高单笔订单金额。该策略提升营销效率,增强用户粘性,助力平台实现数据驱动的可持续增长。
31 0
|
7天前
|
算法 API 数据安全/隐私保护
拼多多 item_search_best 接口深度分析及 Python 实现
拼多多开放平台 item_search_best 接口是用于精准商品搜索的核心接口,按商品销量、价格、评分及商家资质等多维度排序,适用于爆款挖掘、竞品分析与市场监控。本文详解其接口特性、参数配置、签名生成逻辑、返回结构及 Python 实现方案。
|
7天前
|
缓存 监控 供应链
京东自定义 API 操作深度分析及 Python 实现
京东开放平台提供丰富API接口,支持商品、订单、库存等电商全链路场景。通过自定义API组合调用,可实现店铺管理、数据分析、竞品监控等功能,提升运营效率。本文详解其架构、Python实现与应用策略。
缓存 监控 供应链
25 0
缓存 监控 数据挖掘
25 0
JSON 监控 API
24 0

推荐镜像

更多