首頁  >  文章  >  後端開發  >  快遞鳥查詢Api介面使用(PHP版)

快遞鳥查詢Api介面使用(PHP版)

不言
不言原創
2018-05-02 15:03:403610瀏覽

這篇文章主要介紹了關於快遞鳥查詢Api介面使用(PHP版),有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下


前提

專案開發中,有些需求難免會用到關於快遞的一些Api介面;本篇主要介紹的是快遞的查詢Api及與其他各家的不同之處;

常用的提供快遞Api介面的有:

  1. #快遞鳥

  2. ##快遞100

  3. 愛查快遞 

    等等

#如大家使用過,快遞100和愛查快遞等等網站提供的快遞查詢等介面時,你會發現,你所申請的帳號或key每天呼叫Api介面的次數都是被限制的,有的是2000次/天,有的是5000次/次;唯一讓你感到麻煩的是,要求用戶添加外鏈,而快遞鳥不需要使用者添加外鏈。對於無門戶網站的用戶,無非就是很苛刻的要求;並且,超出部分需付費才能使用。

快遞鳥,請求Api介面是不限制次數的喲,並且永久免費

固然,對於你小小的需求的話,快遞100和愛查快遞都可滿足你的需求;但是,當萬一某天請求次數太多,你的查詢服務就得停止,影響你的產品體驗;所以,推薦你直接使用

快遞鳥,一步就位。

應用程式場景


查詢訂單的物流資訊

快遞鳥查詢Api介面使用(PHP版)

可實現需求

  1. App中直接整合實現快遞物流資訊查詢Api介面

  2. #在微信公眾號中,根據使用者輸入的訂單號,我們的後台識別訂單號碼並根據快遞鳥查詢快遞Api接口,實現自動查詢的功能

  3. #等等

申請Key


http://www.kdniao.com/ServiceApply.aspx

#依照你的訊息,依序填寫資訊,點擊提交申請即可。

登入成功後,就可以看到ID和key等訊息,有這些資訊就可以請求查詢等其他的介面Api

快遞鳥查詢Api介面使用(PHP版)

快遞查詢Api介面


介面文件及各開發語言Demo

#查詢Api介面定義

系統級輸入參數

# RequestDataEBusinessIDRequestTypeDataSign##DataTypeString
參數名稱 類型 必須要求 說明
String R 請求內容,JSON或XML格式,須和DataType一致
#String R 使用者ID
String R 請求指令類型:1002
String R 資料內容簽章

O

請求、傳回資料類型:1-xml,2-json;預設為xml格式參數名稱類型必須要求#說明OrderCodevarchar(50)O#訂單編號#ShipperCodevarchar(10)R快遞公司編碼LogisticCodevarchar(50)
應用層級輸入參數
###R######物流單號############

傳回結果參數

## OrderCodeVarchar(50)O訂單編號ShipperCodeLogisticCode# #物流運單號碼SuccessBool#R成功與否ReasonVarchar(50)#失敗原因
參數名稱 類型 必須要求
#EBusinessID Int #R 電商用戶ID
##varchar(10) R 快遞公司編碼
Varchar(50) R
O

StateInt

R物流狀態1:已取貨2:在途中3:簽收TracesVarchar(Max)R物流軌跡詳情物流軌跡詳情

###參數名稱######類型######必須要求#######說明################ ##AcceptTime######DateTime######R######時間#############AcceptStation######Varchar(50)### ###R######描述############Remark######Varchar(150)######O######備註## #############請求JSON參數###
{
    "OrderCode" : "",
    "ShipperCode" : "SF",
    "LogisticCode" : "118650888018"}
###回應JSON參數###
{
    "EBusinessID" : "1109259",
    "OrderCode" : "",
    "ShipperCode" : "SF",
    "LogisticCode" : "118461988807",
    "Success" : true,
    "State" : 3,
    "Reason" : null,
    "traces" : [{
            "AcceptTime" : "2014/06/25 08:05:37",
            "AcceptStation" : "正在派件..(派件人:邓裕富,电话:18718866310)[深圳 市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 04:01:28",
            "AcceptStation" : "快件在 深圳集散中心 ,准备送往下一站 深圳 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 01:41:06",
            "AcceptStation" : "快件在 深圳集散中心 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/24 20:18:58",
            "AcceptStation" : "已收件[深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/24 20:55:28",
            "AcceptStation" : "快件在 深圳 ,准备送往下一站 深圳集散中心 [深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 10:23:03",
            "AcceptStation" : "派件已签收[深圳市]",
            "Remark" : null
        }, {
            "AcceptTime" : "2014/06/25 10:23:03",
            "AcceptStation" : "签收人是:已签收[深圳市]",
            "Remark" : null
        }
    ]}
###查詢Api介面使用######以PHP開發語言為例,進行展開###
<?php
//电商ID
defined(&#39;EBusinessID&#39;) or define(&#39;EBusinessID&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
defined(&#39;AppKey&#39;) or define(&#39;AppKey&#39;, &#39;请到快递鸟官网申请http://kdniao.com/reg&#39;);
//请求url
defined(&#39;ReqURL&#39;) or define(&#39;ReqURL&#39;, &#39;http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx&#39;);


//调用查询物流轨迹
//---------------------------------------------


$logisticResult=getOrderTracesByJson();
echo logisticResult;


//---------------------------------------------
 
/**
 * Json方式 查询订单物流轨迹
 */
function getOrderTracesByJson(){	$requestData= "{&#39;OrderCode&#39;:&#39;&#39;,&#39;ShipperCode&#39;:&#39;YTO&#39;,&#39;LogisticCode&#39;:&#39;12345678&#39;}";		$datas = array(
        &#39;EBusinessID&#39; => EBusinessID,
        &#39;RequestType&#39; => &#39;1002&#39;,
        &#39;RequestData&#39; => urlencode($requestData) ,
        &#39;DataType&#39; => &#39;2&#39;,
    );
    $datas[&#39;DataSign&#39;] = encrypt($requestData, AppKey);	$result=sendPost(ReqURL, $datas);			//根据公司业务处理返回的信息......		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(&#39;%s=%s&#39;, $key, $value);		    }	    $post_data = implode(&#39;&&#39;, $temps);
    $url_info = parse_url($url);	if(empty($url_info[&#39;port&#39;]))	{		$url_info[&#39;port&#39;]=80;		}
    $httpheader = "POST " . $url_info[&#39;path&#39;] . " HTTP/1.0\r\n";
    $httpheader.= "Host:" . $url_info[&#39;host&#39;] . "\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[&#39;host&#39;], $url_info[&#39;port&#39;]);
    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)));
}


?>
###其他Api接口,請前往快遞鳥具體查看相關文件。 ######溫馨提示#########如你的產品需對接或整合快遞接口,###快遞鳥###是不錯的選擇;會給您專業的技術支援人員;查詢次數不限,永久免費。 ######

以上是快遞鳥查詢Api介面使用(PHP版)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn