1.參考快遞鳥官方文檔http://www.kdniao.com/api-allphp
2.快遞查詢代碼以下,我是放在TP框架第三方類庫裏的html
<?php class Logistics{ private $EBusinessID = '';//電商ID 請填寫本身的 private $AppKey = 'da3f362a-8d86-435d-8e93-8fae1dbe8a0a';//電商加密私鑰,快遞鳥提供,注意保管,不要泄漏 private $ReqURL = 'http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx';//請求url /** * Json方式 物流信息訂閱 * @param $ordercode 訂單編號 $shippercode 快遞公司編碼 $logisticcode 物流單號 */ function logistics($ordercode,$shippercode,$logisticcode){ //測試接口:http://testapi.kdniao.cc:8081/Ebusiness/EbusinessOrderHandle.aspx //測試電商ID==1237100,AppKey==518a73d8-1f7f-441a-b644-33e77b49d846 $data = array( 'OrderCode' => $ordercode, 'ShipperCode' => $shippercode, 'LogisticCode' => $logisticcode ); $data = json_encode($data); $parameter = array( 'EBusinessID' => $this -> EBusinessID, 'RequestType' => '1002', 'RequestData' => urlencode($data), 'DataType' => '2', ); $parameter['DataSign'] = $this -> encrypt($data,$this -> AppKey); $result = $this -> sendPost($this -> ReqURL, $parameter); //根據公司業務處理返回的信息...... $result = json_decode($result,true); return $result; } /** * post提交數據 * @param string $url 請求Url * @param array $datas 提交的數據 * @return url響應返回的html */ function sendPost($url, $datas) { $temps = array(); foreach ($datas as $key => $value) { $temps[] = sprintf('%s=%s', $key, $value); } $post_data = implode('&', $temps); $url_info = parse_url($url); if(empty($url_info['port'])){ $url_info['port']=80; } $httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n"; $httpheader.= "Host:" . $url_info['host'] . "\r\n"; $httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n"; $httpheader.= "Content-Length:" . strlen($post_data) . "\r\n"; $httpheader.= "Connection:close\r\n\r\n"; $httpheader.= $post_data; $fd = fsockopen($url_info['host'], $url_info['port']); fwrite($fd, $httpheader); $gets = ""; $headerFlag = true; while (!feof($fd)) { if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) { break; } } while (!feof($fd)) { $gets.= fread($fd, 128); } fclose($fd); return $gets; } /** * 電商Sign簽名生成 * @param data 內容 * @param appkey Appkey * @return DataSign簽名 */ function encrypt($data, $appkey) { return urlencode(base64_encode(md5($data.$appkey))); } }
3.在須要的地方直接調用代碼便可json
vendor('Kdniao.Logistics'); $Logistics = new \Logistics(); $data = $Logistics -> logistics('1234','YD','3907850221005');