| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- <?php
- class Model_zxyuntu extends Lin_Model {
- //private $clientid = '80295';
- private $clientid = '80295';
- //private $token = 'WlpGWA==xuhlVp2o172e3f3rkB5n';
- private $token = '72457b8b-3ffe-4400-ba24-eca33e192703';
- //private $url = "https://zzfx.kingtrans.net/PostInterfaceService?method=";
- //private $url = "http://120.79.16.212:9999//api/order/createForecast";
- private $url = "http://120.79.16.212:9999//api";
- function __construct(){
- parent::__construct();
- $this->load->_model("Model_logic_ding","logic_ding");
- }
- //获取快递信息
- public function get_data($data){
- $cs = array('1'=>'2'.'nd','2'=>'3'.'rd','3'=>'4'.'th','4'=>'5'.'th','5'=>'6'.'th','6'=>'7'.'th','7'=>'8'.'th','8'=>'9'.'th','9'=>'10'.'th','10'=>'11'.'th','11'=>'12'.'th','12'=>'13'.'th',);
- $printnumber = ($data['printnumber']==0)?'':'-'.$cs[$data['printnumber']];
- $Clientid = $this->clientid;
- $Token = $this->token;
- $code = array('USKD01'=>array('USKD01','USKD01','lable'),'ZXDPD_UK'=>array('DPD01','DPD01','label'),'ZXDPD_BTC'=>array('DPD02','DPD02','label'));
- $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'])];
- if(strlen($data['province'])==2){
- $dataprovince = $data['province'];
- }else{
- if(isset($ToState[strtolower($data['province'])])){
- $dataprovince = empty($data['province'])?'':$ToState[strtolower($data['province'])];
- }else{
- $dataprovince = $data['province'];
- }
- }
- if($data['printcode'] == 'ZXDPD_UK'){
- $orderType = 4;
- }elseif($data['printcode'] == 'ZXDPD_BTC'){
- $orderType = 4;
- }else{
- $orderType = 1;
- }
- //dpd不用中文 云途用
- $ccname = "";
- if(($data['printcode'] == 'ZXDPD_UK') || ($data['printcode'] == 'ZXDPD_BTC')){
- $ccname = $data['sbpm'].'*'.$data['ts'];
- }else{
- $ccname = $data['zwpm'];
- }
- $djzl = number_format($data['zzl'] / $data['zjs'], 2);
-
- $post = [
- "authorization" => [
- "code" => $Clientid,
- "token" => $Token,
- ],
- "datas" => [
- [
- "order"=>[
- "channelid"=>($data['js'] == 1)?$printcode[1]:$printcode[0],
- "customernumber1"=>$data['number'].$printnumber,
- "number"=> $data['zjs'],
- "forecastweight"=>$data['zzl'],
- "isbattery"=>0,//是否带电(0:否,1:是)
- "ismagnet"=>0,//是否带磁(0:否,1:是)
- "isliquid"=>0,//是否液体(0:否,1:是)
- "ispowder"=>0,//是否粉末(0:否,1:是)
- "feepaytype"=>"pp",//运费支付方式 CC:到付,PP:预付,TP:第三方
- "taxpaytype"=>"pp",//税金支付方式
- "countrycode"=>$data['lb'],
- "consigneename"=>$data['name'],//收件人名称
- "consigneecorpname"=>$data['client'],
- "consigneeaddress1"=>$data['address'],// 限制100
- "consigneeaddress2"=>$data['address2'],
- "consigneecity"=>$data['city'],//收件人城市
- "consigneezipcode"=>trim($data['zipcode'],' '),//收件人邮编
- "consigneeemail"=>trim($data['email'],' '),//收件人邮箱
- "consigneeprovince"=>$dataprovince,//收件人省州
- "consigneetel"=>preg_replace('/\D/s','',$data['phone']),
- //"sendertype"=>'01',//寄件人类型(有效值为:01:企业(B2B) 或 02:个人(B2C))
- "sendercountrycode"=>"CN",
- "sendername"=>"LongYing",
- "senderaddress1"=>"hangji Economic Development Zone",
- "senderaddress2"=>"LongYingShiYe, Yinghao Rd.",
- "sendertel"=>'15939964739',
- "sendercity"=>"Xuchang",
- "senderprovince"=>"HeNan",
- ],
- "volumes"=>[
- [
- "customerchildnumber"=>'',//客户子单号
- "prenum"=>$data['zjs'],//件数
- "prelength"=>'10',//长(CM)
- "prewidth"=>'10',//宽(CM)
- "preheight"=>'10',//高(CM)
- "prerweight"=>$djzl,//单件重量(KG)
- "palletnum"=>1,//托盘件数
- ]
- ],
- "items"=>[
- [
- "cnname"=>$ccname,
- "enname"=>$data['sbpm'].'*'.$data['ts'],
- "declarecurrency"=> "USD",
- "price"=>$data['dtsbjz'],
- "isbatterys"=>0,
- "ismagnets"=>0,
- "isliquids"=>0,
- "ispowders"=>0,
- 'hscode'=>$data['sbbm'],
- ]
- ]
-
- ]
- ]
- ];
- if($data['printcode'] == 'ZXDPD_UK'){
- $post['datas'][0]["order"]['termsofsalecode']= "DDP";
- //$post['datas'][0]["items"][0]['hscode'] = $data['sbbm'];
- }
- if($data['printcode'] == 'ZXDPD_BTC'){
- $post['datas'][0]["order"]['declaretypepkid'] = '不需要报关';
- $post['datas'][0]["order"]['sendetaxnumber'] = 'IM5280002556';
- }
- $jsonBody = json_encode($post);
- //$start_time = time();
- $url = $this->url."/order/createForecast";
- $res = $this->reqPost($url,$jsonBody);
- $this->logic_ding->sendToDing("正鑫快递报文信息【".$jsonBody."】返回参数[".json_encode($res)."].||".$url);
- if($res['code'] != 1){
- $g = array('x'=>'0','Description'=>json_encode($res,JSON_UNESCAPED_UNICODE),'cs'=>$jsonBody);
- return $g;
- }
- if($res['data']['code'] != 0){
- $g = array('x'=>'0','Description'=>json_encode($res['data'],JSON_UNESCAPED_UNICODE),'cs'=>$jsonBody);
- return $g;
- }
-
- $waybillnumber = empty($res['data']['data'][0]['waybillnumber'])? (empty($res['data']['data'][0]['waybillnumber1']) ?"": $res['data']['data'][0]['waybillnumber1']) :$res['data']['data'][0]['waybillnumber'];
- if(empty($waybillnumber)){
- $g = array('x'=>'0','Description'=>"获取运单为空,请联系技术检查",'cs'=>$jsonBody);
- return $g;
- }
- // var_dump($res['data']);
-
- $ys_res = $this->get_yd($waybillnumber);
- // var_dump($ys_res);
- $this->logic_ding->sendToDing("正鑫快递面单erp返回信息".$data['number']."【".json_encode($ys_res)."】");
- if(empty($ys_res['data']['data'])){
- $g = array('x'=>'0','Description'=>"换取运单失败,请重试-1。",'cs'=>$jsonBody);
- return $g;
- }
- if(empty($ys_res['data']['data']['url'])){
- $g = array('x'=>'0','Description'=>"换取运单失败,请重试-3。",'cs'=>$jsonBody);
- return $g;
- }
- // var_dump($ys_res['data']['data']);
- $url = $ys_res['data']['data']['url'];
- $g = array('x'=>'1','waybillid'=>'','waybill'=>$waybillnumber,'yd'=>$url);//'fp'=>$fp
- //$end_time = time();
- return $g;
- }
- public function get_yd($waybillnumber){
- $params = [
- "authorization" => [
- "code" => $this->clientid,
- "token" => $this->token,
- ],
- "datas" => [
- "printType"=> "Label",
- "printContent"=>1,
- "waybillnumber"=>[
- $waybillnumber
- ]
- ]
- ];
- $url = $this->url."/order/label";
- $jsonBody = json_encode($params);
- $res = $this->reqPost($url,$jsonBody);
- return $res;
- }
- public function del($customernumber){
- $params = [
- "authorization" => [
- "code" => $this->clientid,
- "token" => $this->token,
- ],
- "datas" => [
- "customernumber"=> $customernumber,
- ]
- ];
- $url = $this->url."/order/delete";
- $jsonBody = json_encode($params);
- return $this->reqPost($url,$jsonBody);
- }
- private function reqPost($url,$jsonBody){
-
- $ch = curl_init();
- curl_setopt_array($ch, [
- CURLOPT_URL => $url,
- CURLOPT_POST => true,
- CURLOPT_POSTFIELDS => $jsonBody,
- CURLOPT_HTTPHEADER => [
- 'Content-Type: application/json;charset=utf-8',
- 'Content-Length: ' . strlen($jsonBody)
- ],
- CURLOPT_RETURNTRANSFER => true, // 返回响应而不是直接输出
- CURLOPT_CONNECTTIMEOUT => 10,
- CURLOPT_TIMEOUT => 30,
- CURLOPT_FOLLOWLOCATION => false,
- CURLOPT_SSL_VERIFYPEER => false,
- CURLOPT_SSL_VERIFYHOST => false
- ]);
- $response = curl_exec($ch);
- $curlErrno = curl_errno($ch);
- $curlError = curl_error($ch);
- curl_close($ch);
- // 处理返回
- if ($curlErrno > 0) {
- return [
- 'code'=>-1,
- 'msg'=>$curlError,
- 'data'=>[],
- ];
- } else {
- $respArr = json_decode($response, true);
- return [
- 'code'=>1,
- 'msg'=>'success',
- 'data'=>$respArr,
- ];
- }
- }
-
-
-
-
-
-
- }
|