| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 | 
							- <?php
 
- /**
 
-  * 对接crm接口
 
-  */
 
- class Model_logic_crm extends Lin_Model {
 
-     function __construct(){
 
-             parent::__construct();
 
-             $this->load->_model('Model_express','express');
 
-             $this->load->_model("Model_logic_ding","logic_ding");
 
-     }
 
-     public function panduan($order_info,$type,$express_info){
 
-         if(empty($order_info)){
 
-             return ;
 
-         }
 
-         if(!is_array($order_info)){
 
-             return ;
 
-         }
 
-         //目前只有 4 店铺才处理
 
-         if(!in_array($order_info['shop'],[4])){
 
-             return ;
 
-         }
 
-         $express_info = $this->express->read($order_info['express']);
 
-         if($type == 1){
 
-             return ;
 
-             return $this->orderCreated($order_info,$express_info);
 
-         }
 
-         if($type == 2){
 
-             return $this->sendOutWarehouse($order_info,$express_info);
 
-         }
 
-         if($type == 3){
 
-             return $this->orderPredelivery($order_info,$express_info);
 
-         }
 
-         if($type == 4){
 
-             return $this->orderDelivery($order_info,$express_info);
 
-         }
 
-     }
 
-     //处理转化接口需要的数据
 
-     protected function transferData($order_info,$express_info){
 
-         $len = strlen((string)$order_info['shop']);
 
-         //var_dump($order_info['orderinfo']);
 
-         $increment_id = substr($order_info['orderinfo'],$len);
 
-         //var_dump($increment_id);
 
-         $item_list = [
 
-             // [
 
-             //     "title"=>"",
 
-             //     "sku"=>"",
 
-             //     "qty"=>0,
 
-             // ]
 
-         ];
 
-         $sku_list = explode(",",$order_info['issku']);
 
-         $product_list = explode(",",$order_info['product']);
 
-         $qty_list = explode(";",$order_info['quantity']);
 
-         $flag = false;
 
-         foreach($sku_list as $key => $value){
 
-             if(empty($product_list[$key])){
 
-                 $flag= true;
 
-             }else{
 
-                 $item_list[] = [
 
-                     "name"=>$product_list[$key],
 
-                     "sku"=>$value,
 
-                     "qty"=>isset($qty_list[$key])?$qty_list[$key]:1,
 
-                 ];
 
-             }
 
-         }
 
-        if($flag){
 
-             return ;
 
-        }
 
-         // foreach($sku_list as $key => $value){
 
-         //     $item_list[] = [
 
-         //         "name"=>$product_list[$key],
 
-         //         "sku"=>$value,
 
-         //         "qty"=>isset($qty_list[$key])?$qty_list[$key]:1,
 
-         //     ];
 
-         // }
 
-         $address = "";
 
-         if(!empty($order_info['street'])){
 
-             $address .= $order_info['street'];
 
-         }
 
-         if(!empty($order_info['address'])){
 
-             $address .= $order_info['address'];
 
-         }
 
-         if(!empty($order_info['address2'])){
 
-             $address .= $order_info['address2'];
 
-         }
 
-         $info = [
 
-             "website_id"=>(int)$order_info['shop'],
 
-             "orderinfo"=>[
 
-                 "increment_id"=>$increment_id,
 
-                 "store_id"=>$order_info['shop'],
 
-                 "customer_id"=>0,
 
-                 "customer_name"=>$order_info['client'],
 
-                 "customer_email"=>$order_info['email'],
 
-                 "customer_phone"=>$order_info['phone'],
 
-                 "grand_total" =>$order_info['shouldmoney'],
 
-                 "country"=>$order_info['al'],
 
-                 "product_items"=>$item_list,
 
-                 "created_at"=>$order_info['dtime'],//建议只精确到天 不要时分秒
 
-                 "updated_at"=>0,//发货时间
 
-                 "address"=>[
 
-                     "street"=> $address,
 
-                     "city"=> $order_info['city'],
 
-                     "province"=> $order_info['province'],
 
-                     "zip"=> $order_info['zipcode'],
 
-                     "country"=> $order_info['al'],
 
-                     "phone"=> $order_info['phone'],
 
-                 ]
 
-             ]
 
-            
 
-         ];
 
-         return $info;
 
-     }
 
-     //订单创建
 
-     protected function orderCreated($order_info,$express_info = []){
 
-         $info = $this->transferData($order_info,$express_info);
 
-         if(empty($info)){
 
-           return ;  
 
-         }
 
-         $info['updated_at'] = $order_info['time'];
 
-         $info["act"]  = "order_created";
 
-         $info["status"]='pending';//订单进行中
 
-         $this->sendOrderNotice(json_encode($info));
 
-     }
 
-     //向crm发送订单出货通知
 
-     /**
 
-      * @param $order_info 订单信息
 
-      * @param $express_info 快递公司信息
 
-      */
 
-     protected function sendOutWarehouse($order_info,$express_info =[]){
 
-         $info = $this->transferData($order_info,$express_info);
 
-         if(empty($info)){
 
-           return ;  
 
-         }
 
-         $info['updated_at'] = time();
 
-         $info["act"]  = "order_shipped";
 
-         $info["status"]='processing';//订单进行中
 
-         $info['orderinfo']['tracking_number'] = $order_info['waybill'];
 
-         $info['orderinfo']['carrier'] = $express_info['iscode'];
 
-         $info['orderinfo']['tracking_url'] = $express_info['url'];
 
-         $this->sendOrderNotice(json_encode($info));
 
-     }   
 
-     //订单预计送达时间
 
-     protected function orderPredelivery($order_info,$express_info =[]){
 
-         $info = $this->transferData($order_info,$express_info);
 
-         if(empty($info)){
 
-           return ;  
 
-         }
 
-         $info['updated_at'] = time();
 
-         $info["act"]  = "order_predelivery";
 
-         $info["status"]='processing';//订单进行中
 
-         $info['orderinfo']['tracking_number'] = $order_info['waybill'];
 
-         $info['orderinfo']['carrier'] = $express_info['iscode'];
 
-         $info['orderinfo']['tracking_url'] = $express_info['url'];
 
-         $this->sendOrderNotice(json_encode($info));
 
-     }
 
-     //向crm 发送订单收获通知
 
-     protected function orderDelivery($order_info,$express_info =[]){
 
-         $info = $this->transferData($order_info,$express_info);
 
-         if(empty($info)){
 
-           return ;  
 
-         }
 
-         $info['updated_at'] = time();
 
-         $info["act"]  = "order_delivery";
 
-         $info["status"]='processing';//订单进行中
 
-         $info['orderinfo']['tracking_number'] = $order_info['waybill'];
 
-         $info['orderinfo']['carrier'] = $express_info['iscode'];
 
-         $info['orderinfo']['tracking_url'] = $express_info['url'];
 
-         $this->sendOrderNotice(json_encode($info));
 
-     }
 
-     //向crm发送订单通知
 
-     protected function sendOrderNotice($params){
 
-         
 
-       
 
-       
 
-          $all_url = "http://crm.hnwmzp.cn/sqs";
 
-     
 
-          $ch = curl_init($all_url);
 
-          // 设置cURL选项 
 
-          $options = array(
 
-              CURLOPT_SSL_VERIFYPEER=>false,
 
-              CURLOPT_SSL_VERIFYHOST=>false,
 
-              CURLOPT_RETURNTRANSFER => true,   
 
-              CURLOPT_POST => true,             
 
-              CURLOPT_POSTFIELDS => $params,  
 
-              CURLOPT_HTTPHEADER => [
 
-                  'lytoken'=>'lytec',
 
-                  'Content-Type: application/json'
 
-              ],
 
-          );
 
-          // 应用这些选项到cURL会话
 
-          curl_setopt_array($ch, $options);
 
-  
 
-          // 执行cURL会话并获取响应
 
-          $response = curl_exec($ch);
 
-         
 
-         //var_dump( $response );
 
-            // 检查是否有错误发生
 
-         if ($response === false) {
 
-             $error = curl_error($ch);
 
-             curl_close($ch);
 
-             return [
 
-                 "code"=> -1,
 
-                 "msg"=> $error
 
-             ];
 
-         }
 
-         // 关闭cURL会话
 
-         curl_close($ch);
 
-         // 输出响应内容
 
-         return json_decode($response,true);
 
-     }
 
- }
 
 
  |