拼多多联盟-使用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,即可跳转拼多多授权,授权完成即备案成功。

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

悟空码字

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

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

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

打赏作者

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

抵扣说明:

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

余额充值