"taobao.tbk.dg.optimus.material", 'publisher_url'=>'taobao.tbk.sc.publisher.info.save' ]; const shop_type = ["0"=>"淘宝","1"=>"天猫","3"=>"特价版"]; public function __construct() { parent::__construct(); $this->config = config('site.taobaolianmeng'); $this->app_key = $this->config['app_key']; $this->appSecret = $this->config['appSecret']; $this->v = $this->config['v']; $this->PID = $this->config['PID']; $this->sign_method = $this->config['sign_method']; if(empty($this->app_key)) return fault('配置信息错误'); } /** * 签名参数 * @param $data * @return string */ public function makeSign($params) { ksort($params); $sign_str = ""; foreach($params as $key => $value){ $sign_str.=$key.$value; } return strtoupper(md5($this->appSecret.$sign_str.$this->appSecret)); } /** * 统一生成参数 * * @param [type] $params * @return void */ private function setParams($params = []) { $timer = date('Y-m-d H:m:s',time()); //默认必传参数 $data = [ 'app_key' => $this->app_key, 'v' => $this->v, 'timestamp' => $timer, 'format' => 'json', 'sign_method' => $this->sign_method, ]; //加密的参数 if ($params) { $data = array_merge($params, $data); } foreach($data as $key => $item){ if(empty($item))unset($data[$key]); } $data['sign'] = $this->makeSign($data); return $data; } /** * 淘宝客-推广者-物料精选 * * @param [type] $page * @param [type] $page_size * @param $material_id 6078猜你喜欢 4040备孕 4041-0至6个月 4042-7至12个月 4043-1至3岁 4044-4至6岁 4045-7至12岁 * @return void */ public function material($material_id,$deviceValue="",$deviceType="",$page,$page_size) { $adzone_id = explode('_',$this->PID); $params = $this->setParams(['device_value'=>$deviceValue,'device_type'=>$deviceType,'method'=>self::request_url['material_url'],'material_id'=>$material_id,'page_no'=>$page,'page_size'=>$page_size,'adzone_id'=>isset($adzone_id[3]) ? $adzone_id[3] : '']); $result = send_get($this->baseUrl,$params); if(empty($result) || !isset($result['tbk_dg_optimus_material_response']['result_list'])) fault('数据获取失败'); $list = $result['tbk_dg_optimus_material_response']['result_list']['map_data']; if(!empty($list)){ foreach($list as &$goods){ $goods = self::initGoods($goods); } } return $list; } /** * 淘宝客-公用-私域用户备案 https://open.taobao.com/api.htm?docId=37988&docType=2 * * @param [type] $session 用户登录授权成功后,TOP颁发给应用的授权信息 * @return void */ public function publisher($session) { $params = $this->setParams(['method'=>self::request_url['publisher_url'],'session'=>$session,'inviter_code'=>$this->config['inviter_code'],'info_type'=>1]); $result = send_get($this->baseUrl,$params); if(isset($result['error_response']['sub_msg']))fault($result['error_response']['sub_msg']); if(empty($result) || !isset($result['tbk_sc_publisher_info_save_response']['data'])) fault('数据获取失败'); $info = isset($result['tbk_sc_publisher_info_save_response']['data']) ? $result['tbk_sc_publisher_info_save_response']['data'] : []; return $info; } /** * 格式化商品信息 * * @param [type] $goods * @return void */ private static function initGoods($goods) { if(empty($goods)) return []; $init_goods = self::goodsField(); $init_goods['id'] = isset($goods['item_id']) ? $goods['item_id'] : ''; $init_goods['goodsId'] = isset($goods['item_id']) ? $goods['item_id'] : ''; //商品id $init_goods['itemLink'] = isset($goods['click_url']) ? $goods['click_url'] : ''; //商品链接 $init_goods['title'] = isset($goods['title']) ? $goods['title'] : ''; //商品标题 $init_goods["dtitle"] = isset($goods['short_title']) ? $goods['short_title'] : ''; //短标题 if(empty($init_goods['dtitle'])) $init_goods['dtitle'] = $init_goods['title']; $init_goods["actualPrice"] = isset($goods['zk_final_price']) ? bcsub($goods['zk_final_price'],$goods['coupon_amount'],2) : ''; //券后价 $init_goods["originalPrice"] = isset($goods['reserve_price']) ? $goods['reserve_price'] : ''; //商品原价 $init_goods["sellerId"] = isset($goods['seller_id']) ? $goods['seller_id'] : ''; //店铺Id $init_goods["shopName"] = isset($goods['shop_title']) ? $goods['shop_title'] : ''; //店铺名称 $init_goods["couponPrice"] = isset($goods['coupon_amount']) ? $goods['coupon_amount'] : ''; //优惠券金额 $init_goods["monthSales"] = isset($goods['volume']) ? format_number($goods['volume']) : 0; //30天销量 $init_goods["mainPic"] = isset($goods['pict_url']) ? $goods['pict_url'] : ''; //商品主图 $init_goods["video"] = isset($goods['video']) ? $goods['video'] : ''; //商品视频 $init_goods['couponLink'] = isset($goods['coupon_share_url']) ? $goods['coupon_share_url'] : ''; //优惠券链接 $init_goods['couponEndTime'] = isset($goods['coupon_end_time']) && !empty($goods['coupon_end_time']) ? $goods['coupon_end_time'] : ''; //优惠券结束时间 $init_goods['couponStartTime'] = isset($goods['coupon_start_time']) && !empty($goods['coupon_start_time']) ? $goods['coupon_start_time'] : ''; //优惠券开始时间 $init_goods['shopType'] = isset(self::shop_type[$goods['user_type']]) ? self::shop_type[$goods['user_type']] : "未知"; //店铺类型 $init_goods['sourceType'] = "tb"; if(isset($goods['user_type']) && $goods['user_type'] == 1)$init_goods['sourceType'] = "tm"; if(isset($goods['shopType']) && $goods['user_type'] == 1)$init_goods['sourceType'] = "tm"; $init_goods['desc'] = isset($goods['item_description']) ? $goods['item_description'] : ''; //推广文案 !empty($goods['small_images']) && $init_goods['imgs'] = $goods['small_images']['string']; $init_goods['labelImg'] = self::initSourse($init_goods['sourceType']); $init_goods['isCollect'] = self::isCollect($init_goods); if(empty($init_goods['detailPics']))$init_goods['detailPics'] = $init_goods['mainPic']; $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; } }