授权成功我的密钥
如有转载,请标明来自此出处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=[]
参数说明
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"}字段说明
<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
%>