快遞查詢接口
目前提供快遞查詢的接口平台有:
- Trackingmore
- 快遞100
- 快遞網
不同接口的區別:
(1)Trackingmore支持380家快遞公司,其中有55家為國內的快遞,其余325家為國際快遞。具體的價格為0.6分錢/單號左右,新注冊用戶可以免費測試12小時。
(2)快遞100屬於在國內做得比較早的平台,可以申請每天最多2000次的API調用,但需要給快遞100做一個友鏈。超過2000次收費,每次0.06~0.1元不等。
(3)快遞網可以申請每天最多500次的API調用,但同樣需要做一個友鏈。超過部分,每次0.05元。
快遞API的應用場景與用途
1. 最常見的應用場景如下:
(1)電商網站:例如B2C、團購、B2B、批發分銷站、C2C、本地生活交易等網站。
(2)管理系統:訂單處理平台、訂貨平台、發貨平台、分銷系統、渠道管理系統、客戶管理系統、ERP等。
2. 快遞API的用途如下:
(1)讓顧客登錄網站后,直接在“我的訂單”頁面內就能看到訂單的物流狀態。
(2)自動篩選出“已簽收”、“疑難件”等狀態的單號,減輕物流跟單人員的壓力。
(3)改變訂單的狀態和交易流程,例如單號變為“已簽收”,就能讓訂單變為可以確認退換貨等。
(4)評估選擇快遞公司,根據“已簽收”的運單數,可以算出銷售人員的業績,且便於應對貨到付款的結算。
(5)郵件、短信提醒用戶運單的最新狀態,可以安撫用戶,也可以利用郵件短信二次營銷。
對接示例
這里以Trackingmore為例,不同的接口的對接方式比較類似,都需要注冊,並生成自己的API key。以下以Trackingmore的實時查詢API為例。
接口支持的消息接收方式為HTTP POST
請求方法的編碼格式為 utf-8
請求body部分的參數的數據格式為json 格式
接口參數
接口請求地址
http://api.trackingmore.com/v2/trackings/realtime
請求頭部信息參數
參數名稱 | 類型 | 說明 | 是否必須 |
|
|
定義請求頭部的數據格式 | 是 |
|
string | Trackingmore 后台獲取的API | 是 |
請求body參數說明
參數說明 | 類型 | 說明 | 是否必須 |
|
string | 查詢快遞的快遞單號 | 是 |
|
string | trackingmore定義的快遞商簡碼,比如china ems 就是china-ema | 是 |
carrier_code 參數是trackingmore 自己定義的快遞商家的簡碼,具體的可以在這里查看。
還有需要注意的就是body部分這兩個參數需要時json數據格式。大概樣子就是這樣的
1 { 2 "tracking_number": "LK664578623CN", 3 "carrier_code": "china-ems" 4 }
返回參數定義
參數名稱 | 參數類型 | 參數說明 | 是否一定要返回該項值 |
code |
數字 | 返回碼 | 成功返回200,失敗有其他隊列的錯誤碼 |
type | string | 接口類型 | 成功返回Success |
message | string | 返回信息說明 | 成功返回Succes,失敗返回隊列的錯誤信息 |
data | json | 查詢到的物流信息 | 成功返回物流信息,失敗返回空 |
其他的狀態響應簡碼可以在這里看到。
返回示例
{ "meta": { "code": 200, "type": "Success", "message": "Success" }, "data": { "items": [{ "id": "442f798ea35749e7605d1a73d4181a01", "tracking_number": "RE113184005HK", "carrier_code": "hong-kong-post", "status": "transit", "original_country": "Hong Kong [CN]", "destination_country": "Colombia", "itemTimeLength": null, "origin_info": { "weblink": "http:\/\/www.hongkongpost.hk\/", "phone": "852 2921 2222", "carrier_code": "hong-kong-post", "trackinfo": [{ "Details": "CO", "StatusDescription": "The item ( RE113184005HK ) left Hong Kong for its destination on 10-Oct-2015 ", "Date": "2015-10-09 00:00" }] }, "destination_info": { "weblink": "http:\/\/www.4-72.com.co\/", "phone": "(57-1) 4722000", "carrier_code": "colombia-post", "trackinfo": [{ "Date": "2015-10-22 20:52", "StatusDescription": "DIGITALIZADO", "Details": "CTP.CENTRO A" }, { "Date": "2015-10-22 17:02", "StatusDescription": "Registro de entrega exitosa", "Details": "" }, { "Date": "2015-10-22 16:55", "StatusDescription": "ENTREGADO", "Details": "CD.MONTEVIDEO" }, { "Date": "2015-10-22 09:31", "StatusDescription": "REASIGNADO", "Details": "CD.NORTE" }, { "Date": "2015-10-22 08:52", "StatusDescription": "REASIGNADO", "Details": "CD.NORTE" }, { "Date": "2015-10-22 02:39", "StatusDescription": "En proceso", "Details": "CTP.CENTRO A" }, { "Date": "2015-10-21 16:36", "StatusDescription": "En proceso", "Details": "CTP.CENTRO A" }, { "Date": "2015-10-20 06:29", "StatusDescription": "Envío Recibido en la oficina de cambio internacional", "Details": "COBOGC" }] } }] } }
PHP接入示例
$url = "http://api.trackingmore.com/v2/trackings/realtime"; $header = array( 'Content-Type:application/json', 'Trackingmore-Api-Key:b7a0009f-6cd2-43ee-9d1d-ed7135ad460f' ); $postData = array( 'tracking_number'=>'LK664578623CN', 'carrier_code'=>'china-ems' ); $res = curl_post($url,json_encode($postData),$header); print_r($res); function curl_post($url, $postData,$header=array(),$cookie_file='',$isheader=0,$proxy='',$debug=0,$autoRedirect=0,$time=89){ $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if(!empty($isheader)){ curl_setopt($ch, CURLOPT_HEADER, $isheader); } curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT,$time); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:44.0) Gecko/20100101 Firefox/44.0'); if(!empty($header)){ curl_setopt($ch, CURLOPT_HTTPHEADER,$header); } if(!empty($autoRedirect)){ curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); } if(!empty($cookie_file)){ // 讀取文件所儲存的Cookie信息 curl_setopt ( $ch, CURLOPT_COOKIEFILE, $cookie_file ); } if(!empty($proxy)){ curl_setopt($ch, CURLOPT_PROXY, $proxy); } //curl_setopt($ch, CURLOPT_ENCODING, 'gzip,deflate'); if(!empty($debug)){ curl_setopt($ch,CURLOPT_VERBOSE,1); curl_setopt($ch,CURLOPT_FAILONERROR,TRUE); print_r(curl_error($ch)); print_r(curl_getinfo($ch)); } $html = curl_exec($ch); curl_close($ch); return $html; }