如何利用快递鸟提供的接口来查询京东快递的物流轨迹。

首先我们准备好需要用到的资源,

测试商户ID:

test1617571

测试API key:

554343b2-7252-439b-b4eb-1af42c8f2175(此Key仅限测试环境使用)

API测试地址:

http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json

接口参数,也叫业务参数,请求的业务接口不同,参数的字段,内容也不同,是跟着业务变化的,这里我们实现的是即时查询接口,请求指令类型:1002,快递鸟官网要求必须传递快递公司编码和物流单号 ,京东快递的编码是JD

如要查看其他快递公司的编码,点击此链接:

http://www.kdniao.com/documents

我们用真实单号(JDVC02975597147)来完成轨迹接口调用,

请求 JSON

{‘OrderCode’:’’,‘ShipperCode’:JD’,LogisticCode’:’ JDVC02975597147’}

请求的完整报文(URL编码以后):RequestData=%0d%0a++++++++++++%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27JD%27%2c%27LogisticCode%27%3a%27JDVC02975597147%27%2c%27CustomerName%27%3a%27%e5%95%86%e5%ae%b6%e7%bc%96%e7%a0%81%27%7d%0d%0a++&EBusinessID=1264783&RequestType=1002&DataSign=NTBlZDNiMDdlNDYxNDBjYjc1ZjFkNDA2YTgwNzM3OTc%3d&DataType=2

未编码的请求报文:

RequestData= {‘OrderCode’:’’,‘ShipperCode’:‘JD’,‘LogisticCode’:‘JDVC02975597147’,‘CustomerName’:‘商家编码’} & EBusinessID=1264783&RequestType=1002&DataSign=NTBlZDNiMDdlNDYxNDBjYjc1ZjFkNDA2YTgwNzM3OTc=&DataType=2

返回报文信息

{"LogisticCode": "JDVC02975597147","ShipperCode": "JD","Traces": [{"AcceptStation": "揽收任务已分配给刘杰添,配送员电话13902201195","AcceptTime": "2020-02-28 15:06:32"}, {"AcceptStation": "货物已交付京东物流","AcceptTime": "2020-02-28 19:01:17"}, {"AcceptStation": "配送员李连胜已经揽收完成","AcceptTime": "2020-02-28 19:01:17"}, {"AcceptStation": "货物已到达【广州黄埔分拣中心】","AcceptTime": "2020-02-28 23:14:54"}, {"AcceptStation": "货物已完成分拣,离开【广州黄埔分拣中心】","AcceptTime": "2020-02-28 23:31:53"}, {"AcceptStation": "货物已完成分拣,离开【佛山狮山分拣中心】","AcceptTime": "2020-02-29 02:53:29"}, {"AcceptStation": "配送员开始配送,请您准备收货,配送员,赵罗灿,手机号,18818484932","AcceptTime": "2020-02-29 11:40:35"}, {"AcceptStation": "货物已分配,等待配送","AcceptTime": "2020-02-29 12:08:59"}, {"AcceptStation": "货物已由【岗坪镇加油站正对面京东家电店内】代收,感谢您选择京东物流!","AcceptTime": "2020-02-29 17:49:51"}],"State": "3","EBusinessID": "1264783","Success": true
}
//电商ID
string eEBusinessID = "test1617571";//电商加密私钥,快递鸟提供,注意保管,不要泄漏
string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";//请求url
string reqURL = "http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json";
//请求指令
string reqType="1002";
//2-json
string dataType = "2";
//字符编码采用UTF-8
string charset = "UTF-8";
//JSON字符串string
string jsonStr =
"{\"OrderCode\":\"\",\"ShipperCode\":\"JTSD\",\"LogisticCode\":\"JT0000052600488\"}" ;
//把(jsonStr+APIKey)进行MD5加密
string md5Str=MD5(jsonStr + apiKey, charset);
//把md5Str 进行Base64编码
string base64Str=base64(md5Str,charset);
//进行URL编码 (utf-8)
string datasign = HttpUtility.UrlEncode(base64Str, charset);
//请求报文参数
string postStr = "RequestType=reqType&EBusinessID= eEBusinessID&RequestData=jsonStr
&DataSign= datasign&DataType=dataType";
//通讯协议使用Http协议Post请求方式 返回轨迹数据
string post = SendPost(reqURL, postStr);
//获取到的post数据就是快递鸟返回的完整报文,接下来自己写一个解析json的方法就能获取到里面的字段信息。
10.3,C#调用方法///<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");elseret += 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));}/// <summary>/// Post方式提交数据,返回网页的源代码/// </summary>/// <param name="url">发送请求的 URL</param>/// <param name="postData">请求报文参数</param>/// <returns>远程资源的响应结果</returns>private string SendPost(string url, string postData){string result = "";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; .NETCLR 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.ToString();}return result;}

京东快递 单号查询接口 C# .net相关推荐

  1. 模拟京东快递单号查询案例2020/11/24

    模拟京东快递单号查询案例 快递单号输入内容时, 上面的大号字体盒子(con)显示(这里面的字号更大) 表单检测用户输入: 给表单添加键盘事件 同时把快递单号里面的值(value)获取过来赋值给 con ...

  2. 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)

    文章目录 事件高级 7 常用的鼠标事件 7.1常用的鼠标事件 7.2 鼠标事件对象 案例:跟随鼠标的天使 8 常用的键盘事件 8.1 常用的键盘事件 8.2 键盘事件对象 8.3 ASCII 表 案例 ...

  3. JavaScript网页制作--京东快递单号查询

    JavaScript网页制作–京东快递单号查询 上篇讲到了京东网页的一个可能不被大多数人熟知的小功能,S键自动获得焦点,相比于那个功能,这个快递单号查询的功能可能更明了一点,虽然我也觉得很鸡肋.在网页 ...

  4. JS模拟京东搜索框案例 模拟京东快递单号查询案例

    模拟京东搜索框案例 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...

  5. 最全快递单号查询接口应用指南

    目的 便于快递鸟用户理解快递单号查询接口作用并正确应用到实际场景. 接口作用 轨迹类接口包含:即时查询接口和物流跟踪接口. 即时查询接口:实时查询某个快递单号当前的物流状态: 物流跟踪接口:监控某个快 ...

  6. 本节作业之跟随鼠标的天使、模拟京东按键输入内容、模拟京东快递单号查询

    本节作业之跟随鼠标的天使.模拟京东按键输入内容.模拟京东快递单号查询 1 跟随鼠标的天使 2 模拟京东按键输入内容 3 模拟京东快递单号查询 1 跟随鼠标的天使 <!DOCTYPE html&g ...

  7. C#快递单号查询接口物流路由信息快递鸟api代码接入.Net

    阅读完本篇内容,你可以利用快递鸟平台做出如下项目(文末有源码地址),当然,如果你觉得看图不过瘾,那就劳驾看官自己体验一下:点我在线体验 注册认证账号 1.进入快递鸟官网,点击右上角免费注册按钮,点我直 ...

  8. 快递单号查询接口对接指南

    快递查询接口API     快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序.目前比较常用的接口有快递鸟API. ...

  9. php快递单号查询接口实例

    通过本接口可以查询圆通快递.申通快递.ems快递.韵达快递等快递单号查询信息,无需其他额外开发. 首先,到www.aikuaidi.cn上注册个账号,使用key! 相关阅读:php快递查询API类(支 ...

  10. 全国快递物流查询-快递单号查询接口api

    电商,ERP厂商可能需要物流信息接口,对运单号的物流轨迹进行跟踪,通常有些免费的不好用,及时性要求达不到,收费的也太贵了.最近发现一个免费的API接口,及时性非常高,基本上就是实时返回. 快递查询接口 ...

最新文章

  1. MYSQL批量插入数据库实现语句性能分析
  2. 新泰成为全国智慧城市时空信息云平台建设试点
  3. C程序中变量存放方式介绍
  4. 2017-8-22 训练日记
  5. C++11 Lambda表达式(匿名函数)详解
  6. Android 内容提供者(Content provider)
  7. Angular No provider for EffectsRootModule错误消息的出现原因和修复方式
  8. 使用postman和SAP C4C OData服务创建销售订单
  9. Linux脚本双引号字符去除,shell命令去除字符串里双引号
  10. Mysql学习笔记(一)数据类型
  11. php限制登陆尝试次数,Laravel登录失败次数限制的实现方法
  12. vim 打开特殊文件—— 目录以及压缩包
  13. java用poi实现对word读取和修改操作
  14. DevExpress v18.1新版亮点——WPF篇(一)
  15. flashfxp 命令行
  16. java 乘法 位移_Java 使用位移运算实现乘法
  17. 存储模型之虚拟存储技术
  18. 腾讯股票实时数据接口
  19. hive的开窗函数篇
  20. HP-UX实战:扩展HP小机rx8640上的swap和dump空间

热门文章

  1. Python采集视频数据,下载流媒体m3u8格式
  2. speedoffice表格如何方框内打勾
  3. win10c盘清理(win10磁盘清理和磁盘整理)
  4. 黑群晖docker清理缓存_嘿群辉 篇五:群辉docker迁移磁盘
  5. 如何用mysql命令 复制表_mysql中用命令行复制表结构的方法
  6. 去雨去雾的研究和可用方法
  7. DSP中EALLOW,EDIS,EINT,DINT,ERTM,DRTM的作用
  8. fastapi框架tortoise-orm运用
  9. RL 参数影响 和 RL 结果分析
  10. OpenCV——修改图像像素(随心所欲)