123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215 |
- <?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']);
- try{
- foreach($sku_list as $key => $value){
- $item_list[] = [
- "name"=>$product_list[$key],
- "sku"=>$value,
- "qty"=>isset($qty_list[$key])?$qty_list[$key]:1,
- ];
- }
-
- }catch(Exception $e){
- //防止品名和数量对不上 直接放弃不发了
- 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);
- }
- }
|