<?php /** * @技術QQ群: 可登入官網https://www.kdniao.com/右側檢視技術群號 * @see: https://kdniao.com/api-track * @copyright: 深圳市快金資料技術服務有限公司 * ID和Key請到官網申請:https://kdniao.com/reg * 即時查詢介面 * 此介面用於向快遞公司實時查詢物流軌跡資訊。該功能支援情況需檢視技術文件。 * 正式地址:https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx * * * 系統級引數 * RequestData String R 請求內容為JSON格式 詳情可參考介面技術文件:https://www.kdniao.com/documents * EBusinessID String R 使用者ID * RequestType String R 請求介面指令 * DataSign String R 資料內容簽名,加密方法為:把(請求內容(未編碼)+ApiKey)進行MD5加密--32位小寫,然後Base64編碼,最後進行URL(utf-8)編碼 * DataType String R DataType=2,請求、返回資料型別均為JSON格式 * 應用級引數 * R-必填(Required),O-可選(Optional),C-報文中該引數在一定條件下可選(Conditional) * OrderCode String(30) O 訂單編號 * ShipperCode String(10) R 快遞公司編碼 詳細編碼參考《快遞鳥介面支援快遞公司編碼.xlsx》 https://www.kdniao.com/documents * LogisticCode String(30) R 快遞單號 * CustomerName String(50) C ShipperCode為SF時必填,對應寄件人/收件人手機號後四位;ShipperCode為其他快遞時,可不填或保留欄位,不可傳值 * 請求示例 * ZTO請求示例: * { * "OrderCode": "", * "ShipperCode": "ZTO", * "LogisticCode": "638650888018", * } * * JD請求示例: * { * "OrderCode": "", * "CustomerName": "", * "ShipperCode": "JD", * "LogisticCode": "JDVA00003618100", * } * * SF請求示例: * { * "OrderCode": "", * "CustomerName": "1234", * "ShipperCode": "SF", * "LogisticCode": "SF00003618100", * } */ //使用者ID,快遞鳥提供,注意保管,不要洩漏 defined('EBusinessID') or define('EBusinessID', '888888');//即使用者ID,登入快遞鳥官網會員中心獲取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx //API key,快遞鳥提供,注意保管,不要洩漏 defined('ApiKey') or define('ApiKey', 'c2fb3a23-de82-418c-9411-1234567890');//即API key,登入快遞鳥官網會員中心獲取 https://www.kdniao.com/UserCenter/v4/UserHome.aspx //請求url,正式地址 defined('ReqURL') or define('ReqURL', 'https://api.kdniao.com/Ebusiness/EbusinessOrderHandle.aspx'); $CustomerName = $_REQUEST['CustomerName']; $ShipperCode = 'JTSD'; $LogisticCode = 'JT2097977556048'; $logisticResult = getOrderTracesByJson($CustomerName,$ShipperCode,$LogisticCode); echo $logisticResult; function getOrderTracesByJson($CustomerName='',$ShipperCode,$LogisticCode){ // 組裝應用級引數 $requestData = [ "CustomerName" =>$CustomerName, "OrderCode" =>'', "ShipperCode" =>$ShipperCode, "LogisticCode" =>$LogisticCode ]; $requestData = json_encode($requestData); // var_dump($requestData);die; // 組裝系統級引數 $datas = array( 'EBusinessID' => EBusinessID, 'RequestType' => '1002', //免費即時查詢介面指令1002/在途監控即時查詢介面指令8001/地圖版即時查詢介面指令8003 'RequestData' => urlencode($requestData) , 'DataType' => '2', ); $datas['DataSign'] = encrypt($requestData, ApiKey); //以form表單形式提交post請求,post請求體中包含了應用級引數和系統級引數 $result=sendPost(ReqURL, $datas); //根據公司業務處理返回的資訊...... return $result; } /** * post提交資料 * @param string $url 請求Url * @param array $datas 提交的資料 * @return url響應返回的html */ function sendPost($url, $datas) { $postdata = http_build_query($datas); $options = array( 'http' => array( 'method' => 'POST', 'header' => 'Content-type:application/x-www-form-urlencoded', 'content' => $postdata, 'timeout' => 15 * 60 // 超時時間(單位:s) ) ); $context = stream_context_create($options); $result = file_get_contents($url, false, $context); return $result; } /** * 電商Sign簽名生成 * @param data 內容 * @param ApiKey ApiKey * @return DataSign簽名 */ function encrypt($data, $ApiKey) { return urlencode(base64_encode(md5($data.$ApiKey))); } ?>