| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 | 
							- <?php defined('BASEPATH') OR exit('No direct script access allowed');
 
- class Webhook extends Start_Controller {
 
-     public function __construct(){
 
- 		parent::__construct();
 
-         $this->load->library('session');
 
-         $this->load->_model('Model_fullorder','fullorder');
 
- 		$this->load->_model('Model_fullordertt','fullordertt');
 
- 		$this->load->_model('Model_fullordersmt','fullordersmt');
 
- 		$this->load->_model('Model_als','als');
 
- 		$this->load->_model('Model_notice','notice');
 
- 		$this->load->_model('Model_express','express');
 
- 		$this->load->_model('Model_shop','shop');
 
-     }
 
-     public function _remap($arg,$arg_array)
 
-     {
 
- 		if($arg == '17track')
 
-         {
 
-              $this->_17track();
 
-         }
 
- 		else
 
- 		{
 
- 			 $this->_index();
 
- 		}
 
- 	}
 
- 	
 
- 	public function _17track()
 
- 	{
 
- 		$xq = array();
 
- 		$j = file_get_contents('PHP://input');
 
- 		$j = json_decode($j, true);
 
- 		if(isset($j['data']) && isset($j['sign']))
 
- 		{
 
- 			$sh = hash("sha256",$j['event'].'/'.json_encode($j['data']).'/0811AC1711EAABB7D764D04B824F8C2D');
 
- 			if($j['data']['number'] != '')
 
- 			{
 
- 				$f = 'fullorder';
 
- 				$d = $this->fullorder->get_waybill($j['data']['number']);
 
- 				if(!$d)
 
- 				{
 
- 					$f = 'fullordersmt';
 
- 					$d = $this->fullordersmt->get_waybill($j['data']['number']);
 
- 				}
 
- 				if(!$d)
 
- 				{
 
- 					exit;
 
- 				}
 
- 				if($j['data']['track']['e'] == 0)//查询不到
 
- 				{
 
- 					$exstate = 0;//无信息
 
- 				}
 
- 				else if($j['data']['track']['e'] == 10)//运输途中
 
- 				{
 
- 					$exstate = 3;//在途中
 
- 				}
 
- 				else if($j['data']['track']['e'] == 20)//运输过久
 
- 				{
 
- 					$exstate = 3;//在途中
 
- 				}
 
- 				else if($j['data']['track']['e'] == 30)//到达待取
 
- 				{
 
- 					$exstate = 5;//派送中
 
- 				}
 
- 				else if($j['data']['track']['e'] == 35)//投递失败
 
- 				{
 
- 					$exstate = 1;//派送异常
 
- 				}
 
- 				else if($j['data']['track']['e'] == 40)//成功签收
 
- 				{
 
- 					$exstate = 6;//签收
 
- 				}
 
- 				else if($j['data']['track']['e'] == 50)//可能异常
 
- 				{
 
- 					$exstate = 1;//派送异常
 
- 				}
 
- 				if(isset($j['data']['track']['z1'][0]))
 
- 				{
 
- 				    foreach ($j['data']['track']['z1'] as $v) 
 
- 				    {
 
- 					    $xq .= $v['a'].' ['.$v['c'].'] '.$v['z'].'<br />';// a日期 c地址 z状态
 
- 				    }
 
- 				}
 
- 				$this->$f->save(array('expressstate'=>$exstate,'excontent'=>$xq),$d['id']);
 
- 				$time = time();
 
- 				$notice = $this->notice->find_all("message = '1' and state = '1' and type = '2' and ktime < '$time' and jtime > '$time' and shop = '".$d['shop']."' and logisticstatus = '".$exstate."'");
 
- 				if($notice && $d['wlyc'] == '0' && $d['wltype'] != '1' && $d['source'] != '1' && stripos($d['wlcontent'],$notice[0]['title']) === false)
 
- 				{
 
- 					$this->_sdfs($d,$notice[0]['id']);
 
- 				}
 
- 			}
 
- 		}
 
- 	}
 
- 	
 
- 	public function _sdfs($fullorder,$id)//手动发送信息
 
- 	{
 
- 		$time = time();
 
- 		$notice = $this->notice->read($id);//无条件同模板匹配
 
- 		$shop = $this->shop->read($fullorder['shop']);
 
- 		$express = $this->express->read($fullorder['express']);
 
- 		if($notice['type'] == '1')
 
- 		{
 
- 			$fslx = 'tab';
 
- 			$content = '自动发送';
 
- 			$stripos = '1-';
 
- 		}
 
- 		else if ($notice['type'] == '2')
 
- 		{
 
- 			$fslx = 'logisticstatus';
 
- 			$content = $notice['title'];
 
- 			$stripos = $notice['type'].'-'.$notice[$fslx].'|';
 
- 		}
 
- 		if(stripos($fullorder['zdstate'],$stripos) === false && $fullorder['wltype'] == '0')//如果没发送过并且允许发送
 
- 		{
 
- 		    $go = $this->notice->get_god($fullorder,$shop,$express,$notice['content'],$notice['message'],$notice['emailtitle']);
 
- 		    if($go == 1)
 
- 		    {
 
- 				if($notice['type'] == '1')
 
- 				{
 
- 			       $this->fullorder->save(array('content'=>$fullorder['content'].$content.'-成功;','zdstate'=>$fullorder['zdstate'].$notice['type'].'-'.$notice[$fslx].'|','exstateerror'=>''),$fullorder['id']);
 
- 				}
 
- 				else if ($notice['type'] == '2')
 
- 				{
 
- 					$this->fullorder->save(array('wlcontent'=>$fullorder['wlcontent'].$content.'-成功;','wlfstime'=>time(),'zdstate'=>$fullorder['zdstate'].$notice['type'].'-'.$notice[$fslx].'|','exstateerror'=>''),$fullorder['id']);
 
- 				}
 
- 			     return 1;
 
- 		    }
 
- 		    else
 
- 		    {
 
- 				if($notice['type'] == '1')
 
- 				{
 
- 			        $this->fullorder->save(array('exstateerror'=>$content.'发送失败:'.date('Y-m-d H',time()).'-'.$go.'('.$notice['type'].'-'.$notice[$fslx].')'),$fullorder['id']);
 
- 				}
 
- 				else if ($notice['type'] == '2')
 
- 				{
 
- 					$this->fullorder->save(array('wlerror'=>$content.'发送失败:'.date('Y-m-d H',time()).'-'.$go.'('.$notice['type'].'-'.$notice[$fslx].')'),$fullorder['id']);
 
- 				}
 
- 		    }
 
- 		}
 
- 	}
 
- }
 
 
  |