'2'.'nd','2'=>'3'.'rd','3'=>'4'.'th','4'=>'5'.'th','5'=>'6'.'th','7'=>'8'.'th','8'=>'9'.'th'); $printnumber = ($data['printnumber']==0)?'':'-'.$cs[$data['printnumber']]; $url = "http://zzys.kingtrans.net/PostInterfaceService?method=createOrder"; $Clientid = '007'; $Token = 'WlpZUw==zRKOlUNdWs9J8Qp136Mj'; $code = array('FedEx_2day'=>array('FedEx_2day','Fedex','80-86'),'usps_priority'=>array('usps_A','usps','80-86')); $printcode = $code[$data['printcode']]; $ToState = array('alabama'=>'AL','alaska'=>'AK','arizona'=>'AZ','arkansas'=>'AR','california'=>'CA','colorado'=>'CO','connecticut'=>'CT','delaware'=>'DE','florida'=>'FL','georgia'=>'GA','hawaii'=>'HI','idaho'=>'ID','illinois'=>'IL','indiana'=>'IN','iowa'=>'IA','kansas'=>'KS','kentucky'=>'KY','louisiana'=>'LA','maine'=>'ME','maryland'=>'MD','massachusetts'=>'MA','michigan'=>'MI','minnesota'=>'MN','mississippi'=>'MS','missouri'=>'MO','montana'=>'MT','nebraska'=>'NE','nevada'=>'NV','new hampshire'=>'NH','new jersey'=>'NJ','new mexico'=>'NM','new york'=>'NY','north carolina'=>'NC','north dakota'=>'ND','ohio'=>'OH','oklahoma'=>'OK','oregon'=>'OR','pennsylvania'=>'PA','rhode island'=>'RI','south carolina'=>'SC','south dakota'=>'SD','tennessee'=>'TN','texas'=>'TX','utah'=>'UT','vermont'=>'VT','virginia'=>'VA','washington'=>'WA','west virginia'=>'WV','wisconsin'=>'WI','wyoming'=>'WY','district of columbia'=>'DC','virgin islands'=>'VI','guam'=>'GU','puerto rico'=>'PR'); $data['province'] = preg_replace('/( | | |\s)/',' ',$data['province']); $data['province'] = trim($data['province'],' '); $dataprovince = strlen($data['province'])==2?$data['province']:$ToState[strtolower($data['province'])]; //创建并预报订单 $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'OrderType' => '4',//1:快件订单 2:快递制单-非实时返回单号 3:仓储订单 4:快递制单-实时返回单号(等待时间较 长)。此方法选择 4,后续如需调用其他 方法,例如调用删除接口,其他方法 OrderType 请选择 2。 'OrderDatas' => array(0=>array( 'CustomerNumber' => $data['number'].$printnumber,//订单号 'ChannelCode' => $printcode[0],//渠道代码 'CountryCode' => $data['lb'],//国家二字码 'TotalWeight' => $data['zzl'],//订单重量 'TotalValue' => $data['zsbjz'],//申报价值 'Number' => $data['zjs'],//件数 'Note' => $data['number'],//备注 /** 'Insurance' => array(//是否购买保险 'Code' => '',//保险类型 'Value' => '',//保险金额 ), **/ 'FeePayData' => array(//运费支付信息 'FeePayType' => 'PP',//支付方式 [ PP:预付,CC:到付, TP:第三方] 'FeePayAccountNumber' => '',//支付账号 支付方式为 TP 时必传 支付方式为 PP 并且渠道 UPS 时必传 'FeePayCountryCode' => '',//支付账号对应国家 支付方式为 TP 时必传 'FeePayPostCode' => '',//支付账号对应邮编 支付方式为 TP 并且渠道 FEDEX 时必传 ), 'TaxPayData' => array(//税金/关税支付信息 OrderType 为 [快递制单] 时必传字段 'TaxPayType' => 'PP',//支付方式 [ PP:预付,CC:到付, TP:第三方] 'TaxPayAccountNumber' => '',//支付账号 支付方式为 TP 时必传 支付方式为 PP 并且渠道 UPS 时必传 'TaxPayCountryCode' => '',//支付账号对应国家 支付方式为 TP 时必传 'TaxPayPostCode' => '',//支付账号对应邮编 支付方式为 TP 并且渠道 FEDEX 时必传 ), 'Recipient' => array(//收件人信息 'Name' => $data['name'],//姓名 'Company' => $data['client'],//公司 'Addres1' => $data['address'],//地址1 'Addres2' => $data['address2'],//地址2 'Tel' => preg_replace('/\D/s','',$data['phone']),//手机 'Province' => $dataprovince,//省/州 'City' => $data['city'],//城市 'Post' => trim($data['zipcode'],' '), 'Email' => trim($data['email'],' ')//邮箱 ), 'OrderItems' => array(0=>array(//订单明细 'Money' => 'USD',//货币单位 //'Sku' => '123123',//产品 Sku (OrderType 为仓储订单必传) 'Cnname' => $data['zwpm'],//产品中文名 'Enname' => $data['sbpm'].'*'.$data['ts'],//产品英文名 'Price' => $data['dtsbjz'],//单价 'Weight' => $data['zzl'],//重量 'Num' => $data['ts']//数量 )), 'Volumes' => array(//材积明细 (OrderType 为快递制单必传) 0=>array( 'Weight' => $data['zzl'],//实重 'Number' => '1',//件数 'Length' => '30',//长 'Width' => '30',//宽 'Height' => '4',//高 ))) ) ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if(!isset($res['returnDatas'][0]['corpBillid'])) { $g = array('x'=>'0','Description'=>$res['returnDatas'][0]['message'],'cs'=>$count); } else { $yd = $this->get_yd($res['returnDatas'][0]['corpBillid'],$printcode[2]); //$fp = $this->get_fp($res['returnDatas'][0]['corpBillid']); if($yd != 'c')// && $fp != 'c' { $g = array('x'=>'1','waybillid'=>$res['returnDatas'][0]['corpBillid'],'waybill'=>$res['returnDatas'][0]['trackNumber'],'yd'=>$yd);//'fp'=>$fp } else { $g = array('x'=>'0','Description'=>'换取运单失败,请重试。'.$res['returnDatas'][0]['corpBillid']); } } return $g; } public function get_yd($waybill,$PrintPaper) { $url = "http://zzys.kingtrans.net/PostInterfaceService?method=printOrderLabel"; $Clientid = '007'; $Token = 'WlpZUw==zRKOlUNdWs9J8Qp136Mj'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'CorpBillidDatas'=> array(0=>array('CorpBillid'=>$waybill)), 'OrderType'=> "2",//1:快件订单 2:快递制单 3:仓库订单 'PrintPaper'=> $PrintPaper,//打印纸张 快递制单只固定为:label 和 A4 'PrintContent'=> "1"//打印内容 1:地址标签 2:报关单 3:配货信息 可自由组合用“,”号隔开 如:1,2,3 ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if($res['statusCode'] == 'success') { return $res['url']; } else { return 'c'; } } public function get_data_gn($data)//国内 { $cs = array('1'=>'2'.'nd','2'=>'3'.'rd','3'=>'4'.'th','4'=>'5'.'th','5'=>'6'.'th','7'=>'8'.'th','8'=>'9'.'th'); $printnumber = ($data['printnumber']==0)?'':'-'.$cs[$data['printnumber']]; $url = "http://ambcargo.kingtrans.cn/PostInterfaceService?method=createOrder"; $Clientid = 'LYFZP'; $Token = 'NGkJSDx3bAxojl1YN232'; $code = array('DPEX'=>array('11','DPEX','1'),'ARAMEX'=>array('002','安迈世',0),'FEDEX'=>array('FEDEX_1CC','FEDEX_1CC',';lab10_10'),'UPS'=>array('04','UPS',0),'DHL'=>array('06','DHL',';lab10_10'),'FED-SN-IP'=>array('07','FED-SN-IP',';lab10_10'),'WML-FEDEX-ZZ'=>array('05','WML-FEDEX-ZZ',';lab10_10'),'FED-XS-F'=>array('03','FED-XS-F',';lab10_10'),'CNE'=>array('08','全球优先CNE','label10x10;0'),'TCNE'=>array('09','E速宝特惠','label10x10;0')); $printcode = $code[$data['printcode']]; //创建并预报订单 $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'OrderType' => '1',//1:快件订单 2:快递制单-非实时返回单号 3:仓储订单 4:快递制单-实时返回单号(等待时间较 长)。此方法选择 4,后续如需调用其他 方法,例如调用删除接口,其他方法 OrderType 请选择 2。 'OrderDatas' => array(0=>array( 'CustomerNumber' => $data['number'].$printnumber,//订单号 'ChannelCode' => $printcode[0],//渠道代码 'CountryCode' => $data['lb'],//国家二字码 'TotalWeight' => $data['zzl'],//订单重量 'TotalValue' => $data['zsbjz'],//申报价值 'Number' => $data['zjs'],//件数 'Note' => $data['number'],//备注 /** 'Insurance' => array(//是否购买保险 'Code' => '',//保险类型 'Value' => '',//保险金额 ), **/ 'FeePayData' => array(//运费支付信息 'FeePayType' => 'PP',//支付方式 [ PP:预付,CC:到付, TP:第三方] 'FeePayAccountNumber' => '',//支付账号 支付方式为 TP 时必传 支付方式为 PP 并且渠道 UPS 时必传 'FeePayCountryCode' => '',//支付账号对应国家 支付方式为 TP 时必传 'FeePayPostCode' => '',//支付账号对应邮编 支付方式为 TP 并且渠道 FEDEX 时必传 ), 'TaxPayData' => array(//税金/关税支付信息 OrderType 为 [快递制单] 时必传字段 'TaxPayType' => 'PP',//支付方式 [ PP:预付,CC:到付, TP:第三方] 'TaxPayAccountNumber' => '',//支付账号 支付方式为 TP 时必传 支付方式为 PP 并且渠道 UPS 时必传 'TaxPayCountryCode' => '',//支付账号对应国家 支付方式为 TP 时必传 'TaxPayPostCode' => '',//支付账号对应邮编 支付方式为 TP 并且渠道 FEDEX 时必传 ), 'Recipient' => array(//收件人信息 'Name' => $data['name'],//姓名 'Addres1' => $data['address'],//地址1 'Addres2' => $data['address2'],//地址2 'Mobile' => preg_replace('/\D/s','',$data['phone']),//手机 'Province' => $data['province'],//省/州 'City' => $data['city'],//城市 'Post' => trim($data['zipcode'],' '), 'Email' => trim($data['email'],' ')//邮箱 ), 'OrderItems' => array(0=>array(//订单明细 'Money' => 'USD',//货币单位 //'Sku' => '123123',//产品 Sku (OrderType 为仓储订单必传) 'Cnname' => $data['zwpm'],//产品中文名 'Enname' => $data['sbpm'].'*'.$data['ts'],//产品英文名 'Price' => $data['dtsbjz'],//单价 'Weight' => $data['zzl'],//重量 'Num' => $data['ts']//数量 ))) ) /**, 'Volumes' => array(//材积明细 (OrderType 为快递制单必传) 'Weight' => '123123',//实重 'Number' => '123123',//件数 'Length' => '123123',//长 'Width' => '123123',//宽 'Height' => '123123',//高 ), **/ ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if(!isset($res['returnDatas'][0]['corpBillid'])) { $g = array('x'=>'0','Description'=>$res['returnDatas'][0]['message']); } else { $yd = $this->get_yd($res['returnDatas'][0]['corpBillid'],$printcode[2]); $fp = $this->get_fp($res['returnDatas'][0]['corpBillid'],$count); if($yd != 'c' && $fp != 'c') { $g = array('x'=>'1','waybillid'=>$res['returnDatas'][0]['corpBillid'],'waybill'=>$res['returnDatas'][0]['trackNumber'],'yd'=>$yd,'fp'=>$fp); } else { $g = array('x'=>'0','Description'=>'换取运单失败,请重试'); } } return $g; } public function get_yd_gn($waybill,$PrintPaper)//国内 { $url = "http://ambcargo.kingtrans.cn/PostInterfaceService?method=printOrderLabel"; $Clientid = 'LYFZP'; $Token = 'NGkJSDx3bAxojl1YN232'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'CorpBillidDatas'=> array(0=>array('CorpBillid'=>$waybill)), 'OrderType'=> "1",//1:快件订单 2:快递制单 3:仓库订单 'PrintPaper'=> $PrintPaper,//打印纸张 快递制单只固定为:label 和 A4 'PrintContent'=> "1"//打印内容 1:地址标签 2:报关单 3:配货信息 可自由组合用“,”号隔开 如:1,2,3 ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if($res['statusCode'] == 'success') { return $res['url']; } else { return 'c'; } } public function get_fp($waybill) { $url = "http://zzys.kingtrans.net/PostInterfaceService?method=printOrderInvoice"; $Clientid = '007'; $Token = 'WlpZUw==zRKOlUNdWs9J8Qp136Mj'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'CorpBillidDatas'=> array(0=>array('CorpBillid'=>$waybill)) ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); return $res;exit; if($res['statusCode'] == 'success') { return $res['url']; } else { return 'c'; } } public function get_del($waybill)//删除 { $url = "http://zzys.kingtrans.net/PostInterfaceService?method=deleteOrder"; $Clientid = '007'; $Token = 'WlpZUw==zRKOlUNdWs9J8Qp136Mj'; $count = array( 'OrderType'=> "1", 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'CorpBillidDatas'=> array(0=>array('CorpBillid'=>$waybill)) ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); return $res;exit; $data = 0; if(isset($res['returnDatas'][0]['statusCode'])) { $data = ($res['returnDatas'][0]['statusCode'] == 'success')?1:0; } return $data; } public function get_PrintPaper()//根据渠道码获取打印尺寸 { $url = "http://zzys.kingtrans.net/PostInterfaceService?method=searchPrintPaper"; $Clientid = '007'; $Token = 'WlpZUw==zRKOlUNdWs9J8Qp136Mj'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'ChannelCode'=> "usps_priority" ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); return $res; } public function get_abc()//快递渠道 { $url = "http://ambcargo.kingtrans.cn/PostInterfaceService?method=searchStartChannel"; $Clientid = 'LYFZP'; $Token = 'NGkJSDx3bAxojl1YN232'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ) ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); return $res; } public function get_logistics($data)//快递渠道 { $url = "http://ambcargo.kingtrans.cn/PostInterfaceService?method=searchTrack"; $Clientid = 'LYFZP'; $Token = 'NGkJSDx3bAxojl1YN232'; $count = array( 'Verify' => array( 'Clientid'=>$Clientid, 'Token'=>$Token ), 'Datas'=> array(0=>array('TrackNumber'=>$data['waybill'])) ); $count = json_encode($count,true); $ch = curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_HEADER,0); curl_setopt($ch,CURLOPT_POST, 1); curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,600); curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query(array('json'=>$count))); $res = curl_exec($ch); curl_close($ch); $res = json_decode($res,true); if($res['statusCode'] == 'success') { $exstate = 0; $zt = ($res['returnDatas']['0']['statusCode'] == 'success')?$res['returnDatas']['0']['items']:'cw'; $xq = ''; if($zt == 'cw') { $content = date('Y-m-d H',time()).'-查询失败'; $list = array('content'=>$content,'f'=>0); return $list;exit; } foreach($zt as $v) { if($v['info'] == 'Delivered') { $exstate = 6; break; } else if(stripos($v['location'],$data['country']) !== false) { $exstate = 4; break; } else if($v['info'] == '订单信息已收到') { $exstate = 2; break; } } if($exstate > 0) { foreach($zt as $v) { $xq .= date('m-d H:i',strtotime($v['dateTime'])).' '.$v['info'].'
'; } $content = date('Y-m-d H',time()).'-查询成功'; $list = array('exstate'=>$exstate,'content'=>$content,'f'=>1,'data'=>$xq);//正常可发送站内信 } else { $list = ''; } } else { $content = date('Y-m-d H',time()).'-查询失败'; $list = array('content'=>$content,'f'=>0);//非正常只更改详情信息 } return $list; } } //end class