• 记拼多多 快团团 php 快团团创建团购接口 增加商品库存接口 规格创建 上传商品图等接口


        public function __construct(){
            parent::__construct();
            $user_id = $this->user_id;
            $user = $this->user;
            $tokenData = DB::name('ktt_user_token')->where('user_id',$user_id)->find();
    
            if(!$tokenData){
                echo json_encode(["errcode"=>11,"errmsg"=>'此账号未进行快团团授权,请联系客服']);
                die;
            }
            if($tokenData['expires_at'] < time()){
                echo json_encode(["errcode"=>11,"errmsg"=>'快团团授权已过期,请联系客服']);
                die;
            }
            $this->tokenData = $tokenData;
        
        }
    
    
        /*pdd.ktt.group.create快团团创建团购接口*/
        public function groupCreate(){
            $pdd = new Pdd();
            $user = $this->user;
            $tokenData = $this->tokenData;
            
            if($user['point'] <= 0){
                 return json(['errcode'=>-1,'errmsg'=>'积分不足请充值']);
            }
            
            $goods_id = input('goods_id',0);
            
            if(!$goods_id){
                return json(['errcode'=>-1,'errmsg'=>'请选择正确商品']);
            }
    
            $goodsInfo = Db::name('goods')->where('goods_id',$goods_id)->find();
            if($goodsInfo['stock'] <= 5){
                return json(['errcode'=>-1,'errmsg'=>'库存较少,暂不支持团购']);
            }        
            if($goodsInfo['is_on_sale'] == 0){
                return json(['errcode'=>-1,'errmsg'=>'此商品已下架']);
            }
            
            
            $cat_name = getCatName($goodsInfo['cat_id']);
            
            if(!$cat_name){
                return json(['errcode'=>-1,'errmsg'=>'此商品暂无分类']);
            }
            // 规格处理
            $specArr = [];
            $spec_goods = Db::name('goods_spec_goods')->where('goods_id',$goods_id)->select();
    
            if($spec_goods){
                $count_spec = count($spec_goods);
                foreach ($spec_goods as $k=>$v) {
                    $temp_spec_arr = explode(' ',trim($v['key_name'],' '));
                    // $specArr = [];
                    $v_temp = [];
                    foreach ($temp_spec_arr as $ksa=>$vsa) {
                        $temp_spec_arr2 = explode(':',trim($vsa,':'));
                        $v_temp[$temp_spec_arr2[0]][] = $temp_spec_arr2[1];
    
                    }
                    $specArr[] = $v_temp;
    
                }
                $spec_id_list = [];
                foreach ($specArr as $sv) {
                    // dump($sv);
                    $temp_spec = [];
                    foreach ($sv as $sp_k=>$sp_v) {
                        $spec_list = [$sp_k=>$sp_v];
                        $spec_map = $this->goodsUpSpec($spec_list);
                        $spec_id = $spec_map[$sp_k][0]['spec_id'];
                        $temp_spec[] = $spec_id;
                    }
                    $spec_id_list[] = $temp_spec;
                }
            }else{
                $spec_id_list = [];
                
                $spec_str = $goodsInfo['goods_spec'].''.$goodsInfo['goods_cap'].' '.$goodsInfo['color'];
                $specArr = array('规格'=>[$spec_str]);
                $spec_map = $this->goodsUpSpec($specArr);
                // dump($spec_str);
                $spec_id = '';
                if($spec_map){
                    $spec_id = $spec_map['规格'][0]['spec_id'];
                    $spec_id_list = [$spec_id];
                } 
            }
            
            
            $goods_thumb = '';
            if($goodsInfo['goods_thumb']){
                $goods_thumb = $this->goodsUpImg($goodsInfo['goods_thumb']);
                // dump($goods_thumb);
                if(!$goods_thumb){
                    return json(['errcode'=>-1,'errmsg'=>'商品图片有问题,请检查商品图片格式']);
                }
            }
            
           
            $params = array();
            /*数据 设置开团 3月*/
            $params['access_token'] = $tokenData['access_token'];
            $params['end_time'] = getMillisecond()+1000 * 60 *60 *24 * 30 *3;
            $params['start_time'] = getMillisecond();
            $params['is_save_preview'] = 1;
            $params['title'] = '开团';
            $params['isv_no'] = 'abc';
            
            /*商品数据*/
            $goodsParams = array();
            $skuParams = array();
            $goodsParams['category_name'] = $cat_name;
            $goodsParams['goods_desc'] = $goodsInfo['goods_brief']?:$goodsInfo['goods_name'];
            $goodsParams['goods_name'] = $goodsInfo['goods_name'];
            $goodsParams['limit_buy'] = 0;
            $goodsParams['market_price'] = intval($goodsInfo['market_price']*100);
            $goodsParams['pic_url_list'] = [$goods_thumb];
            
            $skuParams['external_sku_id'] = $goodsInfo['goods_sn'];
            $skuParams['price_in_fen'] = intval($goodsInfo['tuan_market_price']*100);
            $skuParams['quantity_type'] = 0;
            $skuParams['spec_id_list'] = $spec_id_list;
            $skuParams['total_quantity'] = $goodsInfo['stock'];
            $skuParams['thumb_url'] = $goods_thumb;
            
            if($count_spec > 0){
                for ($i = 0; $i < $count_spec; $i++) {
                    $ii = $i+1;
                     $skuParams['external_sku_id'] = $goodsInfo['goods_sn'].'_'.$ii;
                     $skuParams['spec_id_list'] = $spec_id_list[$i];
                     $goodsParams['sku_list'][] = $skuParams;
                }
            }else{
                $goodsParams['sku_list'][] = $skuParams;
            }
    
            $params['goods_list'][] = $goodsParams;
            $res = $pdd->GetPDDApi('pdd.ktt.group.create',$params);
    
            $kttRes = $res['response'];
            /*请求成功 调用查询接口完成创建*/
            if($kttRes['success']){
                $queryRes = $this->groupQuery($kttRes['activity_no']);
                
                $insertData=array();
                $insertData['goods_id'] = $goodsInfo['goods_id'];
                $insertData['user_id'] = $tokenData['user_id'];
                $insertData['reg_user_id'] = $goodsInfo['reg_user_id'];
                $insertData['goods_sn'] = $goodsInfo['goods_sn'];
                $insertData['goods_name'] = $goodsInfo['goods_name'];
                $insertData['activity_no'] = $kttRes['activity_no'];
                $insertData['spec_id'] = $spec_id;
                $insertData['create_time'] = time();
                $logRes = DB::name('ktt_goods_add_log')->insert($insertData);
            }
            if($logRes){
                /*21.11 新加创建成功减少团长积分*/
                $this->pointGoods($goods_id);
                return json(['errcode'=>0,'errmsg'=>'创建成功']);
            }
            
            return json(['errcode'=>-1,'errmsg'=>'创建失败']);
            
        } 
        // pdd.ktt.goods.create.spec快团团上传商品图接口
        public function goodsUpSpec($specArr){
            $pdd = new Pdd();
            $tokenData = $this->tokenData;
    
            $params = array();
            /*数据*/
            $params['access_token'] = $tokenData['access_token'];
            $spec_map = $specArr;
            $params['spec_map'] = $spec_map;
    
            $res = $pdd->GetPDDApi('pdd.ktt.goods.create.spec',$params);
            return $res['response']['spec_map'];
            
        }       
    
        // /**/pdd.ktt.group.query.status快团团查询团购创建结果接口
        public function groupQuery($activity_no){
            $pdd = new Pdd();
            $tokenData = $this->tokenData;
    
            $params = array();
            /*数据*/
            $params['access_token'] = $tokenData['access_token'];
            $params['activity_no'] = $activity_no;
            
            $res = $pdd->GetPDDApi('pdd.ktt.group.query.status',$params);
            return $res;
    
        }     
        
        // pdd.ktt.goods.upload.image快团团商品规格创建接口
        public function goodsUpImg($url){
            $pdd = new Pdd();
            
            $tokenData = $this->tokenData;
            $params = array();
            /*数据*/
            
            $params['access_token'] = $tokenData['access_token'];
            $params['url'] = $url;
            $res = $pdd->GetPDDApi('pdd.ktt.goods.upload.image',$params);;
            return $res['response']['result'];
            
        }     
    
        // pdd.ktt.goods.incr.quantity 快团团ERP增加商品库存接口
        public function goodsincrQuantity($params){
            $pdd = new Pdd();
            $tokenData = $this->tokenData;
            /*数据*/
            
            $params['access_token'] = $tokenData['access_token'];
            // 1增加 2修改
            $params['modify_quantity_type'] = 2;
            $params['quantity_delta'] = 50;
            $res = $pdd->GetPDDApi('pdd.ktt.goods.incr.quantity',$params);
            return $res;
            
        } 
        
        /*pdd.ktt.increment.order.query快团团增量查订单*/
        public function incerOrder(){
            $pdd = new Pdd();
            $tokenData = $this->tokenData;
    
            $params = array();
            /*数据*/
            
            $params['access_token'] = $tokenData['access_token'];
            $params['start_updated_at'] = strtotime(date("Ymd"))*1000;
            $params['end_updated_at'] = getMillisecond();
            $params['page_number'] = 1;
            $params['page_size'] = 100;
            $res = $pdd->GetPDDApi('pdd.ktt.increment.order.query',$params);
            $order_list = $res['ktt_increment_order_query_response']['order_list'];
            
            
        } 
        
        /*pdd.ktt.order.list根据成交时间拉取订单列表*/
        public function kttOrderList(){
            $pdd = new Pdd();
            $tokenData = $this->tokenData;
            $goods_id = input('goods_id',0);
            $params = array();
            /*数据*/
            
            // $params['access_token'] = $tokenData['access_token'];
            // $params['confirm_at_end'] = getMillisecond();
            // $params['confirm_at_begin'] = strtotime(date("Ymd"))*1000;
            // $params['page_number'] = 1;
            // $params['page_size'] = 100;
            // $res = $pdd->GetPDDApi('pdd.ktt.order.list',$params);
            
            
            $params['access_token'] = $tokenData['access_token'];
            $params['start_updated_at'] = strtotime(date("Ymd"))*1000;
            $params['end_updated_at'] = getMillisecond();
            $params['page_number'] = 1;
            $params['page_size'] = 100;
            
            $res = $pdd->GetPDDApi('pdd.ktt.increment.order.query',$params);
            $order_list = $res['ktt_increment_order_query_response']['order_list'];
        }    
        

    拼多多接口类看上篇随笔

  • 相关阅读:
    Sql Server中的游标最好只用于有主键或唯一键的表
    SQLServer中DataLength()和Len()两内置函数的区别(转载)
    Sql server bulk insert
    ASP.NET CORE中使用Cookie身份认证
    用.net中的SqlBulkCopy类批量复制数据 (转载)
    使用C#的AssemblyResolve事件和TypeResolve事件动态解析加载失败的程序集
    Entity framework 中Where、First、Count等查询函数使用时要注意
    注意SSIS中的DT_NUMERIC类型转换为字符类型(比如DT_WSTR)时,会截断小数点前的0
    记一次完整的android源码截屏事件的捕获<标记砖>
    ffmpeg添加水印的方法举例 (砖)
  • 原文地址:https://www.cnblogs.com/liiu/p/15766139.html
Copyright © 2020-2023  润新知