1、免费物流查询API接口JAVA+PHP+C#demo免费物流查询API接口(JAVA+PHP+C#)demo(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。(3)每日调用次数限制不超过3000次,如超过该限制,请对接订阅推送API。(4)返回的物流跟踪信息按照发生的时间升序排列。(5)接口提供:快递鸟(6)接口指令1002。(7)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):application/x-www-form-urlencoded;charset=utf-8
2、。JAVA代码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.MessageDigest;import java.util.HashMap;import j
3、ava.util.Map; public class KdniaoTrackQueryAPI /DEMO public static void main(String args) KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI(); try String result = api.getOrderTracesByJson(ANE, 210001633605); System.out.print(result); catch (Exception e) e.printStackTrace(); /电商ID private String EBus
4、inessID=请申请; private String AppKey=请申请; /请求url private String ReqURL=http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx; /* * Json方式 查询订单物流轨迹 * throws Exception */ public String getOrderTracesByJson(String expCode, String expNo) throws Exception String requestData= OrderCode:,ShipperCode: + exp
5、Code + ,LogisticCode: + expNo + ; Map params = new HashMap(); params.put(RequestData, urlEncoder(requestData, UTF-8); params.put(EBusinessID, EBusinessID); params.put(RequestType, 1002); String dataSign=encrypt(requestData, AppKey, UTF-8); params.put(DataSign, urlEncoder(dataSign, UTF-8); params.put
6、(DataType, 2); String result=sendPost(ReqURL, params); /根据公司业务处理返回的信息. return result; /* * XML方式 查询订单物流轨迹 * throws Exception */ public String getOrderTracesByXml() throws Exception String requestData= + + + SF+ 589707398027+ ; Map params = new HashMap(); params.put(RequestData, urlEncoder(requestDat
7、a, UTF-8); params.put(EBusinessID, EBusinessID); params.put(RequestType, 1002); String dataSign=encrypt(requestData, AppKey, UTF-8); params.put(DataSign, urlEncoder(dataSign, UTF-8); params.put(DataType, 1); String result=sendPost(ReqURL, params); /根据公司业务处理返回的信息. return result; /* * MD5加密 * param st
8、r 内容 * param charset 编码方式 * throws Exception */ SuppressWarnings(unused) private String MD5(String str, String charset) throws Exception MessageDigest md = MessageDigest.getInstance(MD5); md.update(str.getBytes(charset); byte result = md.digest(); StringBuffer sb = new StringBuffer(32); for (int i =
9、 0; i result.length; i+) int val = resulti & 0xff; if (val = 0xf) sb.append(0); sb.append(Integer.toHexString(val); return sb.toString().toLowerCase(); /* * base64编码 * param str 内容 * param charset 编码方式 * throws UnsupportedEncodingException */ private String base64(String str, String charset) throws
10、UnsupportedEncodingException String encoded = base64Encode(str.getBytes(charset); return encoded; SuppressWarnings(unused) private String urlEncoder(String str, String charset) throws UnsupportedEncodingException String result = URLEncoder.encode(str, charset); return result; /* * 电商Sign签名生成 * param
11、 content 内容 * param keyValue Appkey * param charset 编码方式 * throws UnsupportedEncodingException ,Exception * return DataSign签名 */ SuppressWarnings(unused) private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception if (keyValue != null) retu
12、rn base64(MD5(content + keyValue, charset), charset); return base64(MD5(content, charset), charset); /* * 向指定 URL 发送POST方法的请求 * param url 发送请求的 URL * param params 请求的参数集合 * return 远程资源的响应结果 */ SuppressWarnings(unused) private String sendPost(String url, Map params) OutputStreamWriter out = null; Buf
13、feredReader in = null; StringBuilder result = new StringBuilder(); try URL realUrl = new URL(url); HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection(); / 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); / POST方法 conn.setRequestMethod(POST); / 设置通用的请求属性 conn.setRequest
14、Property(accept, */*); conn.setRequestProperty(connection, Keep-Alive); conn.setRequestProperty(user-agent, Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1); conn.setRequestProperty(Content-Type, application/x-www-form-urlencoded); conn.connect(); / 获取URLConnection对象对应的输出流 out = new OutputStre
15、amWriter(conn.getOutputStream(), UTF-8); / 发送请求参数 if (params != null) StringBuilder param = new StringBuilder(); for (Map.Entry entry : params.entrySet() if(param.length()0) param.append(&); param.append(entry.getKey(); param.append(=); param.append(entry.getValue(); /System.out.println(entry.getKey
16、()+:+entry.getValue(); /System.out.println(param:+param.toString(); out.write(param.toString(); / flush输出流的缓冲 out.flush(); / 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader( new InputStreamReader(conn.getInputStream(), UTF-8); String line; while (line = in.readLine() != null) result.append(line
17、); catch (Exception e) e.printStackTrace(); /使用finally块来关闭输出流、输入流 finally try if(out!=null) out.close(); if(in!=null) in.close(); catch(IOException ex) ex.printStackTrace(); return result.toString(); private static char base64EncodeChars = new char A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q,
18、R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, +, / ; public static String base64Encode(byte data) StringBuffer sb = new StringBuffer(); int len = data.length; int i = 0; int b1, b2, b3; while (i 2); sb.append(ba
19、se64EncodeChars(b1 & 0x3) 2); sb.append(base64EncodeChars(b1 & 0x03) 4); sb.append(base64EncodeChars(b2 & 0x0f) 2); sb.append(base64EncodeChars(b1 & 0x03) 4); sb.append(base64EncodeChars(b2 & 0x0f) 6); sb.append(base64EncodeCharsb3 & 0x3f); return sb.toString(); PHP代码 EBusinessID, RequestType = 1002
20、, RequestData = urlencode($requestData) , DataType = 2, ); $datasDataSign = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas); /根据公司业务处理返回的信息. return $result;/* * XML方式 查询订单物流轨迹 */function getOrderTracesByXml() $requestData= . . . SF. 589707398027. ; $datas = array( EBusinessID = EBusi
21、nessID, RequestType = 1002, RequestData = urlencode($requestData) , DataType = 1, ); $datasDataSign = encrypt($requestData, AppKey); $result=sendPost(ReqURL, $datas); /根据公司业务处理返回的信息. return $result; /* * post提交数据 * param string $url 请求Url * param array $datas 提交的数据 * return url响应返回的html */function s
22、endPost($url, $datas) $temps = array(); foreach ($datas as $key = $value) $temps = sprintf(%s=%s, $key, $value); $post_data = implode(&, $temps); $url_info = parse_url($url); if($url_infoport=) $url_infoport=80; echo $url_infoport; $httpheader = POST . $url_infopath . HTTP/1.0rn; $httpheader.= Host:
23、 . $url_infohost . rn; $httpheader.= Content-Type:application/x-www-form-urlencodedrn; $httpheader.= Content-Length: . strlen($post_data) . rn; $httpheader.= Connection:closernrn; $httpheader.= $post_data; $fd = fsockopen($url_infohost, $url_infoport); fwrite($fd, $httpheader); $gets = ; $headerFlag = true; while (!feof($fd) if ($header = fgets($fd) & ($header = rn | $header = n) break; while (!feof($fd) $gets.= fread($fd, 128); fclose($fd); return $gets;/* * 电商Sign签名生成 * param data 内容 * param appkey Appkey * return DataSign签名 */function encrypt($data, $appkey) return urlencode(base6
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1