中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程
2021-03-14 18:30
标签:失败 ber nbsp VID 字符编码 res 方案 object ice 看完快递鸟api对接教程这篇文章,然后把源码复制到你的项目上,就能快速完成中通快递接口对接.更适合刚入门的菜鸟,调用快递鸟的中通快递查询API接口,能查询到中通快递单号从收件、运输,到转运中心,派送到签收等各个环节的物流发货状态。快递鸟api接口不区分开发语言,支持Java,C#,PHP,Python,ObjectC等开发语言的程序调用。下面具体讲解实现过程. 1.完成前期准备工作 2.API接口 3.请求参数(Headers) 4.请求参数(Body) 5.返回参数(Return) 6.请求完整报文(示例) 7.成功返回报文(示例) 8.失败返回报文(示例) 9.无轨迹返回报文(示例) 10.分步讲解(C#版本) 11.顺丰快递查询接口应用效果 12.关于签名 13.返回码定义 1.1,去快递鸟官网免费注册一个账号 1.2,免费获得一个apiKey(接口权限验证需要), 获取用户ID和ApiKey 1.3,完成实名认证流程,去认证 1.4,订购一个免费套餐,去订购 2.2,正式调用地址:http://api.kdniao.com/api/dist 2.3,请求方式:POST 2.4,编码格式(utf-8):application/x-www-form-urlencoded;charset=utf-8 2.5,返回类型:JSON 2.6,调试页面:http://kdniao.com/UserCenter/v2/SandBox/TrackQuery.aspx 2.7,调试工具:去调试(使用快递鸟账号登录) { 说明:未实名认证,未订购套餐,套餐可用查询量已经用完 都会返回此报文信息 10.1,请求数据包结构 10.2,C#调用代码示例 10.3,C#调用方法 快递鸟和第三方电子商务公司系统进行对接,有一定的安全机制。采用 IP 认证加签名 中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程 标签:失败 ber nbsp VID 字符编码 res 方案 object ice 原文地址:https://www.cnblogs.com/51api/p/12464723.html前言
目录
1.完成前期准备工作
2.API接口
2.1,测试调用地址:http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json3.请求参数(Headers)
参数名称
类型
说明
必须要求
RequestData
String
请求内容需进行URL(utf-8)编码,请求内容JSON格式,须和DataType一致
必填
EBusinessID
String
用户ID,查看用户ID和ApiKey
必填
RequestType
String
请求指令类型:1002
必填
DataSign
String
签名数据,(Body+ApiKey)进行MD5加密,再进行Base64编码,最后进行URL(utf-8)编码
必填
DataType
String
求、返回数据类型:2-json ,默认Json
选填
4.请求参数(Body)
参数名称
类型
说明
必须要求
OrderCode
String
订单编号
选填
ShipperCode
String
快递公司编码,中通:ZTO
必填
LogisticCode
String
物流运单号
必填
5.返回参数(Return)
参数名称
类型
说明
必须要求
EBusinessID
String
用户ID
必填
ShipperCode
String
快递公司编码
必填
LogisticCode
String
物流运单号
选填
Success
String
成功与否
必填
Reason
String
失败原因
选填
State
String
物流状态:2-在途中,3-签收,4-问题件
必填
Traces
String
时间
AcceptTime
String
必填
AcceptStation
String
描述
选填
Remark
String
备注
必填
6.请求完整报文(示例)
RequestData=%7b%27OrderCode%27%3a%27%27%2c%27ShipperCode%27%3a%27ZTO%27%2c%27LogisticCode%27%3a%2778120038107849%27%7d&EBusinessID=1617571&
RequestType=1002&DataSign=YzBmYTViYmExZmFhOGY1ZTY3MWY5OGFjYWRhNWVjNjU%3d&DataType=27.成功返回报文(示例)
"LogisticCode": "78120038107849",
"ShipperCode": "ZTO",
"Traces": [{
"AcceptStation": "【济源市】 【济源】(0391-6965909) 的 张霞(18839032214) 已揽收",
"AcceptTime": "2020-01-16 18:30:33"
}, {
"AcceptStation": "【济源市】 快件离开 【济源】 已发往 【深圳中心】",
"AcceptTime": "2020-01-16 18:36:41"
}, {
"AcceptStation": "【新乡市】 快件已经到达 【新乡中转】",
"AcceptTime": "2020-01-16 22:45:49"
}, {
"AcceptStation": "【新乡市】 快件离开 【新乡中转】 已发往 【深圳中心】",
"AcceptTime": "2020-01-16 22:47:48"
}, {
"AcceptStation": "【深圳市】 快件已经到达 【深圳中心】",
"AcceptTime": "2020-01-18 04:05:46"
}, {
"AcceptStation": "【深圳市】 快件离开 【深圳中心】 已发往 【深圳龙华】",
"AcceptTime": "2020-01-18 08:34:46"
}, {
"AcceptStation": "【深圳市】 快件已经到达 【深圳龙华】",
"AcceptTime": "2020-01-18 13:14:10"
}, {
"AcceptStation": "【深圳市】 【深圳龙华】 的陈智龙-王颖(13923773902) 正在第1次派件, 请保持电话畅通,并耐心等待(95720为中通快递员外呼专属号码,请放心接听)",
"AcceptTime": "2020-01-18 16:38:35"
}, {
"AcceptStation": "【深圳市】 快件已由【丰巢的鑫茂花园A区(丰巢智能快递柜)】代签收, 如有问题请电联(13923773902 / 4000633333,18025858922), 感谢您使用中通快递, 期待再次为您服务!",
"AcceptTime": "2020-01-18 17:32:15"
}],
"State": "3",
"EBusinessID": "1617571",
"Success": true
}
8.失败返回报文(示例)
{
"LogisticCode": "295734066970",
"ShipperCode": "ZTO",
"Traces": [],
"State": "0",
"EBusinessID": "1264783",
"Reason": "业务错误[没有可用套餐]",
"Success": false
}
去实名认证 / 了解套餐详情9.无轨迹返回报文(示例)
{
"LogisticCode": "295734066970",
"ShipperCode": "ZTO",
"Traces": [],
"State": "0",
"EBusinessID": "1264783",
"Reason": "暂无轨迹信息",
"Success": true
}
10.分步讲解(C#版本)
//电商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\":\"SF\",\"LogisticCode\":\"118461988807\"}" ;
//把(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的方法就能获取到里面的字段信息。
///
11.中通快递查询接口应用效果
12.关于签名
的方式对接,具体方案如下:防止数据被篡改
在 POST 请求中会传递 5 个必须(R)参数
RequestData==数据内容(URL 编码:UTF-8)
EBusinessID==用户 ID
RequestType=请求指令类型
DataSign== 数据内容签名:把(请求内容(未编码)+ApiKey)进行 MD5 加密,然后 Base64
编码,最后进行 URL(utf-8)编码
DataType==2(返回数据类型为 json)
注:
DataSign 生成后,对方接收到数据后,以同样的算法进行签名(推送接口 RequestType 为
101/102 不需要进行 URL 编码),生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。
调用接口的身份认证
注册成为快递鸟用户后,会生成对应的用户 ID 和 APIKey,用户 ID 相当于用户名,
APIKey 相当于密码。
13.返回码定义
编码
说明
100
成功
101
缺少必要参数
102
校验问题
103
格式问题
文章标题:中通快递-单号查询接口-物流路由跟踪信息快递鸟api对接教程
文章链接:http://soscw.com/index.php/essay/64651.html