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

拼多多联盟-使用pid和custom_parameters进行备案_第1张图片
前言:
最近做了个微信小程序:易省多,内容主要是推广第三方商城商品,依托于国内各大知名平台,如拼多多、京东、苏宁、唯品会、美团等,提供收集海量隐藏优惠券,有些商品的优惠券额度还是很大的。

拼多多联盟-使用pid和custom_parameters进行备案_第2张图片

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

如果需要用到custom_parameters来标记用户进行跟单,那么pid和custom_parameters,每一组都需要进行备案,备案一次即可无需重复备案。
拼多多联盟-使用pid和custom_parameters进行备案_第4张图片

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

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

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

拼多多联盟-使用pid和custom_parameters进行备案_第5张图片

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);
  }
}

返回结果
拼多多联盟-使用pid和custom_parameters进行备案_第6张图片
前端解析获取字段app_id和page_path,即可跳转拼多多授权,授权完成即备案成功。

拼多多联盟-使用pid和custom_parameters进行备案_第7张图片

你可能感兴趣的:(微信小程序,CPS联盟推广,java,前端)