程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 各種快遞查詢--Api接口

各種快遞查詢--Api接口

編輯:PHP綜合


授權成功我的密鑰

如有轉載,請標明來自此出處http://blog.csdn.net/qxs965266509,必須注意!

愛查快遞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 | xmlencode可選gbk(默認)| utf8ord可選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"}字段說明 字段 類型 說明statusint查詢結果狀態,0|1|2|3|4,0表示查詢失敗,1正常,2派送中,3已簽收,4退回,5其他問題errCodeint錯誤代碼,0無錯誤,1單號不存在,2驗證碼錯誤,3鏈接查詢服務器失敗,4程序內部錯誤,5程序執行錯誤,6快遞單號格式錯誤,7快遞公司錯誤,10未知錯誤messagestring錯誤消息dataarray進度htmlstring其他HTML,該字段不一定存在mailNostring快遞單號expSpellNamestring快遞公司英文代碼expTextNamestring快遞公司中文名updateint最後更新時間(unix 時間戳)cacheint緩存時間,當前時間與 update 之間的差值,單位為:秒ordstring排序,ASC | DESCphp應用示例

<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;?>

ASP應用示例

<%
Response.Charset="gb2312" 
Server.ScriptTimeout = 999999999

Dim Retrieval
Dim url,nu,com
com = Request("com")'公司
nu = Request("nu")'單號

Dim AppKey,SendURL,ResponseTxt
AppKey = "xxxxxxxxxx" '請將XXXXXX替換成您在http://www.ickd.cn/reg.html申請到的KEY
SendURL ="http://api.ickd.cn/?id="&AppKey&"&com="&com&"&nu="&nu&"&type=json&encode=GBK"'如果使用UTF8,請確保encode=utf8
'Response.Write SendURL

'發送數據
ResponseTxt=fopen(SendURL) '//獲取源代碼的函數

'調用發送數據組件
Function fopen(URL) 
Dim objXML 
'Set objXML=CreateObject("MSXML2.SERVERXMLHTTP.3.0") '調用XMLHTTP組件,若服務器不支持,請換用以下兩個中的一個再試
Set objXML=Server.CreateObject("Microsoft.XMLHTTP") 
'Set objXML=Server.CreateObject("MSXML2.XMLHTTP.4.0") 

'objXML.SetTimeouts 5000, 5000, 30000, 10000' 解析DNS名字的超時時間,建立Winsock連接的超時時間,發送數據的超時時間,接收response的超時時間。單位毫秒
objXML.Open "GET",URL,False '以同步方式獲取API查詢數據
objXML.Send() '發送
If objXML.Readystate<>4 Then '狀態不為4,錯誤
Response.Write "{status:0,errCode:100,message:'獲取數據出錯'}" 
Exit Function 
End If
'Readystate屬性,傳回XML文件資料的目前狀況,返回值分別有以下:
'0-UNINITIALIZED:XML 對象被產生,但沒有任何文件被加載。
'1-LOADING:加載程序進行中,但文件尚未開始解析。
'2-LOADED:部分的文件已經加載且進行解析,但對象模型尚未生效。
'3-INTERACTIVE:僅對已加載的部分文件有效,在此情況下,對象模型是有效但只讀的。
'4-COMPLETED:文件已完全加載,代表加載成功。

fopen=objXML.ResponseBody
fopen=BytesToBstr(objXML.ResponseBody)'返回信息,同時用函數定義編碼,如果您需要轉碼請選擇 

Set objXML=Nothing'關閉 
If Err.number<>0 Then 
Response.Write "{status:0,errCode:100,message:'獲取數據出錯'}" 
Err.Clear
End If
End Function

'頁面編碼轉換
Function BytesToBstr(body) 
Dim objstream 
Set objstream = Server.CreateObject("Adodb.Stream") '//調用adodb.stream組件
objstream.Type = 1 
objstream.Mode =3 
objstream.Open 
objstream.Write body 
objstream.Position = 0 
objstream.Type = 2 
objstream.Charset = "GBK" '轉換原來默認的編碼轉換成GB2312編碼,否則直接用XMLHTTP調用有中文字符的網頁得到的將是亂碼 
BytesToBstr = objstream.ReadText 
objstream.Close 
Set objstream = Nothing 
End Function

'輸入查詢結果
Response.Write ResponseTxt
%>

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved