单号自动识别接口文档快递鸟.docx
- 文档编号:30273442
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:19
- 大小:20.23KB
单号自动识别接口文档快递鸟.docx
《单号自动识别接口文档快递鸟.docx》由会员分享,可在线阅读,更多相关《单号自动识别接口文档快递鸟.docx(19页珍藏版)》请在冰豆网上搜索。
单号自动识别接口文档快递鸟
单号自动识别接口文档-快递鸟
一.接口说明
PC端、移动端应用或网站应用集成运单物流信息查询功能时,只需要录入单号即可完成查询,无需用户输入快递公司。
电商网站要在快递鸟查询或者订阅运单时,可通过单号识别先行判断物流公司后,再订阅到快递鸟。
二.对接描述
1.该接口仅对运单号做出识别,识别可能属于的一家或多家快递公司。
2.接口并不返回物流轨迹,用户可结合即时查询接口和订阅查询接口完成轨迹查询、订阅的动作。
3.接口识别会返回一家或者多家快递公司,返回的数据根据快递鸟大数据分析结果排序,排名靠前的命中率更高。
4.若识别失败,快递鸟返回的匹配结果为空。
5.接口支持的消息接收方式为HTTPPOST,请求方法的编码格式(utf-8):
"application/x-www-form-urlencoded;charset=utf-8"。
三.参数列表
1.请求系统级参数说明
参数名称
类型
说明
必须要求
RequestData
String
请求内容需进行URL(utf-8)编码。
请求内容JSON格式,须和DataType一致。
R
EBusinessID
String
商户ID,请在我的服务页面查看。
R
RequestType
String
请求指令类型:
2002
R
DataSign
String
数据内容签名:
把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。
详细过程请查看Demo。
R
DataType
String
请求、返回数据类型:
只支持JSON格式
R
备注:
R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。
2.接口地址
API测试地址:
http:
//testapi.kdniao.cc:
8081/Ebusiness/EbusinessOrderHandle.aspx
API正式地址:
http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
3.请求内容字段定义
参数名称
类型
说明
是否必须
LogisticCode
String
物流单号
R
4.返回参数定义
参数名称
类型
说明
必须要求
EBusinessID
String
电商用户ID
R
LogisticCode
String
物流单号
R
Success
Bool
成功与否
R
Code
Int
失败原因
O
Shipper
ShipperCode
String
快递公司编码
O
ShipperName
String
快递公司名称
O
四.对接案例
1.JSON请求
{
"LogisticCode":
"3967950525457"
}
2.JSON返回
{
"EBusinessID":
"1257021",
"Success":
true,
"LogisticCode":
"3967950525457",
"Shippers":
[
{
"ShipperCode":
"YD",
"ShipperName":
"韵达快递"
}
]
}
3.C#对接demo
usingSystem;
usingSystem.Collections.Generic;
usingSystem.IO;
usingSystem.Linq;
usingSystem.Net;
usingSystem.Text;
usingSystem.Web;
namespaceKdGoldAPI
{
publicclassKdApiOrderDistinguish
{
//电商ID
privatestringEBusinessID="请到快递鸟官网申请
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
privatestringAppKey="请到快递鸟官网申请
//请求url
//测试环境
privatestringReqURL="http:
//testapi.kdniao.cc:
8081/Ebusiness/EbusinessOrderHandle.aspx";
//正式环境
//privatestringReqURL="http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
///
///Json方式单号识别
///
///
publicstringorderTracesSubByJson()
{
stringrequestData="{'LogisticCode':
'3967950525457'}";
Dictionary
param.Add("RequestData",HttpUtility.UrlEncode(requestData,Encoding.UTF8));
param.Add("EBusinessID",EBusinessID);
param.Add("RequestType","2002");
stringdataSign=encrypt(requestData,AppKey,"UTF-8");
param.Add("DataSign",HttpUtility.UrlEncode(dataSign,Encoding.UTF8));
param.Add("DataType","2");
stringresult=sendPost(ReqURL,param);
//根据公司业务处理返回的信息......
returnresult;
}
///
///Post方式提交数据,返回网页的源代码
///
///
///
///
privatestringsendPost(stringurl,Dictionary
{
stringresult="";
StringBuilderpostData=newStringBuilder();
if(param!
=null&¶m.Count>0)
{
foreach(varpinparam)
{
if(postData.Length>0)
{
postData.Append("&");
}
postData.Append(p.Key);
postData.Append("=");
postData.Append(p.Value);
}
}
byte[]byteData=Encoding.GetEncoding("UTF-8").GetBytes(postData.ToString());
try
{
HttpWebRequestrequest=(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;MSIE6.0;WindowsNT5.1;SV1;.NETCLR2.0.50727;.NETCLR3.0.04506.648;.NETCLR3.0.4506.2152;.NETCLR3.5.30729)";
request.Method="POST";
request.ContentLength=byteData.Length;
Streamstream=request.GetRequestStream();
stream.Write(byteData,0,byteData.Length);
stream.Flush();
stream.Close();
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
StreambackStream=response.GetResponseStream();
StreamReadersr=newStreamReader(backStream,Encoding.GetEncoding("UTF-8"));
result=sr.ReadToEnd();
sr.Close();
backStream.Close();
response.Close();
request.Abort();
}
catch(Exceptionex)
{
result=ex.Message;
}
returnresult;
}
///
///电商Sign签名
///
///
///
///
///
privatestringencrypt(Stringcontent,StringkeyValue,Stringcharset)
{
if(keyValue!
=null)
{
returnbase64(MD5(content+keyValue,charset),charset);
}
returnbase64(MD5(content,charset),charset);
}
///
///字符串MD5加密
///
///
///
///
privatestringMD5(stringstr,stringcharset)
{
byte[]buffer=System.Text.Encoding.GetEncoding(charset).GetBytes(str);
try
{
System.Security.Cryptography.MD5CryptoServiceProvidercheck;
check=newSystem.Security.Cryptography.MD5CryptoServiceProvider();
byte[]somme=check.ComputeHash(buffer);
stringret="";
foreach(byteainsomme)
{
if(a<16)
ret+="0"+a.ToString("X");
else
ret+=a.ToString("X");
}
returnret.ToLower();
}
catch
{
throw;
}
}
///
///base64编码
///
///
///
///
privatestringbase64(Stringstr,Stringcharset)
{
returnConvert.ToBase64String(System.Text.Encoding.GetEncoding(charset).GetBytes(str));
}
}
}
附:
单号查询接口
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.OutputStreamWriter;
importjava.io.UnsupportedEncodingException;
import.HttpURLConnection;
import.URL;
import.URLEncoder;
importjava.security.MessageDigest;
importjava.util.HashMap;
importjava.util.Map;
publicclassKdniaoTrackQueryAPI{
//DEMO
publicstaticvoidmain(String[]args){
KdniaoTrackQueryAPIapi=newKdniaoTrackQueryAPI();
try{
Stringresult=api.getOrderTracesByJson("ANE","210001633605");
System.out.print(result);
}catch(Exceptione){
e.printStackTrace();
}
}
//电商ID
privateStringEBusinessID="请到快递鸟官网申请
//电商加密私钥,快递鸟提供,注意保管,不要泄漏
privateStringAppKey="请到快递鸟官网申请
//请求url
privateStringReqURL="http:
//api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx";
/**
*Json方式查询订单物流轨迹
*@throwsException
*/
publicStringgetOrderTracesByJson(StringexpCode,StringexpNo)throwsException{
StringrequestData="{'OrderCode':
'','ShipperCode':
'"+expCode+"','LogisticCode':
'"+expNo+"'}";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","1002");
StringdataSign=encrypt(requestData,AppKey,"UTF-8");
params.put("DataSign",urlEncoder(dataSign,"UTF-8"));
params.put("DataType","2");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*XML方式查询订单物流轨迹
*@throwsException
*/
publicStringgetOrderTracesByXml()throwsException{
StringrequestData="
xmlversion=\"1.0\"encoding=\"utf-8\"?
>"+
"
"
"
"
"";
Map
params.put("RequestData",urlEncoder(requestData,"UTF-8"));
params.put("EBusinessID",EBusinessID);
params.put("RequestType","1002");
StringdataSign=encrypt(requestData,AppKey,"UTF-8");
params.put("DataSign",urlEncoder(dataSign,"UTF-8"));
params.put("DataType","1");
Stringresult=sendPost(ReqURL,params);
//根据公司业务处理返回的信息......
returnresult;
}
/**
*MD5加密
*@paramstr内容
*@paramcharset编码方式
*@throwsException
*/
@SuppressWarnings("unused")
privateStringMD5(Stringstr,Stringcharset)throwsException{
MessageDigestmd=MessageDigest.getInstance("MD5");
md.update(str.getBytes(charset));
byte[]result=md.digest();
StringBuffersb=newStringBuffer(32);
for(inti=0;i intval=result[i]&0xff; if(val<=0xf){ sb.append("0"); } sb.append(Integer.toHexString(val)); } returnsb.toString().toLowerCase(); } /** *base64编码 *@paramstr内容 *@paramcharset编码方式 *@throwsUnsupportedEncodingException */ privateStringbase64(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringencoded=base64Encode(str.getBytes(charset)); returnencoded; } @SuppressWarnings("unused") privateStringurlEncoder(Stringstr,Stringcharset)throwsUnsupportedEncodingException{ Stringresult=URLEncoder.encode(str,charset); returnresult; } /** *电商Sign签名生成 *@paramcontent内容 *@paramkeyValueAppkey *@paramcharset编码方式 *@throwsUnsupportedEncodingException,Exception *@returnDataSign签名 */ @SuppressWarnings("unused") privateStringencrypt(Stringcontent,StringkeyValue,Stringcharset)throwsUnsupportedEncodingException,Exception { if(keyValue! =null) { returnbase64(MD5(content+keyValue,charset),charset); } returnbase64(MD5(content,charset),charset); } /** *向指定URL发送POST方法的请求 *@paramurl发送请求的URL *@paramparams请求的参数集合 *@return远程资源的响应结果 */ @SuppressWarnings("unused") privateStringsendPost(Stringurl,Map OutputStreamWr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单号 自动识别 接口 文档 快递