京东快递 单号查询接口 C# .net
如何利用快递鸟提供的接口来查询京东快递的物流轨迹。
首先我们准备好需要用到的资源,
测试商户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相关推荐
- 模拟京东快递单号查询案例2020/11/24
模拟京东快递单号查询案例 快递单号输入内容时, 上面的大号字体盒子(con)显示(这里面的字号更大) 表单检测用户输入: 给表单添加键盘事件 同时把快递单号里面的值(value)获取过来赋值给 con ...
- 773-780---DOM事件高级(常用鼠标事件,案例:跟随鼠标的天使,常用的键盘事件,案例:模拟京东按键输入内容,案例:模拟京东快递单号查询)
文章目录 事件高级 7 常用的鼠标事件 7.1常用的鼠标事件 7.2 鼠标事件对象 案例:跟随鼠标的天使 8 常用的键盘事件 8.1 常用的键盘事件 8.2 键盘事件对象 8.3 ASCII 表 案例 ...
- JavaScript网页制作--京东快递单号查询
JavaScript网页制作–京东快递单号查询 上篇讲到了京东网页的一个可能不被大多数人熟知的小功能,S键自动获得焦点,相比于那个功能,这个快递单号查询的功能可能更明了一点,虽然我也觉得很鸡肋.在网页 ...
- JS模拟京东搜索框案例 模拟京东快递单号查询案例
模拟京东搜索框案例 <!DOCTYPE html> <html lang="en"><head><meta charset="U ...
- 最全快递单号查询接口应用指南
目的 便于快递鸟用户理解快递单号查询接口作用并正确应用到实际场景. 接口作用 轨迹类接口包含:即时查询接口和物流跟踪接口. 即时查询接口:实时查询某个快递单号当前的物流状态: 物流跟踪接口:监控某个快 ...
- 本节作业之跟随鼠标的天使、模拟京东按键输入内容、模拟京东快递单号查询
本节作业之跟随鼠标的天使.模拟京东按键输入内容.模拟京东快递单号查询 1 跟随鼠标的天使 2 模拟京东按键输入内容 3 模拟京东快递单号查询 1 跟随鼠标的天使 <!DOCTYPE html&g ...
- C#快递单号查询接口物流路由信息快递鸟api代码接入.Net
阅读完本篇内容,你可以利用快递鸟平台做出如下项目(文末有源码地址),当然,如果你觉得看图不过瘾,那就劳驾看官自己体验一下:点我在线体验 注册认证账号 1.进入快递鸟官网,点击右上角免费注册按钮,点我直 ...
- 快递单号查询接口对接指南
快递查询接口API 快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序.目前比较常用的接口有快递鸟API. ...
- php快递单号查询接口实例
通过本接口可以查询圆通快递.申通快递.ems快递.韵达快递等快递单号查询信息,无需其他额外开发. 首先,到www.aikuaidi.cn上注册个账号,使用key! 相关阅读:php快递查询API类(支 ...
- 全国快递物流查询-快递单号查询接口api
电商,ERP厂商可能需要物流信息接口,对运单号的物流轨迹进行跟踪,通常有些免费的不好用,及时性要求达不到,收费的也太贵了.最近发现一个免费的API接口,及时性非常高,基本上就是实时返回. 快递查询接口 ...
最新文章
- MYSQL批量插入数据库实现语句性能分析
- 新泰成为全国智慧城市时空信息云平台建设试点
- C程序中变量存放方式介绍
- 2017-8-22 训练日记
- C++11 Lambda表达式(匿名函数)详解
- Android 内容提供者(Content provider)
- Angular No provider for EffectsRootModule错误消息的出现原因和修复方式
- 使用postman和SAP C4C OData服务创建销售订单
- Linux脚本双引号字符去除,shell命令去除字符串里双引号
- Mysql学习笔记(一)数据类型
- php限制登陆尝试次数,Laravel登录失败次数限制的实现方法
- vim 打开特殊文件—— 目录以及压缩包
- java用poi实现对word读取和修改操作
- DevExpress v18.1新版亮点——WPF篇(一)
- flashfxp 命令行
- java 乘法 位移_Java 使用位移运算实现乘法
- 存储模型之虚拟存储技术
- 腾讯股票实时数据接口
- hive的开窗函数篇
- HP-UX实战:扩展HP小机rx8640上的swap和dump空间
热门文章
- Python采集视频数据,下载流媒体m3u8格式
- speedoffice表格如何方框内打勾
- win10c盘清理(win10磁盘清理和磁盘整理)
- 黑群晖docker清理缓存_嘿群辉 篇五:群辉docker迁移磁盘
- 如何用mysql命令 复制表_mysql中用命令行复制表结构的方法
- 去雨去雾的研究和可用方法
- DSP中EALLOW,EDIS,EINT,DINT,ERTM,DRTM的作用
- fastapi框架tortoise-orm运用
- RL 参数影响 和 RL 结果分析
- OpenCV——修改图像像素(随心所欲)