快递公司单号查询接口编码说明
快递单号查询自动识别接口API技术文档

快递单号查询自动识别接口API
快递鸟
版本
1功能说明
通过运单单号自动识别所属的快递公司。
同一个单号可能属于一家或者多家公司,快递鸟提供的服务为智能识别可能的快递公司,识别结果还需用户审核。
接口说明如下:
该接口仅对运单号做出识别,识别可能属于的一家或多家快递公司。
接口并不返回物流轨迹,用户可结合即时查询接口和订阅查询接口完成轨迹查询、订阅的动作。
接口识别会返回一家或者多家快递公司,返回的数据根据快递鸟大数据分析结果排序,排名靠前的命中率更高。
若识别失败,快递鸟返回的匹配结果为空。
2接口规则
(1)、接口只支持Json格式参数,接口指令2002。
只支持POST请求方式,utf-8编码。
(2)、支持增值服务,保价、代收货款、货款直退、货款垫付等。
(3)、测试地址:
:8081/Ebusiness/EbusinessOrderHandle.aspx
(4)、正式地址:/Ebusiness/EbusinessOrderHandle.aspx
3系统级输入参数
4应用级输入参数
5返回结果参数。
100个快递单号查询接口API公司编码

100个快递单号查询接口API公司编码
电商平台的物流模块包括有发货打单获取快递单号和大头笔、智选物流选出最优快递公司、快递单号查询物流轨迹跟踪、运费险、时效配送、在线一键退换货寄件等需求,这背后就需要有专业的第三方物流解决方案服务商来做支撑,淘系电商平台有菜鸟,其他电商平台有快递鸟,这样电商平台就不需要一家家找各家快递公司做接口对接了。
满足全流程的物流状态监控、实时推送获取物流轨迹,一键退换货、预约快递员上门准时取件等需求。
如何快速成功对接快递接口呢?有几个关键点:
1、在快递鸟注册账号获得用户ID和APIKey,对应各Demo中的EBusinessID、APIKey,这个是对接中必须要用到的。
2、在官网或技术支持群下载技术文档,接口开发可在官网下载接口DEMO。
3、快递公司对应的编码也需要清楚,
比如顺丰对应编码SF、中通快递对应编码ZTO、百世快递对应编码HTKY、圆通快递对应编码YTO、申通快递对应编码STO、韵达对应编码YD、邮政快递包裹对应编码YZPY、EMS包裹对应编码EMS、天天快递包裹对应编码HHTT、京东快递包裹对应编码JD、德邦快递对应编码DBL、优速快递对应编码UC、宅急送对应编码ZJS,
下面就列出100+物流公司编码供您使用,全部的编码请在快递鸟网站下载获取。
快递鸟接口支持快递公司编码

高铁速递
黑狗冷链
恒路物流
天地华宇
鸿桥供应链
海派通物流公司
华强物流
华夏龙物流
河北建华
汇达快递
汇丰物流
华航快递
华翰物流
黄马甲快递
海盟速递
华企快运
昊盛物流
鸿泰物流
合肥汇文
辉隆物流
海红网送
航宇快递
豪翔物流
开心快递
Hale Waihona Puke 宏递快运黑猫速运合心速递
汇文快递
环国运物流
华瀚快递
天天快递
海欣斯快递
Hi淘易快递
猴急送物流
H
汇捷物流 飞豹速递
香港邮政
互联快运
共联配
海联快递
顺时达物流
泰联物流
中强物流
如家国际快递
居家通
洪都拉斯
宏捷国际物流
宏品物流
GTSD HGLL HLWL HOAU HOTSCM HPTEX hq568 HXLWL HBJH HDKD HF HHKD HHWL DNWL HMSD HQKY HSWL HTWL HFHW HLONGWL HAIHONGWANGSONG HANGYU HAOXIANGWULIU HAPPYLINK HDWL HEIMAO56 HEXINEXPRESS HFHW HGY56 HHAIR56 HHTT HIGHSINCE HITAOE HJS HJWL HKEEX HKPOST HLKYTJ HLPGYL HLTOP HNSSD56 HNTLWL HNZQWL HOMECOURIER HOMEXPRESS HONDURAS HONGJIE HONGPINWULIU
尼尔物流
速尔哪吒
N 腾达速递
诺尔国际物流
快递单号查询API接口对接流程

快递单号查询API接口对接后可以在自己的网站点击查询就能查到物流轨迹,像京东淘宝查询物流的功能一样,适合一些自己研发的系统商、微信小程序,还有自己的电商网站。
方法/步骤
进入快递鸟网站下载对接相关的接口文档,和接口demo案例,接口demo案例可以直接调用,不用自己编写代码。
如果需要自己编写,可以参照接口文档
另外即时查询API、物流跟踪API和在途监控API都是查询快递的,可以根据不同情况对接使用
在右上角注册账号登录后进行账号认证,就可以对接接口了
在账号登录后首页可以查看接口ID和接口KEY,复制到demo中的“EBusinessID”和“AppKey”两个参数中,demo就可以使用了
对接完成后就是在调试平台调试接口,对比请求报文和返回报文确认对接是不是正确的。
这里需要注意的是,对接的是什么接口,就查看什么接口的调试报文
测试后就可以正式调用了,正式调用的时候在正式地址调用
最后做一个物流轨迹的数据展现就可以了,如下图。
圆通快递电子面单接口对接说明(全)

圆通快递电子面单接口对接说明(全)1.接口类型说明1)接口支持的消息接收方式:HTTP POST2)请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"3)API地址:/Ebusiness/EbusinessOrderHandle.aspx4)接口提供:快递鸟5)快递编码:YTO2.请求系统级参数参数名称类型说明必须要求RequestData String 请求内容需进行URL(utf-8)编码。
请求内容JSON格式,须和DataType一致。
REBusinessID String 商户ID,请在我的服务页面查看。
R RequestType String 请求指令类型:1007RDataSign String 数据内容签名:把(请求内容(未编码)+AppKey)进行MD5加密,然后Base64编码,最后进行URL(utf-8)编码。
详细过程请查看Demo。
RDataType String 请求、返回数据类型:只支持JSON格式O备注:R-必填(Required),O-可选(Optional),C-报文中该参数在一定条件下可选(Conditional)。
3.接口参数1)请求内容字段定义参数名称类型说明是否必须CallBack String 用户自定义回调信息OMemberID String 会员标识OCustomerName String 电子面单客户账号(与快递网点申请)OCustomerPwd String 电子面单密码OSendSite String 收件网点标识OShipperCode String 快递公司编码RLogisticCode String 快递单号OOrderCode String 订单编号RMonthCode String 月结编码 CPayType Int 邮费支付方式:1-现付,2-到付,3-月结,4-第三方支付RExpType String 快递类型:1-标准快件RIsNotice Int 是否通知快递员上门揽件:0-通知;1-不通知;不填则默认为0OCost Double 寄件费(运费)O OtherCost Double 其他费用OReceiver Company String 收件人公司O Name String 收件人R Tel String电话与手机,必填一个R Mobile StringPostCode String 收件人邮编O ProvinceName String 收件省(如广东省,不要缺少“省”)R CityName String 收件市(如深圳市,不要缺少“市”)R ExpAreaName String 收件区(如福田区,不要缺少“区”或“县”)O Address String 收件人详细地址RSender Company String 发件人公司O Name String 发件人R Tel String电话与手机,必填一个R Mobile StringPostCode String 发件人邮编O ProvinceName String 发件省(如广东省,不要缺少“省”)R CityName String 发件市(如深圳市,不要缺少“市”)R ExpAreaName String 发件区(如福田区,不要缺少“区”或“县”)O Address String 发件人详细地址RStartDate String 上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本文中所有时间格式相同OEndDate String O Weight Double 物品总重量kg O Quantity Int 件数/包裹数O Volume Double 物品总体积m3 O Remark String 备注OAddServicesAddService Name String 增值服务名称O Value String 增值服务值O CustomerID String 客户标识(选填)OCommoditys2)返回参数定义参数名称类型说明必须要求EBusinessID String 用户ID ROrder OrderCode String 订单编号R ShipperCode String 快递公司编码R LogisticCode String 快递单号R MarkDestination String 大头笔O OriginCode String 始发地区域编码O OriginName String 始发地/始发网点O DestinatioCode String 目的地区域编码O DestinatioName String 目的地/到达网点O SortingCode String 分拣编码O PackageCode String 集包编码OSuccess Bool 成功与否R ResultCode String 错误编码R Reason String 失败原因O UniquerRequestNumber String 唯一标识R PrintTemplate String 面单打印模板O EstimatedDeliveryTime String 订单预计到货时间yyyy-mm-dd O Callback String 用户自定义回调信息O4. 示例1)JSON请求示例{"OrderCode": "012657700387" ,"ShipperCode": "HTKY","PayType": 1,"ExpType": 1,"Cost": 1.0,"OtherCost": 1.0,"Sender": {"Company": "LV","Name": "Taylor","Mobile": "150********" ,"ProvinceName": "上海","CityName": "上海","ExpAreaName": "青浦区","Address": "明珠路73号"},"Receiver": {"Company": "GCCUI","Name": "Yann","Mobile": "150********" ,"ProvinceName": "北京","CityName": "北京","ExpAreaName": "朝阳区","Address": "三里屯街道雅秀大厦"},"Commodity": [{"GoodsName": "鞋子","Goodsquantity": 1,"GoodsWeight": 1.0}],"AddService": [{"Name": "COD","Value": "1020"}],"Weight": 1.0,"Quantity": 1,"Volume": 0.0,"Remark": "小心轻放","IsReturnPrintTemplate":1}2)JSON返回示例失败:{"EBusinessID": "1237100","ResultCode": "105","Reason": "订单号已存在,请勿重复操作","UniquerRequestNumber":"5e66486b-8fbc-4131-b875-9b13d2ad1354 "}成功:{"EBusinessID": "1237100","Order": {"OrderCode": "012657700387","ShipperCode": "HTKY","LogisticCode": "50002498503427","MarkDestination": "京-朝阳(京-1)","OriginCode": "200000","OriginName": "上海分拨中心","PackageCode": "北京"},"PrintTemplate":"此处省略打印模板HTML内容","EstimatedDeliveryTime":"2016-03-06","Callback":"调用时传入的Callback","Success": true,"ResultCode": "100","Reason": "成功"}5.JAVA对接源码import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.io.UnsupportedEncodingException;import .HttpURLConnection;import .URL;import .URLEncoder;import java.util.HashMap;import java.util.Map;import .apache.xerces.internal.impl.dv.util.Base64;import java.security.MessageDigest;/**** ID和Key请到官网申请:/ServiceApply.aspx*/public class KdGoldAPIDemo {//电商IDprivate String EBusinessID="ID请申请";//电商加密私钥,注意保管,不要泄漏private String AppKey="KEY请申请";//请求url, 正式环境地址:/api/Eorderserviceprivate String ReqURL=":8081/api/Eorderservice";/*** Json方式电子面单* @throws Exception*/public String orderOnlineByJson() throws Exception{String requestData= "{'OrderCode': '118060839871'," +"'ShipperCode':'HHTT'," +"'PayType':1," +"'ExpType':1," +"'Cost':1.0," +"'OtherCost':1.0," +"'Sender':" +"{" +"'Company':'LV','Name':'T aylor','Mobile':'150********','ProvinceName':'上海','CityName':'上海','ExpAreaName':'青浦区','Address':'明珠路73号'}," +"'Receiver':" +"{" +"'Company':'GCCUI','Name':'Yann','Mobile':'150********','ProvinceName':'北京','CityName':'北京','ExpAreaName':'朝阳区','Address':'三里屯街道雅秀大厦'}," +"'Commodity':" +"[{" +"'GoodsName':'鞋子','Goodsquantity':1,'GoodsWeight':1.0}]," +"'Weight':1.0," +"'Quantity':1," +"'Volume':0.0," +"'Remark':'小心轻放'," +"'IsReturnPrintTemplate':1}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1007");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "2");String result=sendPost(ReqURL, params);//根据公司业务处理返回的信息......return result;}/*** MD5加密* @param str 内容* @param charset 编码方式* @throws Exception*/@SuppressWarnings("unused")private String MD5(String str, String charset) throws Exception {MessageDigest md = MessageDigest.getInstance("MD5");md.update(str.getBytes(charset));byte[] result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i < result.length; i++) {int val = result[i] & 0xff;if (val <= 0xf) {sb.append("0");}sb.append(Integer.toHexString(val));}return sb.toString().toLowerCase();}/*** base64编码* @param str 内容* @param charset 编码方式* @throws UnsupportedEncodingException*/private String base64(String str, String charset) throws UnsupportedEncodingException{String encoded = Base64.encode(str.getBytes(charset));return encoded;}@SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodingException{ String result = URLEncoder.encode(str, charset);return result;}/*** 电商Sign签名生成* @param content 内容* @param keyValue Appkey* @param charset 编码方式* @throws UnsupportedEncodingException ,Exception* @return DataSign签名*/@SuppressWarnings("unused")private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception{if (keyValue != null){return base64(MD5(content + keyValue, charset), charset);}return base64(MD5(content, charset), charset);}/*** 向指定URL 发送POST方法的请求* @param url 发送请求的URL* @param params 请求的参数集合* @return 远程资源的响应结果*/@SuppressWarnings("unused")private String sendPost(String url, Map<String, String> params) {OutputStreamWriter out = null;BufferedReader in = null;StringBuilder result = new StringBuilder();try {URL realUrl = new URL(url);HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// POST方法conn.setRequestMethod("POST");// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");conn.connect();// 获取URLConnection对象对应的输出流out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");// 发送请求参数if (params != null) {StringBuilder param = new StringBuilder();for (Map.Entry<String, String> entry : params.entrySet()) {if(param.length()>0){param.append("&");}param.append(entry.getKey());param.append("=");param.append(entry.getValue());System.out.println(entry.getKey()+":"+entry.getValue());}System.out.println("param:"+param.toString());out.write(param.toString());}// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line;while ((line = in.readLine()) != null) {result.append(line);}} catch (Exception e) {e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}}catch(IOException ex){ex.printStackTrace();}}return result.toString();}}6.PHP对接源码<?php//电商IDdefined('EBusinessID') or define('EBusinessID', '请申请/ServiceApply.aspx');//电商加密私钥,注意保管,不要泄漏defined('AppKey') or define('AppKey', '请申请/ServiceApply.aspx'); //请求url,接口正式地址:/api/Eorderservicedefined('ReqURL') or define('ReqURL', ':8081/api/Eorderservice');//调用获取物流轨迹//-------------------------------------------------------------//构造电子面单提交信息$eorder = [];$eorder["ShipperCode"] = "HHTT";$eorder["OrderCode"] = "PM201604062341";$eorder["PayType"] = 1;$eorder["ExpType"] = 1;$sender = [];$sender["Name"] = "李先生";$sender["Mobile"] = "188********";$sender["ProvinceName"] = "李先生";$sender["CityName"] = "深圳市";$sender["ExpAreaName"] = "福田区";$sender["Address"] = "赛格广场5401AB";$receiver = [];$receiver["Name"] = "李先生";$receiver["Mobile"] = "188********";$receiver["ProvinceName"] = "李先生";$receiver["CityName"] = "深圳市";$receiver["ExpAreaName"] = "福田区";$receiver["Address"] = "赛格广场5401AB";$commodityOne = [];$commodityOne["GoodsName"] = "其他";$commodity = [];$commodity[] = $commodityOne;$eorder["Sender"] = $sender;$eorder["Receiver"] = $receiver;$eorder["Commodity"] = $commodity;//调用电子面单$jsonParam = json_encode($eorder, JSON_UNESCAPED_UNICODE); //$jsonParam = JSON($eorder);//兼容php5.2(含)以下echo "电子面单接口提交内容:<br/>".$jsonParam;$jsonResult = submitEOrder($jsonParam);echo "<br/><br/>电子面单提交结果:<br/>".$jsonResult;//解析电子面单返回结果$result = json_decode($jsonResult, true);echo "<br/><br/>返回码:".$result["ResultCode"];if($result["ResultCode"] == "100") {echo "<br/>是否成功:".$result["Success"];}else {echo "<br/>电子面单下单失败";}//-------------------------------------------------------------/*** Json方式查询订单物流轨迹*/function submitEOrder($requestData){$datas = array('EBusinessID' => EBusinessID,'RequestType' => '1007','RequestData' => urlencode($requestData) ,'DataType' => '2',);$datas['DataSign'] = encrypt($requestData, AppKey);$result=sendPost(ReqURL, $datas);//根据公司业务处理返回的信息......return $result;}/*** post提交数据* @param string $url 请求Url* @param array $datas 提交的数据* @return url响应返回的html*/function sendPost($url, $datas) {$temps = array();foreach ($datas as $key => $value) {$temps[] = sprintf('%s=%s', $key, $value);}$post_data = implode('&', $temps);$url_info = parse_url($url);if($url_info['port']==''){$url_info['port']=80;}echo $url_info['port'];$httpheader = "POST " . $url_info['path'] . " HTTP/1.0\r\n";$httpheader.= "Host:" . $url_info['host'] . "\r\n";$httpheader.= "Content-Type:application/x-www-form-urlencoded\r\n";$httpheader.= "Content-Length:" . strlen($post_data) . "\r\n";$httpheader.= "Connection:close\r\n\r\n";$httpheader.= $post_data;$fd = fsockopen($url_info['host'], $url_info['port']);fwrite($fd, $httpheader);$gets = "";$headerFlag = true;while (!feof($fd)) {if (($header = @fgets($fd)) && ($header == "\r\n" || $header == "\n")) { break;}}while (!feof($fd)) {$gets.= fread($fd, 128);}fclose($fd);return $gets;}/*** 电商Sign签名生成* @param data 内容* @param appkey Appkey* @return DataSign签名*/function encrypt($data, $appkey) {return urlencode(base64_encode(md5($data.$appkey)));}/**************************************************************** 使用特定function对数组中所有元素做处理* @param string &$array 要处理的字符串* @param string $function 要执行的函数* @return boolean $apply_to_keys_also 是否也应用到key上* @access public**************************************************************/ function arrayRecursive(&$array, $function, $apply_to_keys_also = false){static $recursive_counter = 0;if (++$recursive_counter > 1000) {die('possible deep recursion attack');}foreach ($array as $key => $value) {if (is_array($value)) {arrayRecursive($array[$key], $function, $apply_to_keys_also);} else {$array[$key] = $function($value);}if ($apply_to_keys_also && is_string($key)) {$new_key = $function($key);if ($new_key != $key) {$array[$new_key] = $array[$key];unset($array[$key]);}}}$recursive_counter--;}/************************************************************** ** 将数组转换为JSON字符串(兼容中文)* @param array $array 要转换的数组* @return string 转换得到的json字符串* @access public**************************************************************/ function JSON($array) {arrayRecursive($array, 'urlencode', true);$json = json_encode($array);return urldecode($json);}?>。
Trackingmore物流轨迹查询接口快递公司编码

sweden-posten laposte poste-italiane aland-post afghan-post posta-shqiptare algeria-post andorra-post andorra-ems correios-angola anguilla-gb-post antarctica-post antigua-and-barbuda-post antilles-post correo-argentino armenia-post aruba-post ascension-post australia-ems austria-post azerbaijan-post
根西岛邮政 几内亚共和国邮政 几内亚比绍邮政 圭亚那邮政 海地邮政 洪都拉斯邮政 匈牙利邮政 冰岛邮政 印度邮政 印度尼西亚邮政 伊朗邮政 伊拉克邮政 爱尔兰邮政 以色列邮政 科特迪瓦邮政 科特迪瓦 EMS 牙买加邮政 日本邮政 约旦邮政 哈萨克斯坦邮政 肯尼亚邮政
kiribati-post korea-north-post korea-post kosovo-post kuwait-post kyrgyzpost laos-post latvijas-pasts liban-post lesotho-post liberia-post libya-post liechtenstein-post lietuvos-pastas luxembourg-post macao-post macedonia-post madagascar-post malawi-post malaysia-post maldives-post
Guernsey Post guinea post Guinea-Bissau post Guyana post Haiti post Honduras post Magyar Posta Iceland post India post Indonesia post Iran post Iraq post An Post Israel post Ivory Coast post Ivory Coast EMS Jamaica post Japan post Jordan post Kazakhstan post Kenya post
物流快递单号查询接口种类及对接方法

物流快递单号查询接口种类及对接方法目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。
第一种耗费时间长,但是是直接和快递公司合作,第二种虽然是间接对接,但是对接简便,对后期的接口维护可以省很多时间和人力成本。
集成接口还有其他公司提供,有其他需要可以去找,快递鸟其实能满足电商、ERP系统商这些企业需求了。
这里就以快递鸟为例说说对接方法。
快递鸟物流查询接口有免费和收费版本,对接周期大概在一天左右,他们有写好的demo,可以直接使用。
一.即时查询接口(免费)1. 接口规则(1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。
(2)、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。
如EMS物流单号应选择快递公司编码(EMS)(3)、返回的物流跟踪信息按照发生的时间升序排列。
(4)、接口指令1002。
(5)、请求地址:快递鸟2. 系统级和应用级输入参数返回结果参数这个是用户在订阅单号成功且有物流轨迹更新后,快递鸟的推送客户通过下单、订阅接口,把运单号在快递鸟系统订阅。
运单物流信息有更新,快递鸟通过推送接口把更新的信息推送给客户。
推送接口由用户按照快递鸟规则实现。
商户开放接口,快递鸟定时将最新的物流轨迹推送到商户平台。
优点:客户不需要关注轨迹变化,一旦有更新,快递鸟自动推送。
缺点:对客户的服务器性能有所要求,快递鸟定时请求接口,对客户的服务器有一定的影响,客户服务器异常将接受不到最新数据。
快递鸟推送接口根据业务不同,会根据RequestType的分类推送不同的数据,用户需对推送的数据进行分类保存。
原推送接口无需变化,快递鸟会根据推送版本进行推送。
1. 接口规则(1)、客户服务器必须稳定,并且有一定的接受数据能力(需要在5S内给快递鸟返回成功示例,超时会判断推送失败)。
快递公司快递单号规律总结

快递公司快递单号规律总结
快递公司快递单号规律总结申通单号由12位数字组成,常见以268**、368**、58**等开头
EMS单号由13位字母和数字组成,开头和结尾⼆位是字母,中间是数字
顺丰单号由12位数字组成,常见以电话区号后三位开头
圆通单号由10位字母数字组成,常见以1*、2*、6*、8*、D*及V*等开头
中通单号由12位数字组成,常见以2008**、6**、010等开头韵达单号由13位数字组成,常见以10*、12*、19*等开头
天天单号由14位数字组成,常见以6**、5*、00*等开头
汇通快递查询单号由13位数字编码组成,常见以0*或者B*、H*开头
速尔的快递单号由12位数字组成的
德邦的货运单号现在是以1或2开头的8位数字组成
宅急送单号由10位数字组成,常见以7**、6**、5**等开头。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
快递公司编码说明以下是快递鸟API接口对外开放的部分快递公司编码的列表,接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。
如:EMS物流单号应选择快递公司编码(EMS)、德邦物流单号应选择快递公司编码(DBL)、天天快递物流单号应选择快递公司编码(HHTT)、圆通速递物流单号应选择快递公司编码(YTO)、中通速递快递物流单号应选择快递公司编码(ZTO)、亚马逊物流单号应选择快递公司编码(AMAZON)、顺丰物流单号应选择快递公司编码(SF)、百世快运物流单号应选择快递公司编码(BTWL)、宅急送物流单号应选择快递公司编码(ZJS)。
适用于即时查询API接口和订阅推送API接口。
如果在下面没有找到您所要的快递公司,请添加在群共享文件下载。
国内快递查询接口编码国际快递查询接口转运查询接口快递查询接口应用场景查询订单的物流信息可实现需求1.App中直接集成实现快递物流信息查询Api接口2.在微信公众号中,根据用户输入的订单号,我们的后台识别订单号并根据快递鸟查询快递Api接口,实现自动查询的功能3.等等申请Key按照你的信息,依次把信息填写完整,点击提交申请即可。
登录成功后,就可以看到ID和key等信息,有这些信息就可以请求查询等其他的接口Api快递查询Api接口接口文档及各开发语言Demo查询Api接口定义系统级输入参数参数名称类型必须要求说明RequestData String R 请求内容,JSON或XML格式,须和DataType一致EBusinessID String R 用户IDRequestType String R 请求指令类型:1002DataSign String R 数据内容签名DataType String O 请求、返回数据类型:1-xml,2-json;默认为xml格式应用级输入参数参数名称类型必须要求说明OrderCode varchar(50) O 订单编号ShipperCode varchar(10) R 快递公司编码LogisticCode varchar(50) R 物流单号返回结果参数参数名称类型必须要求说明EBusinessID Int R 电商用户IDOrderCode Varchar(50) O 订单编号ShipperCode varchar(10) R 快递公司编码LogisticCode Varchar(50) R 物流运单号Success Bool R 成功与否Reason Varchar(50) O 失败原因State Int R 物流状态1:已取件2:在途中3:签收Traces Varchar(Max) R 物流轨迹详情物流轨迹详情参数名称类型必须要求说明AcceptTime DateTime R 时间AcceptStation Varchar(50) R 描述Remark Varchar(150) O 备注请求JSON参数{"OrderCode" : "","ShipperCode" : "SF","LogisticCode" :}响应JSON参数{"EBusinessID" : "1109259","OrderCode" : "","ShipperCode" : "SF","LogisticCode" : ,"Success" : true,"State" : 3,"Reason" : null,"traces" : [{"AcceptTime" : "2014/06/25 08:05:37","AcceptStation" : "正在派件..(派件人:邓裕富,电话深圳市]","Remark" : null}, {"AcceptTime" : "2014/06/25 04:01:28","AcceptStation" : "快件在深圳集散中心 ,准备送往下一站深圳 [深圳市]", "Remark" : null}, {"AcceptTime" : "2014/06/25 01:41:06","AcceptStation" : "快件在深圳集散中心 [深圳市]","Remark" : null}, {"AcceptTime" : "2014/06/24 20:18:58","AcceptStation" : "已收件[深圳市]","Remark" : null}, {"AcceptTime" : "2014/06/24 20:55:28","AcceptStation" : "快件在深圳 ,准备送往下一站深圳集散中心 [深圳市]", "Remark" : null}, {"AcceptTime" : "2014/06/25 10:23:03","AcceptStation" : "派件已签收[深圳市]","Remark" : null}, {"AcceptTime" : "2014/06/25 10:23:03","AcceptStation" : "签收人是:已签收[深圳市]","Remark" : null}]}查询Api接口使用以Java开发语言为例,进行展开importimportimportimportimportimportimportimportimportimportimport/**** 快递鸟物流轨迹即时查询接口** @技术QQ群* @see* @copyright: 深圳市快金数据技术服务有限公司** DEMO中的电商ID与私钥仅限测试使用,正式环境请单独注册账号* 单日超过500单查询量,建议接入我方物流轨迹订阅推送接口** ID和Key请到官网申请:*/public class KdniaoTrackQueryAPI {//DEMOpublic static void main(String[] args) {KdniaoTrackQueryAPI api = new KdniaoTrackQueryAPI();try {String result = api.getOrderTracesByJson("ANE", );} catch (Exception e) {e.printStackTrace();}}//电商IDprivate String EBusinessID="请到快递鸟官网申请;//电商加密私钥,快递鸟提供,注意保管,不要泄漏private String AppKey="请到快递鸟官网申请;//请求urlprivate String ReqURL=;/*** Json方式查询订单物流轨迹* @throws Exception*/public String getOrderTracesByJson(String expCode, String expNo) throws Excepti on{String requestData= "{'OrderCode':'','ShipperCode':'" + expCode + "','Logis ticCode':'" + expNo + "'}";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1002");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "2");String result=sendPost(ReqURL, params);//根据公司业务处理返回的信息......return result;}/*** XML方式查询订单物流轨迹* @throws Exception*/public String getOrderTracesByXml() throws Exception{String requestData= "<?xml version=\"1.0\" encoding=\"utf-8\" ?>"+"<Content>"+"<OrderCode></OrderCode>"+"<ShipperCode>SF</ShipperCode>"++"</Content>";Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8"));params.put("EBusinessID", EBusinessID);params.put("RequestType", "1002");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(dataSign, "UTF-8"));params.put("DataType", "1");String result=sendPost(ReqURL, params);//根据公司业务处理返回的信息......return result;}/*** MD5加密* @param str 内容* @param charset 编码方式* @throws Exception*/@SuppressWarnings("unused")private String MD5(String str, String charset) throws Exception { MessageDigest md = MessageDigest.getInstance("MD5");md.update(str.getBytes(charset));byte[] result = md.digest();StringBuffer sb = new StringBuffer(32);for (int i = 0; i < result.length; i++) {int val = result[i] & 0xff;if (val <= 0xf) {sb.append("0");}sb.append(Integer.toHexString(val));}return sb.toString().toLowerCase();}/*** base64编码* @param str 内容* @param charset 编码方式* @throws UnsupportedEncodingException*/private String base64(String str, String charset) throws UnsupportedEncodingExc eption{String encoded = base64Encode(str.getBytes(charset));return encoded;}@SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodin gException{String result = URLEncoder.encode(str, charset);return result;}/*** 电商Sign签名生成* @param content 内容* @param keyValue Appkey* @param charset 编码方式* @throws UnsupportedEncodingException ,Exception* @return DataSign签名*/@SuppressWarnings("unused")private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exception{if (keyValue != null){return base64(MD5(content + keyValue, charset), charset);}return base64(MD5(content, charset), charset);}/*** 向指定 URL 发送POST方法的请求* @param url 发送请求的 URL* @param params 请求的参数集合* @return远程资源的响应结果*/@SuppressWarnings("unused")private String sendPost(String url, Map<String, String> params) {OutputStreamWriter out = null;BufferedReader in = null;StringBuilder result = new StringBuilder();try {URL realUrl = new URL(url);HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();// 发送POST请求必须设置如下两行conn.setDoOutput(true);conn.setDoInput(true);// POST方法conn.setRequestMethod("POST");// 设置通用的请求属性conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("user-agent","Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");conn.setRequestProperty("Content-Type", "application/x-www-form-urlenco ded");conn.connect();// 获取URLConnection对象对应的输出流out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");if (params != null) {StringBuilder param = new StringBuilder();for (Map.Entry<String, String> entry : params.entrySet()) {if(param.length()>0){param.append("&");}param.append(entry.getKey());param.append("=");param.append(entry.getValue());}out.write(param.toString());}// flush输出流的缓冲out.flush();// 定义BufferedReader输入流来读取URL的响应in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")); String line;while ((line = in.readLine()) != null) {result.append(line);}} catch (Exception e) {e.printStackTrace();}//使用finally块来关闭输出流、输入流finally{try{if(out!=null){out.close();}if(in!=null){in.close();}catch(IOException ex){ex.printStackTrace();}}return result.toString();}private static char[] base64EncodeChars = new char[] { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H','I', 'J', 'K', 'L', 'M', 'N', 'O', 'P','Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X','Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f','g', 'h', 'i', 'j', 'k', 'l', 'm', 'n','o', 'p', 'q', 'r', 's', 't', 'u', 'v','w', 'x', 'y', 'z', '0', '1', '2', '3','4', '5', '6', '7', '8', '9', '+', '/' };public static String base64Encode(byte[] data) {StringBuffer sb = new StringBuffer();int len = data.length;int i = 0;int b1, b2, b3;while (i < len) {b1 = data[i++] & 0xff;if (i == len){sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[(b1 & 0x3) << 4]); sb.append("==");break;}b2 = data[i++] & 0xff;if (i == len){sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[(b2 & 0x0f) << 2]);sb.append("=");break;}b3 = data[i++] & 0xff;sb.append(base64EncodeChars[b1 >>> 2]);sb.append(base64EncodeChars[((b1 & 0x03) << 4) | ((b2 & 0xf0) >>> 4)]); sb.append(base64EncodeChars[((b2 & 0x0f) << 2) | ((b3 & 0xc0) >>> 6)]); sb.append(base64EncodeChars[b3 & 0x3f]);}return sb.toString();}}其他Api接口,请转到快递鸟具体查看相关文档。