用快遞100 HtmlAPI 介面查詢各快遞物流資訊
1、API請求地址
http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[]
(配參數時請先將 中括弧去掉)
2、傳入參數說明
參數 |
是否必需 |
說明 |
key |
是 |
快遞100的授權key,如果已有快遞100的key,可以直接使用已有的;如果還沒有申請,請點擊 快遞查詢API進行申請。 |
com |
是 |
快遞公司編碼見下表 |
nu |
是 |
快遞單號 |
3、支援的公司
HtmlAPI支援快遞100所有支援的公司,以下只羅列最常見的幾個快遞
分類 |
快遞公司代碼 |
公司名稱 |
E |
|
|
|
ems |
ems |
|
emsguoji |
ems國際件 |
S |
|
|
|
shentong |
伸通 |
|
shunfeng |
順豐 |
Y |
|
|
|
youzhengguonei |
中國郵政國內包裹/挂號信/國內小包大包 |
|
youzhengguoji |
中國郵政國際包裹/挂號信/國外小包大包 |
4、返回結果說明:
提交請求後,快遞100會給您返回一個可以看到結果的url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 ,您直接存取或用iframe頁調用該url(調用方法見後面第四章),即可以看到結果。效果:
特別提醒:
因為EMS、順豐和申通偶爾會不穩定, 不穩定時會先顯示驗證碼 (如下圖所示),所以請勿直接將這個頁面直接解析成JSON等形式,否則會出錯!如下圖:
5、整體使用流程
第一步,後台建立連結,調用:http://www.kuaidi100.com/applyurl?key=[]&com=[]&nu=[] ,調用後系統會返回一個url地址,如:http://www.kuaidi100.com/kuaidiresult?id=23 。
第二步:在要顯示結果的頁面添加一個iframe標籤,將上述結果url地址傳入該iframe標籤的的src值,即可在該頁面查看到結果(如果要實現系統自動地將結果url傳入iframe標籤的src,請參考下面第五章),iframe代碼示範:
<iframe name="kuaidi100" src="結果url地址" width="600" height="380" marginwidth="0" marginheight="0" hspace="0" vspace="0" frameborder="0" scrolling="no"></iframe>
如果要實現系統自動地將結果url傳入iframe標籤的src,請參考下面
6、 C#示範
首先加一個iframe, 取到資料後,填充它
<iframe class="address_b order_zhui" height="260px" width="100%" id="kdFrame"></iframe>
$.get("Get.aspx", { wid: wid, openid: openid, rid: rid }, function (data) { $("#bhao").hide(); if (data != null) { $("#bhao").show(); //$("#retData").html(data); $("#kdFrame").attr("src", data); } } );
後台:
//用htmlapi
WebClient client = new WebClient();string url = string.Format("http://www.kuaidi100.com/applyurl?key={0}&com={1}&nu={2}", ApiKey, typeCom, nu);log.Info("url: " + url);Byte[] pageData = client.DownloadData(url);string pageHtml = Encoding.ASCII.GetString(pageData);log.Info("return url: " + pageHtml);Response.Write(pageHtml);
愛查快遞API使用說明文檔
API地址:
以前:http://api.ickd.cn/?com=[]&nu=[]&id=[]&type=[]&encode=[]&ord=[]&lang=[]
目前:http://api.ickd.cn/?id=[]&secret=[]&com=[]&nu=[]&type=[]&encode=[]&ord=[]&lang=[]
參數說明
欄位 是否必須 說明
com 必須 快遞公司代碼(英文),所支援快遞公司見如下列表
nu 必須 快遞單號,長度必須大於5位
id
secret 必須
必須 授權的id
授權KEY,申請請點擊快遞查詢API申請方式
type 可選 返回結果類型,值分別為 html | json(預設) | text | xml
encode 可選 gbk(預設)| utf8
ord 可選 asc(預設)|desc,返回結果排序
lang 可選 en返回英文結果,目前僅支援部分快遞(EMS、順豐、DHL)
注意:使用PHP的json_decode函數時必須使用UTF8的編碼,如果出現json_decode失敗,請嘗試使用UTF8編碼。
返回格式
格式:json | text | html | xml
編碼:GBK| UTF8
樣本:
{"status":"3","message":"","errCode":"0","data":[{"time":"2013-02-23 17:10","context":"遼寧省大連市中山區四部公司 的收件員 王光 已收件"},{"time":"2013-02-24 17:59","context":"遼寧省大連市公司 已收入"},{"time":"2013-02-24 18:11","context":"遼寧省大連市中山區四部公司 已收件"},{"time":"2013-02-26 07:33","context":"吉林省長春市景陽公司 的派件員 張金達 派件中 派件員電話15948736487"},{"time":"2013-02-26 16:47","context":"客戶 同事收發家人 已簽收 派件員 張金達"}],"html":"","mailNo":"7151900624","expTextName":"圓通快遞","expSpellName":"yuantong","update":"1362656241","cache":"186488","ord":"ASC"}
欄位說明
欄位 類型 說明
status int 查詢結果狀態,0|1|2|3|4,0表示查詢失敗,1正常,2派送中,3已簽收,4退回,5其他問題
errCode int 錯誤碼,0無錯誤,1單號不存在,2驗證碼錯誤,3連結查詢伺服器失敗,4程式內部錯誤,5程式執行錯誤,6快遞單號格式錯誤,7快遞公司錯誤,10未知錯誤
message string 錯誤訊息
data array 進度
html string 其他HTML,該欄位不一定存在
mailNo string 快遞單號
expSpellName string 快遞公司英文代碼
expTextName string 快遞公司中文名
update int 最後更新時間(unix 時間戳記)
cache int 緩衝時間,目前時間與 update 之間的差值,單位為:秒
ord string 排序,ASC | DESC
php應用樣本
<script language="javascript"> <?php $id='xxxxxxxxxxxxxxxxx';//到http://www.ickd.cn/api/reg.html申請 $url='http://api.ickd.cn/?com=shentong&nu=588035733628&id='.$id; $data=file_get_contents($url); //echo "var data='",$data,"'"; ?> $(function(){ var dataObj=<?=$data?>;//轉換為json對象 var html='<tr>'; html+='<th>物流狀態:</th>'; html+='<td>'; if(dataObj.status>0){ html+='<table width="520px" cellspacing="0" cellpadding="0" border="0" style="border-collapse: collapse; border-spacing: 0pt;">'; html+='<tr>'; html+='<td width="163" style="background-color:#e6f9fa;border:1px solid #75c2ef;font-size:14px;font-weight:bold;height:20px;text-indent:15px;">'; html+='時間'; html+='</td>'; html+='<td width="354" style="background-color:#e6f9fa;border:1px solid #75c2ef;font-size:14px;font-weight:bold;height:20px;text-indent:15px;">'; html+='地點和跟蹤進度'; html+='</td>'; html+='</tr>'; //輸出data的子物件變數 $.each(dataObj.data,function(idx,item){ html+='<tr>'; html+='<td width="163" style="border:1px solid #dddddd;font-size: 12px;line-height:22px;padding:3px 5px;">'; html+=item.time;// 每條資料的時間 html+='</td>'; html+='<td width="354" style="border:1px solid #dddddd;font-size: 12px;line-height:22px;padding:3px 5px;">'; html+=item.context;// 每條資料的狀態 html+='</td>'; html+='</tr>'; }); html+='</table>'; }else{ //查詢不到 html+='<span style="color:#f00">Sorry! '+dataObj.message+'</span>'; } html+='</td></tr>'; $("#shipping_detail").append(html);});</script>
若伺服器禁用了file_get_contents和fsockopen等函數,可使用CURL類,樣本如下:
<?php $id='xxxxxxxxxxxxx';//API KEY $com='shunfeng';//快遞公司 $nu='123456';//快遞單號 $type='json'; $encode='utf8'; $gateway=sprintf('http://api.ickd.cn/?id=%s&com=%s&nu=%s&encode=%s&type=%s',$id,$com,$nu,$encode,$type); $ch=curl_init($gateway); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); curl_setopt($ch,CURLOPT_HEADER,false); $resp=curl_exec($ch); $errmsg=curl_error($ch); if($errmsg){ exit($errmsg); } curl_close($ch); echo $resp;?>
目前所支援的快遞公司列表
快遞公司 代碼
EMS快遞 ems
申通快遞 shentong
圓通快遞 yuantong
中通快遞 zhongtong
匯通快遞 huitong
天天快遞 tiantian
韻達快遞 yunda
順豐快遞 shunfeng
宅急送快遞 zhaijisong
CCES快遞 cces
中國郵政平郵 pingyou
星晨急便 xingchen
速爾快遞 sure
快捷快遞 kuaijie
中鐵快運 zhongtie
AAE快遞 aae
安捷快遞 anjie
安信達快遞 anxinda
程光快遞 chengguang
大田物流 datian
德邦物流 debang
DHL快遞 dhl
DPEX快遞 dpex
D速快遞 dsu
國際Fedex fedex
Fedex國內 fedexcn
原飛航物流 feihang
豐達快遞 fengda
飛康達快遞 fkd
飛快達快遞 fkdex
天地華宇物流 huayu
佳吉快運 jiaji
佳怡物流 jiayi
加運美快遞 jiayunmei
晉越快遞 jinyue
聯昊通物流|快遞 lianhaotong
龍邦快遞 longbang
民航快遞 minhang
港中能達 nengda
OCS快遞 ocs
全晨快遞 quanchen
全峰快遞 quanfeng
全日通快遞 quanritong
全一快遞 quanyi
如風達快遞 rufeng
盛豐物流 shengfeng
盛輝物流 shenghui
TNT快遞 tnt
UPS ups
萬家物流 wanjia
新邦物流 xinbang
鑫飛鴻速遞 xinfeihong
信豐快遞 xinfeng
亞風快遞 yafeng
一邦快遞 yibang
優速快遞 yousu
遠成物流 yuancheng
元智捷誠 yuanzhi
越豐快遞 yuefeng
運通中港快遞 yuntong
源偉豐 ywfex
中郵物流 zhongyou