中国邮政包裹快递查询(中国邮政物流官网)
中国邮政包裹快递查询(中国邮政物流官网)
如何利用快递鸟提供的接口来查询邮政快递的物流轨迹。
讲解之前我们来看一下,接口完成以后的实际显示效果
以下是产品应用截图,调用快递鸟接口获得的轨迹信息:
实际上快递鸟返回的报文信息会更详细,在给客户展示的信息可根据产品需要来封装返回轨迹信息。
现在我们来聊一聊具体实现!
首先我们准备好需要用到的资源,
测试商户ID:
test1617571
测试API key:
554343b2-7252-439b-b4eb-1af42c8f2175(此Key仅限测试环境使用)
API测试地址:
http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json
我以C#开发为例来讲解
接下来,我们讲解一下请求参数
请求系统级参数说明:
备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)
这里提到了系统级参数,也相当于是公用参数,这些参数是调用每个接口都是必须要传参的。
接口参数:
接口参数,也叫业务参数,请求的业务接口不同,参数的字段,内容也不同,是跟着业务变化的,这里我们实现的是即时查询接口,请求指令类型:1002,快递鸟官网要求必须传递快递公司编码和物流单号 ,邮政快递的编码是YZPY
如要查看其他快递公司的编码,点击此链接:
http://www.kdniao.com/documents
正如我前面的轨迹截图,邮政快递的编码是YZPY,物流单号是9861545869525
业务参数报文组合如下:
{'OrderCode':'','ShipperCode':'YZPY','LogisticCode':'9861545869525'}
请求的完整报文(URL编码以后):
RequestData=%0d%0a++++++++++++%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27YZPY%27%2c%27LogisticCode%27%3a%279861545869525%27%7d%0d%0a++++++++&EBusinessID=1264783&RequestType=1002&DataSign=MjQ2YWZiMTU1Mzc5YmFiMTFkMWYyYjI3YTliMjRkYmU%3d&DataType=2
未编码的请求报文:
RequestData=
{'OrderCode':'','ShipperCode':'YZPY','LogisticCode':'9861545869525'}
&EBusinessID=1264783&RequestType=1002&DataSign=MjQ2YWZiMTU1Mzc5YmFiMTFkMWYyYjI3YTliMjRkYmU=&DataType=2
返回的报文信息:
{
"LogisticCode": "9861545869525",
"ShipperCode": "YZPY",
"Traces": [
{
"AcceptStation": "【邮政仙居包快部】已收件,揽投员:周峰,电话:18358689325",
"AcceptTime": "2020-02-19 16:10:29"
},
{
"AcceptStation": "离开【邮政仙居包快部】,下一站【仙居中心】",
"AcceptTime": "2020-02-19 16:10:33"
},
{
"AcceptStation": "到达【浙江仙居县处理中心】",
"AcceptTime": "2020-02-19 16:10:34"
},
{
"AcceptStation": "离开【浙江仙居县处理中心】,下一站【台州中心局邮件处理中心】",
"AcceptTime": "2020-02-21 11:13:33"
}
],
"State": "2",
"EBusinessID": "1264783",
"Success": true
}
C#关键代码:
/// <summary>
/// 即时查询物流轨迹
/// </summary>
/// <param name="url">http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json</param>
/// <param name="eBusinessID">test1617571</param>
/// <param name="appKey">554343b2-7252-439b-b4eb-1af42c8f2175</param>
/// <param name="requestData">{'OrderCode':'','ShipperCode':'ZTO','LogisticCode':'78120038107849'}</param>
/// <returns></returns>
public string getOrderTracesByJson(string url,string eBusinessID, string appKey, string requestData)
{
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(url, param);
return result;
}
/// <summary>
/// Post方式提交数据,返回网页的源代码
/// </summary>
/// <param name="url">发送请求的 URL</param>
/// <param name="param">请求的参数集合</param>
/// <returns>远程资源的响应结果</returns>
private string sendPost(string url, Dictionary<string, string> param)
{
string result = "";
StringBuilder postData = 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);
}
}
// return postData.ToString();
byte[] byteData = 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;
}
///<summary>
///电商Sign签名
///</summary>
///<param name="content">内容</param>
///<param name="keyValue">Appkey</param>
///<param name="charset">URL编码 </param>
///<returns>DataSign签名</returns>
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);
}
///<summary>
/// 字符串MD5加密
///</summary>
///<param name="str">要加密的字符串</param>
///<param name="charset">编码方式</param>
///<returns>密文</returns>
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;
}
}
/// <summary>
/// base64编码
/// </summary>
/// <param name="str">内容</param>
/// <param name="charset">编码方式</param>
/// <returns></returns>
private string base64(String str, String charset)
{
return Convert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
}
附上详细的接口文档给大家:
http://www.kdniao.com/documents
配料有哪些(炒菜需要的基本调料)中餐文化博大精深,从古到今形成了众多的菜系,比如川菜鲁菜湘菜粤菜等等,每一种菜系都有自己的特色,但是终归到底,要讲究色相味俱全。在中餐中,除了烹饪技巧之外,还要用到很多的香料,这会
怎么吃的少(吃了不饿的偏方)减肥成功是每个女性都希望的事,但实际案例告诉我们,真正减去脂肪需要大量时间,以及有一颗能够下定决心的心和行动力。可在减肥途中,越是不吃饭越是控制自己,就越想要吃得更多,这应该怎么办
地铁怎么画(儿童地铁怎么画)12月21日,一张小朋友自创的111号线成都地铁线路图在网上流传,引发众多网友和点赞这个小朋友厉害了这届孩子太厉害了。成都地铁点赞称,虽然图片里的站点大部分都是想象出来的,但小朋友
石家庄学院怎么样(石家庄学院的汉语言文学好吗)今天介绍两所在河北省录取分数接近的师范类院校石家庄学院和廊坊师范学院。石家庄学院是经教育部批准建立的公立全日制普通本科院校,学校地处河北省石家庄高新技术产业开发区,由南北两个校区组
昆明学院怎么样(昆明学院汉语言文学好就业吗)昆明,别称春城,是云南省省会滇中城市群中心城市,我国西南地区重要的中心城市之一。昆明气候温和,夏无酷暑,冬无严寒,四季如春,气候宜人。昆明鲜花常年开放,草木四季常青,是著名的春城花
黄晓明为什么要打杨颖(赵丽颖的宝宝几岁了)黄晓明与Angelababy自前年大婚之后,就不断频频秀恩爱。用网友的话说,这两口子的虐狗形式经常敞开。黄晓明还曾公开在微博女言称要认真学习并领会老丈人的话,做个为了老婆吃再多苦也
黄晓明和baby穿情侣装(黄晓明Baby又穿情侣装!胸前写着我爱你)黄晓明和baby穿情侣装(黄晓明Baby又穿情侣装!胸前写着我爱你)饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!近日,有网友发现,黄晓明和Baby又穿上了情侣装,这
黄晓明和baby穿情侣装(黄晓明baby再度隔空秀恩爱!高调穿情侣装)黄晓明和baby穿情侣装(黄晓明baby再度隔空秀恩爱!高调穿情侣装)4月24日晚上,baby现身机场去录制综艺节目跑男,她身穿的衣服也是引发了网友们的热议。当天的baby身穿着一
今日废废铁价格多少,废铁今日价格多少钱一吨江浙沪地区。目前国内钒铁主流报价硅料多少钱一吨价钱随行情随时在变动马达铁1780,性价比高,目前废铁多少钱一斤。马达铁20302130。废铁多少钱一斤具体是什么情况明年的废铁回收价
医院哪个整容好(医院整容好)穷则独善其身,达则兼济天下。对于企业来说,慈善事业是一个企业饮水思源,回馈社会最直接的方式,也是一个企业成长之后必做的事业之一。济南韩氏整形医院自成立以来,一直深刻明确自己的社会责
张国荣唐鹤德(唐鹤德晒与张国荣合照)张国荣唐鹤德(唐鹤德晒与张国荣合照)01hr其实,我真正喜欢哥哥张国荣的时候他,已经离开了这个世界。当时非常震惊,想不到为什么会这样。当然,每个人做出任何决定都是慎而重之的。至于,
战地1买哪个版本(战地1dlc买哪个)昨日(9月3日)ea宣布战地1步兵捆绑包免费领取活动开启,活动一直持续到9月10日凌晨1点。图一捆绑包介绍全面战争已经到来,你最好武装完毕,透过步兵捆绑包,你可以获取四大步兵兵种突
万能五笔输入法官方下载2013(五笔输入法下载手机版带字根)万能五笔输入法官方下载2013(五笔输入法下载手机版带字根)万能五笔是集国内目前流行的五笔字型及拼音英语笔画拼音笔画等多种输入法为一体的多元输入法。全部输入法只在一个输入法窗口里,
哪个五笔输入法好用(极点五笔输入法怎么用)因为五笔输入法要学习,所以现在很多人都不喜欢五笔输入法,宁愿用拼音,嗯,拼音确实不错,也带有联想功能,方便打字,可是拼音重码率太高,比如你打个SHI,出来一大堆的东西,选择到头晕,
五笔输入法哪个好(五笔输入法新世纪版)欢迎跟我一起穿越时间!金山打字,全名金山打字通,90年代接触电脑的同学都不会陌生,那时学校微机室里的电脑上一般都会安装这个软件。也许很多人对金山打字2003十分熟悉,其实在金山打字
为什么要杀犹太人(二战杀犹太真实原因)二战期间,有近600万犹太人死于希特勒及其纳粹党之手。希特勒为什么要疯狂屠杀犹太人?这与他受到菲希勒尼采等人的欧洲反犹主义传统思想的影响有关,也是希特勒转移德国人民斗争视线巩固纳粹
苹果如何越狱(苹果手机ios15怎么越狱)一再见!iOS15。0。1系统在10月19日早上时段,苹果正式关闭iOS15。0。1系统验证,意味着你现在不能升级或者降级到该版本。我使用iPhone12ProMax在电脑爱思助手
苹果手机怎么下载游戏(苹果手机怎么下载韩国游戏)剑灵革命手游将会在5月14日1000正式于台服上线,这款游戏是由韩国剑灵母公司NCSOFT打造的四款剑灵手游中最先上线的一款,算得上是剑灵手游中的头牌。游戏的设计思路是还原最初的剑
ps怎么下载(怎么免费安装ps软件)最近因为兴趣使然想学习下PS,也是就想去网上找免费的PS软件下载。PS怎么来的和个版本的编号和由来这个,各位自己去网上搜把,网上有详细的资料,这里就不介绍了(字多了打得累,也有凑字
侠盗飞车怎么下载(罪恶都市电脑版免费下载教程)如果对应用有兴趣,强烈建议仔细看一下图文,分享不易如果对你有帮助,请花点时间评论转发一下,不要问私信在哪,看动图大帆都写在下面了。此App会定期更新,大家可以收藏此文章,以便后续更
怎么PS(ps在电脑上怎么下载)Photoshop的最低和推荐系统要求Windows最低要求推荐处理器支持64位的Intel或AMD处理器具有SSE4。2或更高版本的2GHz或速度更快的处理器操作系统Window
ps怎么安装到电脑上(ps怎么下载免费版)pscs6安装教程安装包下载地址httpwww。32r。comsoft201508121520。html1下载解压本站提供的软件,得到pscs6软件程序2双击QuickSetup。