拼多多联盟-使用pid和custom_parameters进行备案

在这里插入图片描述
前言:
最近做了个微信小程序:易省多,内容主要是推广第三方商城商品,依托于国内各大知名平台,如拼多多、京东、苏宁、唯品会、美团等,提供收集海量隐藏优惠券,有些商品的优惠券额度还是很大的。

在这里插入图片描述

内容:
拼多多升级了API接口,为提升各个渠道搜索、推荐场景的个性化效果,多多进宝官方将针对api接口进行升级,需要渠道对如下接口进行备案,未进行上述调整的渠道可能会出现用户搜索、推荐报错(错误码sub_code:60001)。当然,因为没有使用到custom_parameters来标记用户进行跟单,所以易省多小程序里的拼多多不需要授权。
在这里插入图片描述
如果没有使用到custom_parameters来标记用户进行跟单的话,只要对pid进行备案即可,这样可以手动调用备案接口将pid备案一次,之后调用任何接口就写死这个pid就行了。

如果需要用到custom_parameters来标记用户进行跟单,那么pid和custom_parameters,每一组都需要进行备案,备案一次即可无需重复备案。
在这里插入图片描述

备案:
官方提供了两种备案接口
①绑定备案接口:
pdd.ddk.rp.prom.url.generate
优点:如果做的是微信小程序,那么就可以用这个接口来备案
缺点:处理麻烦,需要在下单流程外,即进入商品详情页前需独立调用进行备案
②单品生链接口
pdd.ddk.goods.promotion.url.generate
pdd.ddk.oauth.goods.prom.url.generate
优点:不影响下单流程,新增入参generate_authority_url,则用户在访问商品详情页前需进行备案,备案成功后即可正常跳转到商品详情页
缺点:次备案方式不支持在微信小程序里接入
由于做的是微信小程序,因此本文只讨论第一种备案方式。

接口文档
联盟官方很友好的为我们准备了SDK,因此只需要引入SDK,写少量的代码便可实现。

备案前需调用接口查询是否备案,防止重复备案,接口文档

在这里插入图片描述

public JsonModel pddAuthorityQuery(String userUuid) {
  PddDdkMemberAuthorityQueryRequest param = new PddDdkMemberAuthorityQueryRequest();
  StringBuffer sb = new StringBuffer(thirdPlat.getPDD_PID());
  param.setPid(sb.insert(8,"_").toString());
  Map<String,Object> customParameters = new HashMap<>();
  customParameters.put("uid",userUuid);
  param.setCustomParameters(JSON.toJSONString(customParameters));
  try {
      PddDdkMemberAuthorityQueryResponse response = client.syncInvoke(param);
      String data = JsonUtil.transferToJson(response);
      logger.info("pddAuthorityQuery:{}", data);
      JSONObject jsonObject = JSONObject.parseObject(data);
      if (jsonObject.containsKey("error_response")) {
          JSONObject resObject = jsonObject.getJSONObject("error_response");
          return JsonModel.toFail(resObject);
      } else {
          JSONObject resObject = jsonObject.getJSONObject("authority_query_response");
          return JsonModel.toSuccess(resObject);
      }
  } catch (Exception e) {
      e.printStackTrace();
      return JsonModel.toFail(null);
  }
}

开始备案,调用pdd.ddk.rp.prom.url.generate接口,参数channel_type固定传入10,由于我们是需要跳转拼多多小程序授权的,因此generate_we_app固定传true,传入p_id_list和custom_parameters,代码如下

public JsonModel pddPromUrlGenerate(PddDdkRpPromUrlGenerateRequest param, String userUuid) {
  StringBuffer sb = new StringBuffer(thirdPlat.getPDD_PID());
  List<String> pidList = new ArrayList<>(1);
  pidList.add(sb.insert(8,"_").toString());
  param.setPIdList(pidList);
  param.setChannelType(10);
  param.setGenerateWeApp(true);
  Map<String,Object> customParameters = new HashMap<>();
  customParameters.put("uid",userUuid);
  param.setCustomParameters(JSON.toJSONString(customParameters));
  try {
      PddDdkRpPromUrlGenerateResponse response = client.syncInvoke(param);
      String data = JsonUtil.transferToJson(response);
      logger.info("pddPromUrlGenerate:{}", data);
      JSONObject jsonObject = JSONObject.parseObject(data);
      if (jsonObject.containsKey("error_response")) {
          JSONObject resObject = jsonObject.getJSONObject("error_response");
          return JsonModel.toFail(resObject);
      } else {
          JSONObject resObject = jsonObject.getJSONObject("rp_promotion_url_generate_response");
          return JsonModel.toSuccess(resObject);
      }
  } catch (Exception e) {
      e.printStackTrace();
      return JsonModel.toFail(null);
  }
}

返回结果
在这里插入图片描述
前端解析获取字段app_id和page_path,即可跳转拼多多授权,授权完成即备案成功。

在这里插入图片描述

<think>嗯,用户的问题是关于拼多多多多客联盟的完整方案代码,需要涉及查询商品、筛选有优惠券的商品、绑定推广位、生成小程序路径以及推广收益的实现。首先,我需要理清这些步骤之间的流程,然后结合提供的引用内容,看看如何组织回答。 首先,用户提到的引用中有几个关键点。引用[3]提到使用pdd.ddk.goods.searchpdd.ddk.goods.promotion.url.generate这两个接口,这应该是查询商品生成推广链接的关键。引用[5]提到了微信小程序跳转拼多多领券页面,需要生成小程序路径,这可能涉及到如何在小程序中调用这些接口。另外,引用[1][2]提供了商品详情优惠券相关的接口参数,比如优惠券金额、剩余数量等,这些在筛选有优惠券的商品时需要用到。 接下来,我需要分步骤来解答用户的问题。首先是查询商品,这里需要用pdd.ddk.goods.search接口,按照参数如关键词、是否有优惠券来筛选。然后是筛选带优惠券的商品,根据返回结果中的has_coupon字段来判断。绑定推广位需要创建推广位ID,这可能涉及另一个接口,比如pdd.ddk.cms.prom.url.generate。生成小程序路径则需要使用pdd.ddk.goods.promotion.url.generate接口,并指定小程序相关的参数,如generate_weapp_webviewforce_schema_launch。 在代码示例部分,需要展示如何调用这些接口,处理返回的数据,并生成推广链接。比如,在Python中使用requests库发送请求,处理JSON响应,提取所需的信息。同时,用户可能需要了解如何在小程序中集成这些功能,比如使用web-view组件跳转链接,或者通过小程序API处理参数。 另外,用户可能关心的推广收益订单跟踪,需要提到如何通过订单查询接口(如pdd.ddk.order.list.get)来获取推广订单的数据,计算佣金。这里要确保用户理解推广位ID在跟踪中的重要性,以及如何正确配置回调地址来接收订单通知。 还要注意引用中提到的细节,比如优惠券的剩余数量、有效期,这些在筛选时可能需要进一步处理,确保优惠券有效。此外,引用[4][5]提到的小程序入口跳转方式,可能需要指导用户如何在小程序中设置路径,使用生成的URL进行跳转。 最后,需要提醒用户注意接口权限、参数的正确性以及错误处理,比如处理API返回的错误码,确保推广位ID正确绑定。可能还需要提到测试环境生产环境的区别,建议用户先在测试环境验证功能,再上线使用。 总结来说,回答需要结构清晰,分步骤讲解每个环节的实现方法,结合代码示例引用中的接口信息,确保用户能够按照步骤操作,同时注意潜在的问题解决方案。此外,生成的相关问题可以帮助用户进一步了解优化方法数据安全等内容,提升他们的应用能力。</think>### 拼多多多多客联盟推广方案完整实现步骤 #### 一、核心流程与接口调用 1. **商品查询与筛选** - 使用`pdd.ddk.goods.search`接口筛选带优惠券商品,参数设置`has_coupon=true`[^3] - 解析返回字段: ```json { "goods_name": "商品标题", "has_coupon": true, "coupon_discount": 50, // 优惠券面额 "min_group_price": 1000 // 单位:分 } ``` 筛选逻辑:`if item['has_coupon'] and item['coupon_discount'] > 0`[^1] 2. **绑定推广位** - 通过API创建推广位:`pdd.ddk.cms.prom.url.generate` - 返回`custom_parameters`字段用于订单跟踪 3. **生成小程序路径** ```python def generate_promotion_url(goods_id, pid): params = { "goods_id_list": [goods_id], "p_id": pid, "generate_weapp_webview": True, "force_schema_launch": True } response = requests.post( "https://gw-api.pinduoduo.com/api/router", json={ "type": "pdd.ddk.goods.promotion.url.generate", "client_id": "APP_KEY", "timestamp": int(time.time()), "data": params } ) return response.json()['goods_promotion_url_generate_response']['goods_promotion_url_list'][0]['we_app_page_path'] ``` 返回示例:`pages/goods_detail?goods_id=123`[^5] #### 二、完整代码框架(Python) ```python import requests class PddPromotion: def __init__(self, app_key, app_secret): self.base_url = "https://gw-api.pinduoduo.com/api/router" self.app_key = app_key self.app_secret = app_secret def search_goods(self, keyword): params = { "type": "pdd.ddk.goods.search", "keyword": keyword, "with_coupon": True, "page_size": 50 } return self._call_api(params)['goods_search_response']['goods_list'] def create_promotion(self, goods_id, pid): params = { "type": "pdd.ddk.goods.promotion.url.generate", "goods_id_list": [goods_id], "p_id": pid, "generate_weapp_webview": True } return self._call_api(params) def _call_api(self, params): params.update({ "client_id": self.app_key, "timestamp": int(time.time()), "data_type": "JSON" }) sign = self._generate_sign(params) params["sign"] = sign return requests.post(self.base_url, json=params).json() def _generate_sign(self, params): # 签名算法实现(参考官方文档) pass ``` #### 三、小程序集成关键点 1. **web-view组件跳转** ```html <web-view src="{{promotionUrl}}"></web-view> ``` 通过`wx.navigateToMiniProgram`打开拼多多小程序[^5] 2. **订单跟踪与分佣** - 使用`pdd.ddk.order.list.get`查询推广订单 - 佣金计算:$$佣金=成交金额 \times 佣金比例$$ 佣金比例范围通常为5%-20% #### 四、注意事项 1. 必须完成开发者资质认证并获取`client_id``client_secret` 2. 推广位ID(`p_id`)需要提前在多多客后台创建 3. 小程序需关联拼多多开放平台账号[^4] 4. 优惠券有效期需在代码中校验: ```python if coupon['coupon_end_time'] < current_timestamp: return False ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

悟空码字

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值