"天猫","C"=>"淘宝"]; const masPageSize = 100; const request_url = [ 'brand_realtime_url' => "https://v2.api.haodanku.com/brand_realtime", 'deserve_item_url' => "http://v2.api.haodanku.com/get_deserve_item", 'brand_goods_url' => "http://v2.api.haodanku.com/brand", 'brand_list_url' => 'http://v2.api.haodanku.com/brandinfo', 'brand_info_url' => 'http://v2.api.haodanku.com/singlebrand', 'subsidy_url' => 'http://v2.api.haodanku.com/cash_subsidy_goods', 'may_like_url' => 'http://v2.api.haodanku.com/get_similar_info', 'low_price_url' => 'http://v2.api.haodanku.com/low_price_Pinkage_data', 'cate_url' => 'https://v2.api.haodanku.com/category_list', 'dy_goods_url' => 'https://v2.api.haodanku.com/dy_item_list', 'dh_goods_url' => 'http://v2.api.haodanku.com/get_trill_data', 'search_url' => 'http://v2.api.haodanku.com/supersearch', 'hot_key_url' => 'http://v2.api.haodanku.com/hot_key', 'talent_url' => 'http://v2.api.haodanku.com/talent_info', 'talent_article_url' => 'http://v2.api.haodanku.com/talent_article', 'single_page_url' => 'https://v3.api.haodanku.com/rest', 'dy_order_url' => 'https://v2.api.haodanku.com/dy_order_list', 'dy_goods_detail_url' => 'https://v2.api.haodanku.com/dy_detail', 'get_dyitem_link_url'=>'https://v2.api.haodanku.com/get_dyitem_link', 'dy_analyze_code_url'=>'https://v2.api.haodanku.com/dy_analyze_code', 'tk_rest_url'=>'https://v3.api.haodanku.com/rest', 'jd_hot_rank_url'=>'http://v2.api.haodanku.com/jd_hot_rank', 'dy_hot_rank_url'=>'https://v3.api.haodanku.com/dy_rankitem_list', 'pdd_hot_rank_url'=>'http://v2.api.haodanku.com/pdd_hot_rank', ]; /** * 品牌分类 */ const brand_cate = [ ['name'=>'全部','value' => '0'], ['name'=>'母婴童品','value' => '1'], ['name'=>'百变女装','value' => '2'], ['name'=>'食品酒水','value' => '3'], ['name'=>'居家日用','value' => '4'], ['name'=>'美妆洗护','value' => '5'], ['name'=>'品质男装','value' => '6'], ['name'=>'舒适内衣','value' => '7'], ['name'=>'箱包配饰','value' => '8'], ['name'=>'男女鞋靴','value' => '9'], ['name'=>'宠物用品','value' => '10'], ['name'=>'数码家电','value' => '11'], ['name'=>'车品文体','value' => '12'] ]; public function __construct() { parent::__construct(); $this->config = config('site.haodanku'); $this->apikey = $this->config['apikey']; if(empty($this->apikey)) return fault('配置信息错误'); } /** * * 获取个人cms地址 */ public function getCmsUrl($tb_rid) { $send_data = [ 'method' => 'cms.promotion.url', 'app_id' => '20237820', 'app_secret'=>'608e183d8bc44742ab544179bd54b2c3', 'date' => date('Y-m-d H:i:s'), 'tb_name' => $this->config['tb_name'], 'tb_pid' => 'mm_4091757048_2861600076_114781900494', 'tb_rid' => $tb_rid, ]; $send_data['sign'] = $this->sign_create($send_data,'608e183d8bc44742ab544179bd54b2c3'); $http = new Http(); $param = json_encode($send_data); $result = $http->post(self::request_url['tk_rest_url'],$param,[ CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Content-Length: ' . strlen($param) ]]); $result = json_decode($result,true); if(empty($result) || $result['code'] != 200) fault('转链失败'); return $result['data']['url']; } public function getShareLink($goods_id,$common_relation_id,$relation_id) { $send_data = [ 'method' => 'single.item.promotion', 'app_id' => $this->config['app_id'], 'date' => date('Y-m-d H:i:s'), 'itemid' => $goods_id, 'tb_name' => $this->config['tb_name'], 'pid' => MOBILE_INFO == "IOS" ? config('site.taobao_pid')['ios_pid'] : config('site.taobao_pid')['android_pid'], 'relation_id' => $relation_id, ]; $send_data['sign'] = $this->sign_create($send_data,$this->config['app_secret']); $http = new Http(); $param = json_encode($send_data); $result = $http->post(self::request_url['tk_rest_url'],$param,[ CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Content-Length: ' . strlen($param) ]]); $result = json_decode($result,true); if(empty($result) || $result['code'] != 200) fault('转链失败'); return $result['data']; } /** * 抖音口令解析 * * @return void */ public function urlPrivilege($content) { $send_data = [ 'apikey' => $this->apikey, 'content' => $content, ]; $http = new Http(); $result = $http->post(self::request_url['dy_analyze_code_url'],$send_data); if(empty($result)) fault('数据获取失败'); $result = json_decode($result, true); return isset($result['data']) ? $result['data'] : []; } /** * 商品转链 * * @param [type] $itemid * @param [type] $channel * @return void */ public function idPrivilege($itemid,$channel){ $send_data = [ 'apikey' => $this->apikey, 'itemid' => $itemid, 'channel' => $channel, ]; $http = new Http(); $result = $http->post(self::request_url['get_dyitem_link_url'],$send_data); if(empty($result)) fault('数据获取失败'); $result = json_decode($result, true); //获取抖音详情(兼容ios打开抖音商品问题) $d_send_data = [ 'itemid' => $itemid, 'apikey' => $this->apikey, ]; $d_result = send_get(self::request_url['dy_goods_detail_url'],$d_send_data); if(!empty($d_result)) { $result['data']['detail_url']=$d_result['data'][0]['detail_url']; } return isset($result['data']) ? $result['data'] : []; } /** * 京东榜单(实时热榜) https://www.haodanku.com/Openapi/api_detail?id=52 * */ public function getJdHotRank($cid,$mainid) { $send_data = [ 'apikey' => $this->apikey, 'sort'=>3, 'min_id'=>$mainid, 'cid'=>$cid ]; $result = send_get(self::request_url['jd_hot_rank_url'],$send_data); if(empty($result) || $result['code'] != 200) return []; $goodsList = isset($result['data']) ? $result['data'] : []; foreach($goodsList as &$goods){ $goods = self::initJdGoodsFy($goods); } return $goodsList; } /** * 抖音榜单 https://www.haodanku.com/Openapi/api_detail?id=135 * */ public function getDyHotRank($cid,$mainid) { $send_data = [ 'apikey' => $this->apikey, 'sort_id'=>1, 'min_id'=>$mainid, 'cate_id'=>$cid, 'back'=>50 ]; $result = send_get(self::request_url['dy_hot_rank_url'],$send_data); if(empty($result) || $result['code'] != 200) return []; $goodsList = isset($result['data']) ? $result['data'] : []; foreach($goodsList as &$goods){ $goods = self::initDyGoodsFy($goods); } return $goodsList; } /** * 拼多多榜单 https://www.haodanku.com/Openapi/api_detail?id=53 */ public function getPddHotRank($cid,$mainid) { $send_data = [ 'apikey' => $this->apikey, 'sort'=>1, 'min_id'=>$mainid, 'cid'=>$cid ]; $result = send_get(self::request_url['pdd_hot_rank_url'],$send_data); if(empty($result) || $result['code'] != 200) return []; $goodsList = isset($result['data']) ? $result['data'] : []; foreach($goodsList as &$goods){ $goods = self::initPddGoodsFy($goods); } return $goodsList; } public function initJdGoodsFy($goods) { if(empty($goods)) return []; $init_goods = self::FqgoodsField(); $init_goods['dtitle'] = isset($goods['goodsname']) ? $goods['goodsname'] : ''; $init_goods['goodsid'] = isset($goods['skuid']) ? $goods['skuid'] : ''; $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : ''; $init_goods['mallDesc'] = isset($goods['shopname']) ? $goods['shopname'] : ''; $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : ''; $init_goods['quanJine'] = isset($goods['couponmoney']) ? $goods['couponmoney'] : ''; $init_goods['quanNum'] = isset($goods['couponnum']) ? $goods['couponnum'] : ''; $init_goods['salesNum'] = isset($goods['itemsale']) ? $goods['itemsale'] : ''; $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : ''; $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['commissionshare']/100); $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['commissionshare']/100,self::$topFanliRate); $init_goods['sourceType']='jd'; return $init_goods; } public function initDyGoodsFy($goods) { if(empty($goods)) return []; $init_goods = self::FqgoodsField(); $init_goods['dtitle'] = isset($goods['itemtitle']) ? $goods['itemtitle'] : ''; $init_goods['goodsid'] = isset($goods['product_id']) ? $goods['product_id'] : ''; $init_goods['goodsId'] = isset($goods['product_id']) ? $goods['product_id'] : ''; $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : ''; $init_goods['mallDesc'] = isset($goods['shop_name']) ? $goods['shop_name'] : ''; $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : ''; $init_goods['quanJine'] = 0; $init_goods['salesNum'] = isset($goods['sales']) ? $goods['sales'] : ''; $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : ''; $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['dyrates']/100); $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['dyrates']/100,self::$topFanliRate); $init_goods['sourceType']='dy'; return $init_goods; } public function initPddGoodsFy($goods) { if(empty($goods)) return []; $init_goods = self::FqgoodsField(); $init_goods['dtitle'] = isset($goods['goodsname']) ? $goods['goodsname'] : ''; $init_goods['goodsid'] = isset($goods['goods_id']) ? $goods['goods_id'] : ''; $init_goods['goods_sign'] = isset($goods['goods_sign']) ? $goods['goods_sign'] : ''; $init_goods['jiage'] = isset($goods['itemendprice']) ? $goods['itemendprice'] : ''; $init_goods['mallDesc'] = '拼多多'; $init_goods['pic'] = isset($goods['itempic']) ? $goods['itempic'] : ''; $init_goods['quanJine'] = isset($goods['couponmoney']) ? $goods['couponmoney'] : ''; $init_goods['quanNum'] = isset($goods['couponnum']) ? $goods['couponnum'] : ''; $init_goods['salesNum'] = isset($goods['itemsale']) ? $goods['itemsale'] : ''; $init_goods['yuanjia'] = isset($goods['itemprice']) ? $goods['itemprice'] : ''; $init_goods['fanli'] = self::rebate($goods["itemendprice"],$goods['promotion_rate']/100); $init_goods['topFanli'] = self::rebate($goods['itemendprice'],$goods['promotion_rate']/100,self::$topFanliRate); $init_goods['sourceType']='pdd'; return $init_goods; } /** * 获取抖音商品详情https://www.haodanku.com/Openapi/api_detail?id=112 * * @param [type] $itemid * @return void */ public function getDyGoodsDetail($itemid) { $send_data = [ 'itemid' => $itemid, 'apikey' => $this->apikey, ]; $result = send_get(self::request_url['dy_goods_detail_url'],$send_data); if(empty($result) || $result['code'] != 200) return []; $goods = isset($result['data'][0]) ? $result['data'][0] : []; if(empty($goods['product_id'])) return []; $goods = self::initDyDetailGoods($goods); return $goods; } /** * 抖音订单 https://www.haodanku.com/Openapi/api_detail?id=108 * * @param [type] $date_type 1付款时间(默认付款)、2.结算时间、3.失效时间、4.更新时间 * @param [type] $media_type 媒体类型:1物料商品、2直播商品 * @param [type] $start_date 开始时间(选择的date_type时间类型) * @param [type] $end_date 结束时间(选择的date_type时间类型) * @param [type] $page * @param [type] $page_size * @param integer $step * @return void */ public function dyOrderList($date_type,$media_type,$start_date,$end_date,$page,$page_size,$step = 1) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'back' => $page_size, 'date_type' => $date_type, 'media_type' => $media_type, 'start_date' => $start_date, 'end_date' => $end_date, 'min_id' => $page ]; $http = new Http(); $result = $http->post(self::request_url['dy_order_url'],$send_data); if(empty($result)){ if($step == 3) return ['status'=>false,'info'=>'接口请求失败','list'=>[],'total' => 0,'hasMore' => false]; $step++; return $this->dyOrderList($date_type,$media_type,$start_date,$end_date,$page,$page_size,$step); } $result = json_decode($result,true); if(empty($result) || ($result['code'] != 0 && $result['code'] != 200)) return ['status'=>false,'info'=>'接口请求失败','list'=>[],'total' => 0,'hasMore' => false]; return ['status'=>true,'info'=>'接口请求成功','list'=>$result['data'],'total' => count($result['data']),'hasMore' => count($result['data']) == $page_size ? true : false]; } /** * 获取单页数据 https://www.haodanku.com/Openapi/api_detail?id=98 * * @param [type] $template_id 模版ID * @param [type] $common_relation_id * @return void */ public function getSinglePage($template_id,$common_relation_id) { $info = Cache::get('single_page_template_id:'.$template_id); if(!empty($info))return json_decode($info,true); $jd_pid = $this->config['jd_union']."_59133_".$common_relation_id; $pdd_custom_parameters = urlencode('{"uid":"'.$common_relation_id.'"}'); $send_data = [ 'method' => 'sourcecode.rates.url', 'app_id' => $this->config['app_id'], 'date' => date('Y-m-d H:i:s'), 'template_id' => $template_id, 'tb_name' => $this->config['tb_name'], 'tb_pid' => MOBILE_INFO == "IOS" ? config('site.taobao_pid')['ios_pid'] : config('site.taobao_pid')['android_pid'], 'jd_union' => $this->config['jd_union'], 'pdd_pid' => MOBILE_INFO == "IOS" ? config('site.pinduoduo')['ios_pid'] : config('site.pinduoduo')['android_pid'], 'pdd_union' => $this->config['pdd_union'], 'wph_nickname' => $this->config['wph_nickname'], 'wph_pid' => $common_relation_id, 'relation_id' => $common_relation_id, 'special_channel' => $common_relation_id ]; $send_data['jd_pid'] = $jd_pid; $send_data['pdd_custom_parameters'] = $pdd_custom_parameters; $send_data['sign'] = $this->sign_create($send_data,$this->config['app_secret']); $http = new Http(); $param = json_encode($send_data); $result = $http->post(self::request_url['single_page_url'],$param,[ CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', 'Content-Length: ' . strlen($param) ]]); $result = json_decode($result,true); if(empty($result) || $result['code'] != 200) fault('活动已结束或不存在'); Cache::set('single_page_template_id'.$template_id,json_encode($result['data']),3600); return $result['data']; } /** * 生成签名 * @param $data -请求数据组 * @param string $secret -应用密钥 */ private function sign_create($data, $secret = '') { ksort($data); $stringToBeSigned = ''; foreach ($data as $k => $v) { if (!is_array($v) && "@" != substr($v, 0, 1)) { $stringToBeSigned .= "$k$v"; } } return strtoupper(md5($stringToBeSigned . $secret)); } /** * 获取品牌时效榜数据 https://www.haodanku.com/Openapi/api_detail?id=78 * * @return void */ public function getBrandRealtime($page = 1,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'page_size' => $page_size, 'min_id' => $page ]; $result = send_get(self::request_url['brand_realtime_url'],$send_data); if(empty($result) || $result['code'] != 200) fault('数据获取失败'); $goods_list = $result['data']; foreach($goods_list as &$goods){ $goods = self::initGoods($goods); } return $goods_list; } /** * 今日值得买 https://www.haodanku.com/Openapi/api_detail?id=24 * * @return void */ public function getDeserveItem() { $send_data = [ 'apikey' => $this->apikey ]; $result = send_get(self::request_url['deserve_item_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $goods_list = $result['item_info']; foreach($goods_list as &$goods){ $goods = self::initGoods($goods); } return $goods_list; } /** * 获取品牌列表(不带商品) https://www.haodanku.com/Openapi/api_detail?id=33 * * @param [type] $brandcat * @param [type] $page * @param [type] $page_size * @return void */ public function getBrandList($brandcat,$page = 1,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'back' => $page_size, 'min_id' => $page, 'brandcat' => $brandcat ]; $result = send_get(self::request_url['brand_list_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $brand_list = $result['data']; if(!empty($brand_list)){ foreach($brand_list as &$brand){ $brand = self::initBrand($brand); } } return $brand_list; } /** * 获取品牌列表(带商品) https://www.haodanku.com/Openapi/api_detail?id=32 * * @param [type] $brandcat 分类id * @param [type] $page 分页 * @param [type] $page_size 每页数据 * @return void */ public function getBrandAndGoods($brandcat,$page = 1,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'back' => $page_size, 'min_id' => $page, 'brandcat' => $brandcat ]; $result = send_get(self::request_url['brand_goods_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $brand_list = $result['data']; if(!empty($brand_list)){ foreach($brand_list as &$brand){ $brand = self::initBrand($brand,'item'); } } return $brand_list; } /** * 单个品牌详情 https://www.haodanku.com/Openapi/api_detail?id=34 * * @param [type] $brand_id * @param [type] $page * @param [type] $page_size * @return void */ public function getBrandInfo($brand_id,$page = 1,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'back' => $page_size, 'min_id' => $page, 'id' => $brand_id ]; $result = send_get(self::request_url['brand_info_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $brand = $result['data']; $brand = self::initBrand($brand,'items'); return $brand; } //百亿补贴 https://www.haodanku.com/Openapi/api_detail?id=64 public function getCashSubsidyGoods($category_id,$keyword = "",$sort = "",$page = 1,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'apikey' => $this->apikey, 'min_size' => $page_size, 'min_id' => $page, 'category_id' => $category_id, 'keyword' => $keyword, 'sort' => $sort ]; $result = send_get(self::request_url['subsidy_url'],$send_data); if(empty($result) || $result['code'] != 200) fault('数据获取失败'); $list = $result['data']; if(empty($list)) return []; foreach($list as &$goods){ $goods = self::initSubsidyGoods($goods); } return $list; } /** * 猜你喜欢 https://www.haodanku.com/Openapi/api_detail?id=22 * * @param [type] $goods_id 关联商品id * @param integer $page 页数 * @param [type] $page_size 每页数据 * @return void */ public function getSimilarInfo($goods_id,$page_size) { $page_size > 50 && $page_size = 50; $send_data = [ 'apikey' => $this->apikey, 'back' => $page_size, 'itemid' => $goods_id ]; $result = send_get(self::request_url['may_like_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $list = $result['data']; if(!empty($list)){ foreach($list as &$goods){ $goods = self::initGoods($goods); } } return $list; } /** * 精选低价包邮专区API * @param [type] $type 1.精选专区;2. 9.9专区;3. 6.9专区;4. 3.9专区 * @param [type] $page * @param [type] $page_size * @return void */ public function lowPrice($type,$page,$page_size) { $page_size > self::masPageSize && $page_size = self::masPageSize; $send_data = [ 'type' => $type, 'apikey' => $this->apikey, 'back' => $page_size, 'min_id' => $page ]; $result = send_get(self::request_url['low_price_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $goods_list = $result['data']; foreach($goods_list as &$goods){ $goods = self::initGoods($goods); } return $goods_list; } /** * 获取分类列表 https://www.haodanku.com/Openapi/api_detail?id=107 * * @param [type] $type 类型:1 个性化福利清单-商品类目、2 个性化福利清单-线报类目、3 福利清单-商品类目、4 抖音商城-商品类目、5 凑单满减-满减类型、6 虎年单品类目 * @return void */ public function getCateList($type) { $send_data = [ 'type' => $type, 'apikey' => $this->apikey ]; $result = send_get(self::request_url['cate_url'],$send_data); if(empty($result) || $result['code'] != 200) fault('数据获取失败'); $list = $result['data']; return $list; } /** * 抖音电商商品列表 https://www.haodanku.com/Openapi/api_detail?id=105 * * @param [type] $cate_id 类目ID * @param string $keyword 关键词搜索 * @param integer $sort 排序(默认0):0综合、1销量倒序、2销量升序、3价格倒序、4价格升序 * @param [type] $page * @param [type] $pageSize * @return void */ public function getDygoodsList($cate_id,$keyword,$sort,$page,$pageSize) { $send_data = [ 'type' => $cate_id, 'apikey' => $this->apikey, 'cate_id' => $cate_id, 'keyword' => $keyword, 'sort' => $sort, 'min_id' => $page, 'back' => $pageSize ]; $result = send_get(self::request_url['dy_goods_url'],$send_data); if(empty($result) || $result['code'] != 200) fault('数据获取失败'); $list = $result['data']; if(!empty($list)){ foreach($list as &$goods){ $goods = self::initDyGoods($goods); } } return $list; } /** * 抖货商品 https://www.haodanku.com/Openapi/api_detail?id=29 * * @param [type] $cate_id 商品类目 * @param [type] $order * @param [type] $page * @param [type] $pageSize * @return void */ public function getDhgoodsList($cate_id,$order,$page,$pageSize) { $send_data = [ 'type' => $cate_id, 'apikey' => $this->apikey, 'cate_id' => $cate_id, 'order' => $order, 'min_id' => $page, 'back' => $pageSize ]; $result = send_get(self::request_url['dh_goods_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $list = $result['data']; if(!empty($list)){ foreach($list as &$goods){ $goods = self::initGoods($goods); } } return $list; } /** * 商品搜索 * * @param [type] $keyword 关键词 * @param [type] $sort 0.综合,1.最新,2.销量(高到低),3.销量(低到高),4.价格(低到高),5.价格(高到低),6.佣金比例(高到低) * @param [type] $is_tmall 是否只取天猫商品:0否;1是,默认是0 * @param [type] $is_coupon 是否只取有券商品:0否;1是,默认是0 * @param [type] $page * @param [type] $pageSize * @return void */ public function searchGoods($keyword,$sort,$is_tmall,$is_coupon,$page,$pageSize) { $send_data = [ 'keyword' => urlencode(urlencode($keyword)), 'apikey' => $this->apikey, 'sort' => $sort, 'is_tmall' => $is_tmall, 'is_coupon' => $is_coupon, 'min_id' => $page, 'back' => $pageSize ]; $result = send_get(self::request_url['search_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $list = $result['data']; if(!empty($list)){ foreach($list as &$goods){ $goods = self::initGoods($goods); } } return $list; } /** * 热搜关键词记录API https://www.haodanku.com/Openapi/api_detail?id=20 * * @param [type] $page * @param [type] $pageSize * @return void */ public function getHotKey($page,$pageSize) { $send_data = [ 'apikey' => $this->apikey, 'min_id' => $page, 'back' => $pageSize ]; $result = send_get(self::request_url['hot_key_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $list = $result['data']; return $list; } /** * 获取达人说列表 * $talentcat 文章类别(0.全部,1.好物,2.潮流,3.美食,4.生活) * @return void */ public function getTalentInfo($talentcat = 0) { $send_data = [ 'apikey' => $this->apikey, 'talentcat' => $talentcat ]; $result = send_get(self::request_url['talent_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $list = $result['data']; return $list; } /** * 获取达人说详情 */ public function getTalentArticle($id) { $send_data = [ 'apikey' => $this->apikey, 'id' => $id ]; $result = send_get(self::request_url['talent_article_url'],$send_data); if(empty($result) || $result['code'] != 1) fault('数据获取失败'); $info = $result['data']; return $info; } /** * 统一品牌数据格式 注:返回带商品数据有接口返回的是item 有的是items * * @param [type] $brand * @return void */ private static function initBrand($brand,$goods_field = '') { $data = [ 'brand_id' => $brand['id'], "brand_label" => "官方正品", "brand_name" => isset($brand['tb_brand_name']) ? $brand['tb_brand_name'] : '', "brand_logo" => isset($brand['brand_logo']) ? $brand['brand_logo'] : '', "inside_logo" => isset($brand['inside_logo']) ? $brand['inside_logo'] : '', "introduce" => isset($brand['introduce']) ? $brand['introduce'] : '', "brandcat" => isset($brand['brandcat']) ? $brand['brandcat'] : '', ]; if(!empty($goods_field)){ $data['goods_list'] = []; if(!empty($brand[$goods_field])){ foreach($brand[$goods_field] as $item){ $data['goods_list'][] = self::initGoods($item); } } } return $data; } /** * 统一商品信息 * * @param [type] $goods * @return void */ private static function initGoods($goods) { if(empty($goods)) return []; $init_goods = self::goodsField(); $init_goods['id'] = isset($goods['id']) ? $goods['id'] : ''; $init_goods['goodsId'] = isset($goods['itemid']) ? $goods['itemid'] : ''; //商品id $init_goods['itemLink'] = isset($goods['itemLink']) ? $goods['itemLink'] : ''; //商品链接 $init_goods['title'] = isset($goods['itemtitle']) ? $goods['itemtitle'] : ''; //商品标题 $init_goods["dtitle"] = isset($goods['itemshorttitle']) ? $goods['itemshorttitle'] : ''; //短标题 $init_goods["actualPrice"] = isset($goods['itemendprice']) ? $goods['itemendprice'] : ''; //券后价 $init_goods["originalPrice"] = isset($goods['itemprice']) ? $goods['itemprice'] : ''; //商品原价 $init_goods["shopName"] = isset($goods['shopname']) ? $goods['shopname'] : ''; //店铺名称 $init_goods["couponPrice"] = isset($goods['couponmoney']) ? $goods['couponmoney'] : ''; //优惠券金额 $init_goods["monthSales"] = isset($goods['itemsale']) ? format_number($goods['itemsale']) : 0; //30天销量 $init_goods['couponInfo'] = isset($goods['coupon_info']) ? $goods['coupon_info'] : ''; //商品折扣信息 $init_goods["mainPic"] = isset($goods['itempic']) ? $goods['itempic'] : ''; //商品主图 $init_goods["video"] = isset($goods['videoid']) && $goods['videoid'] > 0 ? "http://cloud.video.taobao.com/play/u/1/p/1/e/6/t/1/".$goods['videoid'].".mp4" : ''; //商品视频 $init_goods['dyVideoLikeCount'] = isset($goods['dy_video_like_count']) ? $goods['dy_video_like_count'] : ''; $init_goods['dynamicImage'] = isset($goods['dynamic_image']) ? $goods['dynamic_image'] : ''; $init_goods['couponLink'] = isset($goods['couponurl']) ? $goods['couponurl'] : ''; //优惠券链接 $init_goods['couponEndTime'] = isset($goods['couponendtime']) && !empty($goods['couponendtime']) ? date("Y-m-d H:i:s",$goods['couponendtime']) : ''; //优惠券结束时间 $init_goods['couponStartTime'] = isset($goods['couponstarttime']) && !empty($goods['couponstarttime']) ? date("Y-m-d H:i:s",$goods['couponstarttime']) : ''; //优惠券开始时间 $init_goods['shopType'] = isset(self::shop_type[$goods['shoptype']]) ? self::shop_type[$goods['shoptype']] : "未知"; //店铺类型 $init_goods['sourceType'] = "tb"; if(isset($goods['shoptype'])){ if($goods['shoptype'] == "B"){ $init_goods['sourceType'] = "tm"; } } $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']); if(empty($init_goods['detailPics']))$init_goods['detailPics'] = $init_goods['mainPic']; $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['tkrates']/100); $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['tkrates']/100,self::$topFanliRate); return $init_goods; } /** * 统一抖音商品信息 * * @param [type] $goods * @return void */ private static function initDyGoods($goods) { if(empty($goods)) return []; $init_goods = self::goodsField(); $init_goods['id'] = isset($goods['id']) ? $goods['id'] : ''; $init_goods['goodsId'] = isset($goods['itemid']) ? $goods['itemid'] : ''; //商品id $init_goods['itemLink'] = isset($goods['detail_url']) ? $goods['detail_url'] : ''; //商品链接 $init_goods['dtitle'] = isset($goods['itemtitle']) ? $goods['itemtitle'] : ''; //商品标题 $init_goods['title'] = $init_goods['dtitle']; $init_goods["actualPrice"] = isset($goods['end_price']) ? $goods['end_price'] : ''; //券后价 $init_goods["originalPrice"] = isset($goods['end_price']) ? $goods['end_price'] : ''; //商品原价 $init_goods["shopName"] = isset($goods['shop_name']) ? $goods['shop_name'] : ''; //店铺名称 $init_goods["monthSales"] = isset($goods['sales']) ? format_number($goods['sales']) : 0; //30天销量 $init_goods["mainPic"] = isset($goods['item_pic']) ? $goods['item_pic'] : ''; //商品主图 $init_goods['shopType'] = '抖音'; //店铺类型 $init_goods['sourceType'] = "dy"; $init_goods['desc'] = ""; $init_goods['faction'] = 'd'; $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']); $init_goods['isCollect'] = self::isCollect($init_goods); $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['dyrates']/100); $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['dyrates']/100,self::$topFanliRate); return $init_goods; } /** * 格式化抖音商品接口 * * @param [type] $goods * @return void */ private function initDyDetailGoods($goods){ if(empty($goods)) return []; $init_goods = self::goodsField(); $init_goods['id'] = isset($goods['id']) ? $goods['id'] : ''; $init_goods['goodsId'] = isset($goods['product_id']) ? $goods['product_id'] : ''; //商品id $init_goods['itemLink'] = isset($goods['detail_url']) ? $goods['detail_url'] : ''; //商品链接 $init_goods['dtitle'] = isset($goods['product_title']) ? $goods['product_title'] : ''; //商品标题 $init_goods['title'] = $init_goods['dtitle']; $init_goods["actualPrice"] = isset($goods['end_price']) ? $goods['end_price'] : ''; //券后价 $init_goods["originalPrice"] = isset($goods['end_price']) ? $goods['end_price'] : ''; //商品原价 $init_goods["shopName"] = isset($goods['shop_name']) ? $goods['shop_name'] : ''; //店铺名称 $init_goods["monthSales"] = isset($goods['month_sales']) ? format_number($goods['month_sales']) : 0; //30天销量 $init_goods["mainPic"] = isset($goods['item_pic']) ? $goods['item_pic'] : ''; //商品主图 $init_goods['shopType'] = '抖音'; //店铺类型 $init_goods['sourceType'] = "dy"; $init_goods['faction'] = 'd'; $init_goods['desc'] = ""; $init_goods['imgs'] = $goods['douyin_images']; $init_goods['detailPics'] = $init_goods['imgs']; $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']); $init_goods['isCollect'] = self::isCollect($init_goods); $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['dyrates']/100); $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['dyrates']/100,self::$topFanliRate); return $init_goods; } /** * 格式化百亿补贴商品 * * @return void */ private static function initSubsidyGoods($goods) { if(empty($goods)) return []; $init_goods = self::goodsField(); $init_goods['id'] = isset($goods['id']) ? $goods['id'] : ''; $init_goods['goodsId'] = isset($goods['item_id']) ? $goods['item_id'] : ''; //商品id $init_goods['itemLink'] = ''; //商品链接 $init_goods['title'] = isset($goods['itemtitle']) ? $goods['itemtitle'] : ''; //商品标题 $init_goods["dtitle"] = isset($goods['itemshorttitle']) ? $goods['itemshorttitle'] : ''; //短标题 $init_goods["actualPrice"] = isset($goods['itemendprice']) ? $goods['itemendprice'] : ''; //券后价 $init_goods["originalPrice"] = isset($goods['itemprice']) ? $goods['itemprice'] : ''; //商品原价 $init_goods["shopName"] = ''; //店铺名称 $init_goods['couponInfo'] = isset($goods['coupon_info']) ? $goods['coupon_info'] : ''; //商品折扣信息 $init_goods["couponPrice"] = isset($goods['couponmoney']) ? $goods['couponmoney'] : ''; //优惠券金额 $init_goods["monthSales"] = isset($goods['itemsale']) ? format_number($goods['itemsale']) : 0; //30天销量 $init_goods["mainPic"] = isset($goods['itempic']) ? $goods['itempic'] : ''; //商品主图 $init_goods["video"] = isset($goods['videoid']) && $goods['videoid'] > 0 ? "http://cloud.video.taobao.com/play/u/1/p/1/e/6/t/1/".$goods['videoid'].".mp4" : ''; //商品视频 $init_goods['couponLink'] = isset($goods['couponurl']) ? $goods['couponurl'] : ''; //优惠券链接 $init_goods['couponEndTime'] = isset($goods['couponendtime']) && !empty($goods['couponendtime']) ? date("Y-m-d H:i:s",$goods['couponendtime']) : ''; //优惠券结束时间 $init_goods['couponStartTime'] = isset($goods['couponstarttime']) && !empty($goods['couponstarttime']) ? date("Y-m-d H:i:s",$goods['couponstarttime']) : ''; //优惠券开始时间 $init_goods['shopType'] = '淘宝'; //店铺类型 $init_goods['sourceType'] = "tb"; $init_goods['faction'] = "j"; $init_goods['isCollect'] = self::isCollect($init_goods); $init_goods['fanli'] = self::rebate($init_goods["actualPrice"],$goods['commission_rate']/100); $init_goods['topFanli'] = self::rebate($init_goods['actualPrice'],$goods['commission_rate']/100,self::$topFanliRate); return $init_goods; } }