| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239 | 
							- <?php
 
- defined('BASEPATH') OR exit('No direct script access allowed');
 
- /**
 
-  * 本类是为了让商城网站可以查询快递轨迹开发出来的 后期可能会增加其他功能 对外的
 
-  */
 
- class Apiexpress extends Start_Controller {
 
-     public function __construct(){
 
- 		parent::__construct();
 
-         $this->load->_model('Model_logic_order','logic_order');
 
-         $this->load->_model('Model_logic_tools','logic_tools');
 
-         $this->load->_model('Model_awlgx','awlgx');
 
-         $this->load->_model("Model_express","express");
 
-         $this->load->_model("Model_logic_ding","logic_ding");
 
-     }
 
-     private $key = "6amg!pnfrlbpnjgirv"; //加密所需要到的key
 
-     private $iv = "6ook4k!2w94m6jtm";//加密所需要到的iv
 
-     //定义方法的调用规则 获取URI第二段值
 
-     public function _remap($arg,$arg_array)
 
-     {
 
-        
 
-         if($arg == 'search')
 
-         {
 
-             $this->search();
 
-         }else{
 
-             $this->_a();
 
-         }
 
-     }
 
-     public function _a(){
 
-         die();
 
-     }
 
-     /**
 
-      * 搜索订单状态和快递信息接口
 
-      * @param $arg_array[0] string 请求店铺 
 
-      * @param $arg_array[1] string 请求单号
 
-      */
 
-     public function search(){
 
-         $data = file_get_contents('PHP://input');
 
- 		$data = json_decode($data, true);
 
-         $shop = isset($data['shop'])?$data['shop']:"";
 
-         $order_no = isset($data['order_no'])?$data['order_no']:"";
 
-         
 
-         $apply_time = isset($data['time'])?$data['time']:0;
 
-       
 
-         $jiami_str = isset($data['key'])?$data['key']:"";
 
-         
 
-         $now_time = time();
 
-         if(strlen( $apply_time."") != 10){
 
-              die($this->logic_tools->ret_json(-1,"参数异常"));
 
-         }
 
-         if(empty($shop)){
 
-             die($this->logic_tools->ret_json(-1,"请求店铺异常"));
 
-         }
 
-         $shop_key = $this->logic_tools->getshopname($shop);
 
-         if(empty($jiami_str)){
 
-             die($this->logic_tools->ret_json(-1,"秘钥信息不存在"));
 
-         }
 
-         $jiemi_str = $this->logic_tools->toolsjiemi($jiami_str,$this->key,$this->iv);
 
-         if(empty($shop_key)){
 
-             die($this->logic_tools->ret_json(-1,"该店铺的秘钥不存在"));
 
-         }
 
-         $jiemi_arr = explode("+",$jiemi_str);
 
-         $jiemi_key = isset($jiemi_arr[0])?$jiemi_arr[0]:"";
 
-         $jiemi_time = isset($jiemi_arr[1])?$jiemi_arr[1]:"";
 
-         if((int)$jiemi_time != (int)$apply_time){
 
-             die($this->logic_tools->ret_json(-1,"请求超时"));
 
-         }
 
-         
 
-         if( $now_time - $apply_time > 100){
 
-             die($this->logic_tools->ret_json(-1,"请求已超时"));
 
-         }
 
-         if($jiemi_key != $shop_key){
 
-             die($this->logic_tools->ret_json(-1,"该店铺的秘钥不正确"));
 
-         }
 
-         
 
-         if(empty($order_no)){
 
-             die($this->logic_tools->ret_json(-1,"请求单号异常"));
 
-         }
 
-         $table_name = $this->logic_tools->getOrderTable($shop);
 
-         if(empty($table_name)){
 
-             die($this->logic_tools->ret_json(-1,"店铺未开通此功能!!!"));
 
-         }
 
-         $info = $this->logic_order->getInfoByTableName($table_name,"orderinfo =  '".$shop.$order_no. "'  and  shop = ".$shop,"id,express,excontent,expressstate,waybill,dtime,printtime,client,name,country,province,city,address,address2,street,phone,zipcode,dlzemailtime");
 
-         if(empty($info)){
 
-             die($this->logic_tools->ret_json(-1,"未查询到相关快递信息"));
 
-         }
 
-         $receive_time = "";//客户签到时间
 
-         $shipping_time = "";//快递接受发货时间
 
-         $express_trace = [];
 
-         $express_info = $this->express->read($info['express']);
 
-         
 
-         if(!empty($info['excontent'])){
 
-             $tmp_arr =  explode("<br />",$info['excontent']);
 
-             if(empty($tmp_arr)){
 
-                 array_pop($tmp_arr);
 
-                 $re_arr = array_reverse($tmp_arr);
 
-                 if(!isset($re_arr[0])){
 
-                     $this->logic_ding->sendToDing("Apiexpress接口95行异常".json_encode($info,JSON_UNESCAPED_UNICODE));
 
-                 }
 
-                 if(strpos($re_arr[0],"[") !== false){
 
-                     $shipping_time_arr = explode("[",$re_arr[0] ) ;
 
-                     $shipping_time = $shipping_time_arr[0];
 
-                     if($info['expressstate'] == 6){
 
-                         $receive_tmp_arr =  explode("[",$tmp_arr[0] ) ;
 
-                         $receive_time = $receive_tmp_arr[0];
 
-                     }
 
-                 }else{
 
-                     $shipping_time = date("Y-m-d H:i:s",$info['dlzemailtime']);
 
-                     if($info['expressstate'] == 6){
 
-                         
 
-                         $receive_time = -1;
 
-                     }
 
-                 }
 
-                 
 
-                 $express_trace = $re_arr;
 
-             }else{
 
-                 die($this->logic_tools->ret_json(-1,"运单时间太久,暂无法查询"));
 
-             }
 
-             
 
-         }
 
-         if(empty($info['dtime'])){
 
-             $preparing = [
 
-                 "desc"=>"",
 
-                 "status"=>0,
 
-                 "date"=>"",
 
-             ];
 
-         }else{
 
-             $preparing = [
 
-                 "desc"=>"The Order Has Been Created And TheMerchant lspreparing Your Order.",
 
-                 "status"=>1,
 
-                 "date"=>date("Y-m-d H:i:s",$info['dtime']),
 
-             ];
 
-         }
 
-         if(empty($info['printtime'])){
 
-             $warehouse_processing = [
 
-                 "desc"=>"",
 
-                 "status"=>0,
 
-                 "date"=>"",
 
-             ];
 
-         }else{
 
-             $warehouse_processing = [
 
-                 "desc"=>"Packing And Final Check",
 
-                 "status"=>1,
 
-                 "date"=>date("Y-m-d H:i:s",$info['printtime']),
 
-             ];
 
-         }
 
-         if(empty($shipping_time)){
 
-             $shipping = [
 
-                 "desc"=>"",
 
-                 "status"=>0,
 
-                 "date"=>"",
 
-             ];
 
-         }else{
 
-             $shipping = [
 
-                 "desc"=>"Courier Company Picked Up The Package",
 
-                 "status"=>1,
 
-                 "date"=>$shipping_time,
 
-             ];
 
-         }
 
-        
 
-         if(empty($receive_time)){
 
-             $received = [
 
-                 "desc"=>"",
 
-                 "status"=>0,
 
-                 "date"=>"",
 
-             ];
 
-         }else{
 
-             if($receive_time < 0){
 
-                 $received = [
 
-                     "desc"=>"Order signed for successfully",
 
-                     "status"=>1,
 
-                     "date"=>0,
 
-                 ];
 
-             }else{
 
-                 $received = [
 
-                     "desc"=>"Order signed for successfully",
 
-                     "status"=>1,
 
-                     "date"=>$receive_time,
 
-                 ];
 
-             }
 
-            
 
-         }
 
-        
 
-         $icon = 7;
 
-         $final_express_name = $express_name = strtolower($express_info['iscode']);
 
-         if(strpos($express_name,"usps") !== false){
 
-             $icon = 1;
 
-             $final_express_name = "usps";
 
-         }
 
-         if(strpos($express_name,"dhl") !== false){
 
-             $icon = 2;
 
-             $final_express_name = "dhl";
 
-         }
 
-         if(strpos($express_name,"ups") !== false){
 
-             $icon = 3;
 
-             $final_express_name = "ups";
 
-         }
 
-         if(strpos($express_name,"fedex") !== false){
 
-             $icon = 4;
 
-             $final_express_name = "fedex";
 
-         }
 
-         if(strpos($express_name,"aramex") !== false){
 
-             $icon = 5;
 
-             $final_express_name = "aramex";
 
-         }
 
-         if(strpos($express_name,"ges") !== false){
 
-             $icon = 6;
 
-             $final_express_name = "ges";
 
-         }
 
-     
 
-         $ret_arr = [
 
-             "order_no"=>$order_no,
 
-             'icon'=>$icon,
 
-             "express_name"=>strtoupper($final_express_name) ,
 
-             "waybill"=>$info['waybill'],
 
-             "preparing"=>$preparing,//店家处理
 
-             "warehouse_processing"=>$warehouse_processing,//工厂处理
 
-             "shipping"=> $shipping,//快递发货
 
-             "received"=>$received,//客户收货
 
-             "express_trace"=>$express_trace,//快递跟踪信息
 
-             "address_info"=>[
 
-                 "client"=>$info['client'],//客户姓名
 
-                 "name"=>$info['name'],//收件人姓名
 
-                 "country"=>$info['country'],//国家
 
-                 "province"=>$info['province'],//省份
 
-                 "city"=>$info['city'],//城市
 
-                 "address"=>$info['address'],//地址
 
-                 "address2"=>$info['address2'],//地址
 
-                 "street"=>$info['street'],//街道
 
-                 "phone"=>$info['phone'],//电话
 
-                 "zipcode"=>$info['zipcode'],//邮编
 
-             ]
 
-         ];
 
-         die($this->logic_tools->ret_json(1,"success",$ret_arr));
 
-     }
 
-     
 
- }
 
 
  |