php接淘宝联盟,阿里妈妈,实现淘宝客功能
需要用到的sdk在淘宝开放平台自行下载
生成淘宝需要用到的配置文件
private function get_tb_config()
{
$config = ConfigModel::get_config();
require_once base_path() . '/extend/taobaoke/TopSdk.php';
$top = new \TopClient($config["tb_appid"], $config["tb_appkey"]);
return $top;
}
获取商品列表接口,同时可以用到搜索商品的功能
public function shop_list_tb(Request $request)
{
$id = (int)$request->input("id");
$keyword = trim($request->input("keyword"));
if ($keyword and $keyword != '') {
$top = $this->get_tb_config();
$req = new \TbkDgMaterialOptionalRequest();
$req->setPageSize($request->get("count"));
$req->setAdzoneId("111641500058"); //自有 111561200325
$req->setPageNo($request->get("offset") / $request->get("count") + 1);
$req->setQ($keyword);
$data = $top->execute($req);
if (isset($data->result_list)) {
return self::returnMsg($data->result_list->map_data);
}
return self::errorMsg("发生了错误");
}
$cate = ShopCateModel::get_by_id($id);
if (isset($cate)) {
$top = $this->get_tb_config();
$req = new \TbkDgOptimusMaterialRequest();
$req->setPageSize($request->get("count"));
$req->setAdzoneId("111641500058");
$req->setPageNo($request->get("offset") / $request->get("count") + 1);
$req->setMaterialId($cate["cate_id"]);
$data = $top->execute($req);
// dd($data);
if (isset($data->result_list)) {
return self::returnMsg($data->result_list->map_data);
}
return self::errorMsg("发生了错误");
}
return self::errorMsg("没有找到该分类");
}
获取商品详情接口
public function shop_detail_tb(Request $request)
{
$id = $request->input("id");
$top = $this->get_tb_config();
$req = new \TbkItemInfoGetRequest();
$req->setNumIids($id);
$req->setPlatform("2"); // 1.pc 2.无线
$req->setIp($request->ip()); // 客户端请求ip
$data = $top->execute($req);
if (isset($data->results))
return self::returnMsg($data->results->n_tbk_item[0]);
return self::errorMsg("没有找到该商品");
}
生成淘口令接口
public function shop_buy_tb(Request $request)
{
$id = $request->input("id");
$url = $request->input("url");
$top = $this->get_tb_config();
$req = new \TbkTpwdCreateRequest;
$req->setUrl("https:" . $url);
$data = $top->execute($req);
if (isset($data->data) and isset($data->data->model)) {
return self::returnMsg($data->data);
}
return self::errorMsg("生成淘口令失败");
}
注意这里生成淘口令很扯,拼多多是根据商品id去生成的,而淘宝是通过一个url去生成的。。
至于这个url怎么来的,还不是商品详情接口拿到的,而且商品列表里面拿到的。。所以在前端处理的时候需要前端同学在页面跳转的时候自行把这些参数都附带上哦
