快递鸟物流查询接口API调用代码示例

快递鸟物流查询接口是免费使用的,没有限制,稳定性也还不错,所以接口对接以快递鸟为例,用户ID和KEY需要自己申请http://www.kdniao.com/reg。
?

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Text; using System.Web; /** * * 快递鸟物流轨迹即时查询接口 * * @技术QQ群: 456320272 * @see: http://www.kdniao.com/YundanChaxunAPI.aspx * @copyright: 深圳市快金数据技术服务有限公司 * * DEMO中的电商ID与私钥仅限测试使用,正式环境请单独注册账号 * 单日超过500单查询量,建议接入我方物流轨迹订阅推送接口 */ namespace Test { public class KdApiSearchDemoYS { //电商ID private string EBusinessID = "ID需到官网申请:http://www.kdniao.com/ServiceApply.aspx" ; //电商加密私钥,快递鸟提供,注意保管,不要泄漏 private string AppKey = "Key需到官网申请:http://www.kdniao.com/ServiceApply.aspx" ; //请求url private string ReqURL = "http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx" ; /// /// Json方式 查询订单物流轨迹 /// /// public string getOrderTracesByJson( string shipperCode, string expNo) { string requestData = https://www.it610.com/article/ "{'OrderCode':'','ShipperCode':'" +shipperCode+ "','LogisticCode':'" +expNo+ "'}" ; Dictionary< string , string > param = new Dictionary< string , string >(); param.Add( "RequestData" , HttpUtility.UrlEncode(requestData, Encoding.UTF8)); param.Add( "EBusinessID" , EBusinessID); param.Add( "RequestType" , "1002" ); string dataSign = encrypt(requestData, AppKey, "UTF-8" ); param.Add( "DataSign" , HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add( "DataType" , "2" ); string result = sendPost(ReqURL, param); //根据公司业务处理返回的信息...... return result; } /// /// XML方式 查询订单物流轨迹 /// /// public string getOrderTracesByXml() { string requestData = https://www.it610.com/article/ "" + "" + "" + "SF" + "589707398027" + "" ; Dictionary< string , string > param = new Dictionary< string , string >(); param.Add( "RequestData" , HttpUtility.UrlEncode(requestData, Encoding.UTF8)); param.Add( "EBusinessID" , EBusinessID); param.Add( "RequestType" , "1002" ); string dataSign = encrypt(requestData, AppKey, "UTF-8" ); param.Add( "DataSign" , HttpUtility.UrlEncode(dataSign, Encoding.UTF8)); param.Add( "DataType" , "1" ); string result = sendPost(ReqURL, param); //根据公司业务处理返回的信息...... return result; } /// /// Post方式提交数据,返回网页的源代码 /// /// 发送请求的 URL /// 请求的参数集合 /// 远程资源的响应结果 private string sendPost( string url, Dictionary< string , string > param) { string result = "" ; StringBuilder postData = https://www.it610.com/article/ new StringBuilder(); if (param != null && param.Count > 0) { foreach ( var p in param) { if (postData.Length > 0) { postData.Append( "&" ); } postData.Append(p.Key); postData.Append( "=" ); postData.Append(p.Value); } } byte [] byteData = https://www.it610.com/article/Encoding.GetEncoding( "UTF-8" ).GetBytes(postData.ToString()); try { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.ContentType = "application/x-www-form-urlencoded" ; request.Referer = url; request.Accept = "*/*" ; request.Timeout = 30 * 1000; request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727; .NET CLR 3.0.04506.648; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)" ; request.Method = "POST" ; request.ContentLength = byteData.Length; Stream stream = request.GetRequestStream(); stream.Write(byteData, 0, byteData.Length); stream.Flush(); stream.Close(); HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream backStream = response.GetResponseStream(); StreamReader sr = new StreamReader(backStream, Encoding.GetEncoding( "UTF-8" )); result = sr.ReadToEnd(); sr.Close(); backStream.Close(); response.Close(); request.Abort(); } catch (Exception ex) { result = ex.Message; } return result; } /// ///电商Sign签名 /// ///内容 ///Appkey ///【快递鸟物流查询接口API调用代码示例】URL编码 ///DataSign签名 private string encrypt(String content, String keyValue, String charset) { if (keyValue != null ) { return base64(MD5(content + keyValue, charset), charset); } return base64(MD5(content, charset), charset); } /// /// 字符串MD5加密 /// ///要加密的字符串 ///编码方式 ///密文 private string MD5( string str, string charset) { byte [] buffer = System.Text.Encoding.GetEncoding(charset).GetBytes(str); try { System.Security.Cryptography.MD5CryptoServiceProvider check; check = new System.Security.Cryptography.MD5CryptoServiceProvider(); byte [] somme = check.ComputeHash(buffer); string ret = "" ; foreach ( byte a in somme) { if (a < 16) ret += "0" + a.ToString( "X" ); else ret += a.ToString( "X" ); } return ret.ToLower(); } catch { throw ; } } /// /// base64编码 /// /// 内容 /// 编码方式 /// private string base64(String str, String charset) { return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str)); } } }

aspx界面示例?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 "http://www.w3.org/1999/xhtml" > "server" > "Content-Type" content= "text/html; charset=utf-8" /> - 锐客网
"form1" runat= "server" > "Label1" runat= "server" Text= "物流编码" > "txtShipperCode" runat= "server" >
"Label2" runat= "server" Text= "快递单号" > "txtLogisticCode" runat= "server" >
"Button1" runat= "server" OnClick= "Button_Click" Text= "查询" />
aspx.cs代码
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; namespace Test { public partial class KdApiSearchYS : System.Web.UI.Page { protected void Page_Load( object sender, EventArgs e) { } protected void Button_Click( object sender, EventArgs e) { KdApiSearchDemoYS search = new KdApiSearchDemoYS(); string result = search.getOrderTracesByJson( this .txtShipperCode.Text.Trim(), this .txtLogisticCode.Text.Trim()); Response.Write(result); } } }

    推荐阅读