当前位置:首页 > PHP > 正文内容

php接拼多多的多多进宝,实现淘客功能

陈杰2年前 (2021-09-24)PHP4132

在项目中有一个板块是接拼多多的多多进宝,实现多多客的功能,主要就是拉取商品列表,拉取商品详情,生成推广链接。


composer require justmd5/duoduoke-sdk


加载一下用到的sdk。


生成拼多多需要用到的config配置文件并new DuoDuoke()


use Justmd5\DuoDuoKe\DuoDuoKe;


命名空间


private function get_pdd_config()
{
   $config   = ConfigModel::get_config();
   $config   = ["key" => $config["pdd_appid"], "secret" => $config["pdd_appkey"], "debug" => true];
   $duoduoke = new DuoDuoKe($config);
   return $duoduoke;
}

商品列表的代码,附带一个商品搜索。有keyword参数就是有搜索条件,很好理解。

/**
* 拼多多商品列表
*/
public function shop_list_pdd(Request $request)
{
   $id      = (int)$request->input("id");
   $keyword = trim($request->input("keyword"));
   if ($keyword and $keyword != '') {
       //商品搜索
       $duoduoke = $this->get_pdd_config();
       $params   = [
           "keyword"             => $keyword,
           "pid"                 => "24830338_218851528",//22665395_214250951
           "custom_parameters"   => '{"uid":"1","uid2":' . $request->get("uid") . '}',
           "page"                => intval($request->get("offset") / $request->get("count") + 1),
           "page_size"           => 20
       ];

       $data = $duoduoke->request("pdd.ddk.goods.search", $params);
       if (isset($data["goods_search_response"]))
           return self::returnMsg($data["goods_search_response"]["goods_list"]);
       else
           return self::errorMsg("没有找到此类商品");
   }
   $cate = ShopCateModel::get_by_id($id);
   if (isset($cate)) {
       $duoduoke = $this->get_pdd_config();

       if ($cate["tag"] == "channel_type") {
           $params = ["channel_type" => $cate["cate_id"], "offset" => $request->get("offset")];
       } else {
           $params = ["activity_tags" => [$cate["cate_id"]], "offset" => $request->get("offset")];
       }
       $data = $duoduoke->request("pdd.ddk.goods.recommend.get", $params);
       if (isset($data["goods_basic_detail_response"])) {
           return self::returnMsg($data["goods_basic_detail_response"]["list"]);
       }
       return self::errorMsg("发生了错误");
   }
   return self::errorMsg("没有找到该分类");
}


商品详情的接口

public function shop_detail_pdd(Request $request)
{
   $id       = $request->input("id");
   $duoduoke = $this->get_pdd_config();
   $data     = $duoduoke->request("pdd.ddk.goods.detail", ["goods_sign" => $id]);
   if (isset($data["goods_detail_response"]))
       return self::returnMsg($data["goods_detail_response"]["goods_details"][0]);
   return self::errorMsg("没有找到该商品");
}



购买商品,生成推广链接的接口

  public function shop_buy_pdd(Request $request)
   {
       $id       = $request->input("id");
       $duoduoke = $this->get_pdd_config();

       $data = $duoduoke->request("pdd.ddk.goods.promotion.url.generate", [
               //pdd推广位
               "p_id"                => "24830338_218851528",//22665395_214250951
               "generate_schema_url" => true,
//                "generate_authority_url" => true,
               "goods_sign_list"     => [$id],
               "custom_parameters"   => '{"uid":"1","uid2":' . $request->get("uid") . '}'
           ]
       );

       if (isset($data["goods_promotion_url_generate_response"])) {
           return self::returnMsg($data["goods_promotion_url_generate_response"]["goods_promotion_url_list"][0]);
       }
       return self::errorMsg("生成优惠口令错误");
   }


注意有一个

//                "generate_authority_url" => true,

我把他屏蔽了,这里如果是第一次使用接口的话需要备案一个账号,把这个参数打开,然后用自己打开这个链接,拼多多会自动弹出一个授权备案的页面,点击同意授权就行了,后面普通用户就不用了


image.png

扫描二维码至手机访问

扫描二维码推送至手机访问。

版权声明:本文由何烦过虎溪发布,如需转载请注明出处。

转载请注明出处:http://95shouyou.com/?id=46

标签: 多多进宝
分享给朋友:

相关文章

七牛云删除文件和批量删除文件

在项目中因为用到了七牛云的对象存储,价格公道,也降低我们的项目维护成本。但是在实际使用过程中,例如用户换了头像我们就需要删除用户之前的头像,以降低我们的存储成本。所以研究了一下七牛云的删除单个文件和批...

Lumen框架报错Class session does not exist

Lumen框架报错Class session does not exist

由于lumen框架是为速度而生的 Laravel 框架,所以移除了session的支持,虽然在ide中代码提示可以敲出Session::put()方法出来,但是最终还是提示的是Class sessio...

Laravel带条件查询多个count

Laravel带条件查询多个count

在一个数据表中,我们需要用到聚合函数count来查询符合条件的总数。举例一个场景:我们有一个帖子,这个帖子可以分别被好中差评,好中差评记录用一个单独的记录表来存储。如果用户点击好评,那么该帖子作者的经...

Laravel记录SQL操作日志的方法

Laravel记录SQL操作日志的方法

在laravel中我们有一个需求就是,涉及到sql操作的update,insert,delete操作的语句,我们都要写一个日志来记录一下说说方法吧。在项目目录app/Providers/AppServ...

lavel对接个推别名推送

lavel对接个推别名推送

新项目采用uniapp开发,需要用到推送功能,之前接过极光,其中的一些坑都踩过了,但是unipush用的是个推的推送,那就只有重写踩坑了。composer  require&nbs...

laravel的Observer观察者模式模型事件实战

laravel的orm特别好用,特别是observer观察者模式,可以在不更改原有业务代码的情况下做到切入编程,有点类似于我们之前常用的钩子函数。下面就是我们深入observer观察者模式的实战代码现...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。