$Token, 'UAccount'=>$UAccount, 'Password'=>$Password, 'OrderList' => array( 0 => array( 'Address1' => $data['address'], 'Address2' => $data['address2'], 'ApiOrderId' => $data['number'], 'City' => $data['city'], 'CiId' => $data['lb'], 'County' => $data['province'], 'PackType' => 3,//包装类型(1:信封,2:文件,3:包裹)(默认包裹) 'Phone'=>$data['phone'], 'PtId' => $PtId,//邮政方式简码 'ReceiverName' => $data['name'], 'Remark'=> $data['number'], 'SalesPlatformFlag' => 0, 'SyncPlatformFlag' => 'flyt.logistics.longying',//第三平台标识 'Zip' => trim($data['zipcode'],' '), 'OrderDetailList' => array(0=>array( 'ItemName'=>$data['sbpm'], 'OriginalPlatformOrderId'=>$data['orderinfo'], 'Price'=>$data['dtsbjz'], 'Quantities'=>$data['ts'] ) ), 'HaikwanDetialList' => array(0=>array( 'HwCode'=>'67041100', 'ItemCnName'=>$data['zwpm'], 'ItemEnName'=>$data['sbpm'], 'ProducingArea'=>'CN', 'Quantities'=>$data['ts'], 'UnitPrice'=>$data['dtsbjz'], 'Weight'=>$data['zzl'], 'CCode'=>'USD', ) ) ) ) ); $json = json_encode($json,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept-Language: zh-cn', 'Connection: Keep-Alive', 'Cache-Control: no-cache', 'Content-type: application/json;charset=UTF-8')); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,$json); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if(!isset($res['ErpSuccessOrders'][0]['TraceId']) && !isset($res['ErpSuccessOrders'][0]['OrderId'])) { $g = array('x'=>'0','Description'=>$res['Remark'].':'.$res['ErpFailOrders'][0]['Remark'],'res'=>json_encode(array($res),true)); } else { for($i=0;$i<86;$i++) { sleep(1); $yd = $this->get_yd($res['ErpSuccessOrders'][0]['OrderId']); if(stripos($yd[1],'跟踪号或配送跟踪号为空') === false) { break; } if($yd[0] == '1') { break; } } if($yd[0] != '2') { $g = array('x'=>'1','waybill'=>$res['ErpSuccessOrders'][0]['TraceId'],'yd'=>$yd[1],'res'=>json_encode(array($res,$yd),true)); } else { $g = array('x'=>'0','Description'=>$yd[1],'res'=>json_encode(array($res,$yd),true)); } } return $g; } public function get_token() { $url = "http://exapi.flytcloud.com/api/auth/Authorization/GetAccessToken"; $grant_type = 'password'; $username = 'longying'; $password = md5('ljygt&0IP!'); //创建并预报订单 $json = array( 'grant_type' => $grant_type, 'username' => $username, 'password' => $password, ); $json = json_encode($json,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept-Language: zh-cn', 'Connection: Keep-Alive', 'Cache-Control: no-cache', 'Content-type: application/json;charset=UTF-8')); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,$json); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); return $res; } public function get_yd($data) { $path = $_SERVER["DOCUMENT_ROOT"] . '/data/dpd_access_token.txt'; $access_token = ''; if(file_exists($path)) { $file_read = fopen($path, 'r'); $access_str = fgets($file_read); fclose($file_read); $access_arr = explode(':', $access_str); if (time() < intval($access_arr[0])) { $access_token = isset($access_arr[1]) ? $access_arr[1] : ''; } } if(!$access_token) { $file = fopen($path, 'w'); $info = $this->get_token(); if(!$info['expires_in']) { return array(2,'令牌获取错误,请重试!');exit; } $access_new = (time() + $info['expires_in']) . ':' . $info['access_token']; fwrite($file, $access_new); fclose($file); $access_token = $info['access_token']; } $url = "http://exapi.flytcloud.com/api/label/LabelProvider/GetLabelBatchExt"; $Token = $access_token; //创建并预报订单 $json = array( 'OrderIdlst' => array($data), 'Format' => '0' ); $json = json_encode($json,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'token:'.$Token, 'Content-type: application/json;charset=UTF-8')); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,$json); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if(isset($res['Data']['Label'])) { return array(1,$res['Data']['Label']);exit; } else { return array(2,$res['ErrMsg']);exit; } } public function get_logistics($waybill) { $url = "http://tracking.flytcloud.com/Trackingod/TrackOrder"; $Token = '119904B54744499F9C7A29A84C2C7051'; //创建并预报订单 $json = array( 'key' => $Token, 'tracking_number' => $waybill, ); $json = json_encode($json,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Accept-Language: zh-cn', 'Connection: Keep-Alive', 'Cache-Control: no-cache', 'Content-type: application/json;charset=UTF-8')); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,$json); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); $list = ''; if(isset($res['dat']['0']['track']['z1'][0]['trackingStatus'])) { if($res['dat']['0']['track']['e'] > '0') { $zt = $res['dat']['0']['track']['e']; if($zt >= '2' && $zt< '10') { $exstate = 1; } else if($zt >= '10' && $zt < '30') { $exstate = 2; } else if($zt >= '30' && $zt < '40') { $exstate = 3; } else if($zt == '40' || $zt == '41') { $exstate = 4; } else { $exstate = 0; } if($se) { $list = array('f'=>2); } else { foreach($res['dat']['0']['track']['z1'] as $v) { $xq .= date('m-d H:i',strtotime($v['a'])).' '.$v['z'].'
'; } $content = date('Y-m-d H',time()).'-查询成功'; $list = array('exstate'=>$exstate,'content'=>$content,'f'=>1,'data'=>$xq);//正常可发送站内信 } } else { $list = ''; } } return $res; } } //end class