快遞鳥 即時查詢接口

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');
相關文章
相關標籤/搜索