教育房产时事环球科技商业
投稿投诉
商业财经
热点动态
科技数码
软件应用
国际环球
晨报科学
新闻时事
信息智能
汽车房产
办公手机
教育体育
生活生物

中国邮政包裹快递查询(中国邮政物流官网)

  中国邮政包裹快递查询(中国邮政物流官网)
  如何利用快递鸟提供的接口来查询邮政快递的物流轨迹。
  讲解之前我们来看一下,接口完成以后的实际显示效果
  以下是产品应用截图,调用快递鸟接口获得的轨迹信息:
  实际上快递鸟返回的报文信息会更详细,在给客户展示的信息可根据产品需要来封装返回轨迹信息。
  现在我们来聊一聊具体实现!
  首先我们准备好需要用到的资源,
  测试商户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

会计事务所是做什么的(会计师事务所工资太低了)(本经验贴只是我们小组内的工作任务,我们组负责的是货币资金损益权益类底稿,我同学小组负责的是往来固定资产长投等,比如替代测试更为复杂,由于没有过多接触,只能简单介绍一下,文章有点长管理会计是什么(管理会计本质上是什么)管理会计是什么意思?管理会计和管理会计师是什么关系?管理会计是什么意思?管理会计和管理会计师是什么关系?相信大家对这些问题都比较感兴趣,那我们就一起来看看到底作何解答吧。一管理会计会计学什么(会计学主要是干嘛的)会计一直是个备受争议的专业,虽然备受争议,但是每年报考的人却不少,甚至在逐年增加,那会计真的有这么吃香吗,在报考会计之前你有好好了解过这个专业吗?会计学属于管理学范畴,工商管理类下我国是什么时候采用公历的(我国实行公历制会计年度是基于)会计核算是会计的基本职能之一,是会计工作的重要环节。会计核算的基本内涵是以货币为主要计量单位,运用专门的会计方法,对生产经营活动或预算执行过程及其结果进行连续系统全面地记录计算分析小字加一笔变成什么字(小字加一笔有几个字)导语面试官小字加一笔是什么字?理科生回答少,被淘汰!虽说现在职场中人才济济,但也不意味着那些公司在招人的时候就变得随意了,相反,你优秀了,他又想招更加优秀的,大家所面临的就是更加激冬天有那些动物冬眠(冬眠动物知多少?)冬天有那些动物冬眠(冬眠动物知多少?)随着白天逐渐变短,冬眠季节一天天地临近了。那些生活在我们周围,在花园中做客的小型哺乳动物和昆虫正在为漫长的冬日深眠做准备。秋天过去,冬天的脚步北极为什么熊冬眠(为什么只有怀孕的北极熊能冬眠?)北极为什么熊冬眠(为什么只有怀孕的北极熊能冬眠?)北极熊可能是熊中的另类,它们和其它熊类有着太多的不同。首先是食物种类的不同,无论是黑熊还是棕熊,在它们的食物清单上,植物的比例要比台风天车子应该停在什么位置8月台风扎堆来袭,今天台风米克拉登陆福建,给福建中南部沿海带来狂风暴雨,部分台风影响区域交通设施停运。每次台风来袭都会给我们的生活带来诸多不便,而且台风天通常会损坏汽车,那么台风天2020年9号台风最新消息9号台风路径怎么走近日有关于2020年9号台风最新消息9号台风路径怎么走的问题受到了很多网友们的关注,大多数网友都想要知道2020年9号台风最新消息9号台风路径怎么走的具体情况,那么关于到2020年2020第7号台风路径实时近日有关于2020第7号台风路径实时的问题受到了很多网友们的关注,大多数网友都想要知道2020第7号台风路径实时的具体情况,那么关于到2020第7号台风路径实时的相关信息,小编也是2020年9号台风最新路径近日2020年9号台风最新路径登录了热搜,也是在网上引起了网友们的关注,那么很多小伙伴可能还不清楚具体的情况如何,小编也是在网上查阅了一些信息,那么接下来就分享给大家来了解下202
成都有哪些特产(成都特色零食)到成都这座城市,你的口腹一定会得到相当满足。成都这里的美食,只能用眼花缭乱来形容。不管是最正宗的四川火锅,还是成都最正宗的回锅肉,鱼香肉丝,麻婆豆腐,都能让人口水直流三丈。不仅如此四川特色小吃(四川10种特色小吃)四川特色小吃(四川10种特色小吃)四川,简称川或蜀,省会成都,位于中国大陆西南腹地,自古就有天府之国之美誉,是中国西部门户,大熊猫的故乡。四川种类繁多的小吃,是整个四川的历史文化的广州有什么特色(到深圳必买的零食特产)深圳简称深是广东省省辖市,全国经济中心城市和国际化城市,全球海洋中心城市,中国设立的第一个经济特区。今天我们来聊一聊深圳这个经济特区有什么特产美食吧!广州深圳这四种特产,本地人和游深圳有什么特产(深圳能带走的特产小吃)在深工作,每次回家,该给父母亲朋们带些啥呢?还不知道回家带什么的你一定要看看哦深圳人最推荐的5样深圳特产一鹏城八珍荔枝干龙眼干冬天虽然过季了,但是还有龙眼干和荔枝干,又可以煮汤泡水深圳主要有什么特产(河北特产有哪些土特产)一想到深圳的特色,就是各种深圳美食。如果你来深圳不尝尝这里的美食,不带点深圳特产回去给家人朋友,肯定不好意思说,自己来过深圳。话不多说,我们一起来看看都有哪些舌尖上的深圳味道!首先深圳特产有哪些(深圳伴手礼必买清单)传闻深圳特产有四宝,来到深圳的人都会疯狂购买。今天,就来给大家探一探这四宝,顺着藏宝图的一路指引,我们在鹏城八珍深圳特产店找到了它们。接下来让我们一起来欣赏这四宝的魅力吧。1印象客成都的美食有哪些(成都有啥好吃的特产)成都是名副其实的美食天堂,被联合国教科文组织授予美食之都,有很多具有代表性的特色美食,那么成都特色美食有什么呢?去成都必吃的小吃有哪些?MAIGOO小编整理了成都十大美食及排行榜,昆明特产有哪些(成都最出名的特产)昆明是一座春城,有着宜人的气候,有着可口的美食,当然也有各种特产啦,来看看昆明的十大特产有哪些吧!昆明特产一富民杨梅富民杨梅是云南省昆明市富民的特色产品,有着非常悠久的历史,92年四川特产有哪些土特产(成都特产送人便于携带)一提到四川,就是想到了火锅,四川是我国很能吃辣的省份,当地除了有美景外,还有很多美食。如果去四川玩,可以购买什么特产带回家。关于四川有什么土特产?下面一起来了解下。1蜀绣蜀绣是汉族开封是哪个省的(开封属于郑州市域吗)世事更迭,沧海桑田。在这历史的长河里,一草一木都在瞬息万变,一点一点改变着一个庞然大物的身影,从兴盛到衰败,这并不是一蹴而就的事情。曾经的盛极一时的开封府,是怎么被落后她不止一星半开封是哪里(开封杞县很穷吗)8月20日中午12点,所在的小区终于解除封控状态。大家可以凭健康码自由出入了。从3日开始,一共被封在家中17天。好像一场想不起的梦。你真真切切的知道自己做了一个悠长的梦,却怎么也想