各种快递查询--Api接口
授权成功我的密钥
如有转载,请标明来自此出处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
%>