版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、不限量快递查询API使用文档1.1 功能说明客户通过下单、订阅接口,把运单号在快递鸟系统订阅。运单物流信息有更新,通过推送接口把更新的信息推送给客户。推送接口由用户按照接口规则实现。商户开放接口,接口定时将最新的物流轨迹推送到商户平台。优点:客户不需要关注轨迹变化,一旦有更新,自动推送。缺点:对客户的服务器性能有所要求,定时请求接口,对客户的服务器有一定的影响,客户服务器异常将接受不到最新数据。推送接口根据业务不同,会根据RequestType的分类推送不同的数据,用户需对推送的数据进行分类保存。原推送接口无需变化,快递鸟会根据推送版本进行推送。与即时查询接口(3000次/天)的区别:1、接入
2、方式不一样 即时查询接口,根据快递单号和快递公司编码实时查询物流轨迹信息 订阅推送接口,用户订阅快递号,快递鸟系统会定时推送新的物流信息2、实现的功能不一样订阅推送会持续推送更新的轨迹信息3、查询单量不一样即时查询每日查询次数<3000次,订阅推送不限制订阅单量,并可一直获得每个单号的更新信息。1.2 接口规则 (1)、客户服务器必须稳定,并且有一定的接受数据能力。通过多线程推送物流信息给客户。 (2)、客户需要按快递鸟要求开发接口,保证信息的正常接收。客户接数据后,存储并马上返回接收响应。如果客户对数据进行处理,再做出响应。这会造成网络超时,传输效率低下。 (3)、主动推送时物流信息接
3、收接口由客户提供,接口必须按照快递鸟的要求实现。 (4)、客户提供接口地址,请联系快递鸟技术人员,联系方式请求查看文档尾页。(5)、接口只支持Json数据格式。(6)、接口平台:快递鸟(7)、POS方式请求。1.3 系统级输入参数参数名称类型必须要求说明RequestDataStringR推送数据经url转码utf-8 RequestTypeStringR101-轨迹查询结果, 107-货款状态1.4 应用级输入参数参数名称类型必须要求说明EBusinessIDStringR用户电商IDPushTimeStringR推送时间CountStringR推送物流单号轨迹个数DataStringR推送
4、物流单号轨迹集合1.4.1 订阅查询结果(RequestType:101)通过轨迹查询(订阅查询)接口订阅到快递鸟的数据,快递鸟推送时,会将推送的RequestType的值置为101,同时返回下列数据参数名称类型必须要求说明ResponseEBusinessIDStringO电商用户IDOrderCodeStringO订单编号ShipperCodeStringR快递公司编码LogisticCodeStringR物流运单号SuccessBoolR成功与否ReasonStringO失败原因StateStringR物流状态:0-无轨迹1-已揽收2-在途中201-到达派件城市3-签收4-问题件Call
5、BackStringO订阅接口的Bk值TracesStringR物流轨迹详情EstimatedDeliveryTimeStringO预计到达时间yyyy-mm-ddPickerInfoObjectO收件员信息SenderInfoObjectO派件员信息注:通过订单分发与电子面单接口自动订阅的运单,会返回预计达到时间,收派件人员网点信息,当前快件所在省市等字段参数名称类型必须要求说明TracesAcceptTimeStringR时间AcceptStationStringR描述RemarkStringO备注参数名称类型必须要求说明PickerInfoPersonNameStringO快递员姓名Pe
6、rsonTelStringO快递员电话PersonCodeStringO快递员工号StationNameStringO网点名称StationAddressStringO网点地址StationTelStringO网点电话参数名称类型必须要求说明SenderInfoPersonNameStringO派件快递员姓名PersonTelStringO派件快递员电话PersonCodeStringO派件快递员工号StationNameStringO派件网点名称StationAddressStringO派件网点地址StationTelStringO派件网点电话1.4.2 货款状态(RequestType:1
7、07)用户通过电子面单使用快递鸟货到付款等金融服务时,快递鸟会将该订单的金融状态通过接口推送给用户。参数名称类型必须要求说明ResponseEBusinessIDStringO电商用户IDOrderCodeStringO订单编号ShipperCodeStringR快递公司编码LogisticCodeStringR物流运单号SuccessBoolR成功与否ReasonStringO失败原因StateStringR物流状态:0-无轨迹1-已揽收2-在途中201-到达派件城市3-签收4-问题件CallBackStringO订阅接口的Bk值OrderStateStringO订单货款状态:1-待出款;2
8、-已出款;3-已收款AccountNameStringO返款银行卡开户人(例:*伟、*佳)AccountTelStringO返款银行卡手机末四位AccountNumStringO返款银行卡末四位注:通过订单分发与电子面单接口自动订阅的运单,会返回预计达到时间,收派件人员网点信息,当前快件所在省市等字段1.5 返回结果参数参数名称类型必须要求说明EBusinessIDStringR用户IDUpdateTimeStringR时间SuccessStringR成功与否ReasonStringO失败原因1.6 JSON请求示例订阅查询结果示例: "EBusinessID": &quo
9、t;1109259", "Count": "2", "PushTime": "2015-03-11 16:21:06", "Data": "EBusinessID": "1109259", "OrderCode": "", "ShipperCode": "EMS", "LogisticCode": "5042260908504"
10、, "Success": true, "Reason": "", "State": "2", "CallBack": "0", "Traces": "AcceptTime": "2015-03-06 21:16:58", "AcceptStation": "深圳市横岗速递营销部已收件,(揽投员姓名:钟定基;联系电话:)", "Remark"
11、;: "" , "AcceptTime": "2015-03-07 14:25:00", "AcceptStation": "离开深圳市 发往广州市", "Remark": "" , "AcceptTime": "2015-03-08 00:17:00", "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)", "Remark"
12、: "" , "AcceptTime": "2015-03-08 01:15:00", "AcceptStation": "离开广州市 发往北京市(经转)", "Remark": "" , "AcceptTime": "2015-03-09 09:01:00", "AcceptStation": "到达北京黄村转运站处理中心(经转)", "Remark":
13、"" , "AcceptTime": "2015-03-09 18:39:00", "AcceptStation": "离开北京市 发往呼和浩特市(经转)", "Remark": "" , "AcceptTime": "2015-03-10 18:06:00", "AcceptStation": "到达 呼和浩特市 处理中心", "Remark": &quo
14、t;" , "AcceptTime": "2015-03-11 09:53:48", "AcceptStation": "呼和浩特市邮政速递物流分公司金川揽投部安排投递(投递员姓名:安长虹;联系电话", "Remark": "" , "EBusinessID": "1109259", "OrderCode": "", "ShipperCode"
15、;: "EMS", "LogisticCode": "5042260943004", "Success": true, "Reason": "", "State": "2", "CallBack": "0", "Traces": "AcceptTime": "2015-03-07 15:26:09", "AcceptStatio
16、n": "深圳市横岗速递营销部已收件,(揽投员姓名:周宏彪;联系电话", "Remark": "" , "AcceptTime": "2015-03-08 16:32:00", "AcceptStation": "离开深圳市 发往广州市", "Remark": "" , "AcceptTime": "2015-03-09 00:58:00",
17、 "AcceptStation": "到达广东速递物流公司广航中心处理中心(经转)", "Remark": "" , "AcceptTime": "2015-03-09 01:15:00", "AcceptStation": "离开广州市 发往北京市(经转)", "Remark": "" , "AcceptTime": "2015-03-10 05:20:00&quo
18、t;, "AcceptStation": "到达北京黄村转运站处理中心(经转)", "Remark": "" , "AcceptTime": "2015-03-10 11:59:00", "AcceptStation": "离开北京市 发往廊坊市(经转)", "Remark": "" , "AcceptTime": "2015-03-10 14:23:00"
19、, "AcceptStation": "到达廊坊市处理中心(经转)", "Remark": "" , "AcceptTime": "2015-03-11 08:55:00", "AcceptStation": "离开廊坊市 发往保定市(经转)", "Remark": "" 货款状态: "EBusinessID": "1109259&
20、quot;, "Count": "2", "PushTime": "2015/3/11 16:21:06", "Data": "EBusinessID"
21、: "1109259", "OrderCode": "", "ShipperCode": "EMS",
22、"LogisticCode": "5042260908504", "Success": true, "Reason": "", &
23、#160; "State": "2", "CallBack": "0", "OrderState":"1",
24、 "AccountName":"张三", "AccountTel":"quot;, "AccountNum":"0321"
25、0; , "EBusinessID": "1109259", "OrderCode": "",
26、160; "ShipperCode": "EMS", "LogisticCode": "5042260908522", "Success": true,
27、 "Reason": "", "State": "2", "CallBack": "0&quo
28、t;, "OrderState":"1", "AccountName":"张三", "AccountTel&quo
29、t;:"quot;, "AccountNum":"0321" 1.7 JSON返回示例 "EBusinessID": "1109259", "UpdateTime": "2015-03-11 16: 2
30、6: 11", "Success": true, "Reason": ""1.8 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 .U
31、RLEncoder;import java.util.HashMap;import java.util.Map;import ernal.impl.dv.util.Base64;import java.security.MessageDigest; public class KdGoldAPIDemo /电商IDprivate String EBusinessID="1237100"/电商加密私钥,注意保管,不要泄漏,请重新申请秘钥private String AppKey="518a73d8-1f7f-4
32、41a-b644-33e77b49d846"/请求urlprivate String ReqURL="http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx" /* * Json方式 物流信息订阅 * throws Exception */public String orderTracesSubByJson() throws ExceptionString requestData="'Code': 'SF','Item': "+ "
33、'No': '909261024507','Bk': 'test',"+ "'No': '589554393102','Bk': 'test',"+ "'No': '589522101958','Bk': 'test',"+ "'No': '909198822942', 'Bk': 'tes
34、t'"+ ""Map<String, String> params = new HashMap<String, String>();params.put("RequestData", urlEncoder(requestData, "UTF-8");params.put("EBusinessID", EBusinessID);params.put("RequestType", "1005");String dataSign=encry
35、pt(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 orderTracesSubB
36、yXml() throws ExceptionString requestData="<?xml version="1.0" encoding="utf-8" ?>"+"<Content>"+"<Code>SF</Code>"+"<Items>"+"<Item>"+"<No>909261024507</No>"+"<Bk>
37、;test</Bk>"+"</Item>"+"<Item>"+"<No>909261024507</No>"+"<Bk>test</Bk>"+"</Item>"+"</Items>"+"</Content>"Map<String, String> params = new HashMap<String, Str
38、ing>();params.put("RequestData", urlEncoder(requestData, "UTF-8");params.put("EBusinessID", EBusinessID);params.put("RequestType", "1005");String dataSign=encrypt(requestData, AppKey, "UTF-8");params.put("DataSign", urlEncoder(
39、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) thro
40、ws 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 = resulti & 0xff; if (val <= 0xf) sb.append("0"); sb.appe
41、nd(Integer.toHexString(val); return sb.toString().toLowerCase();/* * base64编码 * param str 内容 * param charset 编码方式 * throws UnsupportedEncodingException */private String base64(String str, String charset) throws UnsupportedEncodingExceptionString encoded = Base64.encode(str.getBytes(charset);return e
42、ncoded; SuppressWarnings("unused")private String urlEncoder(String str, String charset) throws UnsupportedEncodingExceptionString result = URLEncoder.encode(str, charset);return result;/* * 电商Sign签名生成 * param content 内容 * param keyValue Appkey * param charset 编码方式 * throws UnsupportedEncod
43、ingException ,Exception * return DataSign签名 */SuppressWarnings("unused")private String encrypt (String content, String keyValue, String charset) throws UnsupportedEncodingException, Exceptionif (keyValue != null)return base64(MD5(content + keyValue, charset), charset);return base64(MD5(con
44、tent, 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
45、 = 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", &q
46、uot;*/*"); 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"
47、;); 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("&am
48、p;"); 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输入流来读
49、取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(); catc
50、h(IOException ex) ex.printStackTrace(); return result.toString(); 1.9 PHP对接代码<?php/电商IDdefined('EBusinessID') or define('EBusinessID', 1237100);/电商加密私钥,注意保管,不要泄漏(ID和KEY需重新申请)defined('AppKey') or define('AppKey', '518a73d8-1f7f-441a-b644-33e77b49d846');/请求ur
51、ldefined('ReqURL') or define('ReqURL', 'http:/api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx'); /* * Json方式 物流信息订阅 */function orderTracesSubByJson()$requestData="'Code': 'SF','Item': ". "'No': '909261024507','Bk
52、9;: 'test',". "'No': '589554393102','Bk': 'test',". "'No': '589522101958','Bk': 'test',". "'No': '909198822942', 'Bk': 'test'". ""$datas = array( '
53、EBusinessID' => EBusinessID, 'RequestType' => '1005', 'RequestData' => urlencode($requestData) , 'DataType' => '2', ); $datas'DataSign' = encrypt($requestData, AppKey);$result=sendPost(ReqURL, $datas);/根据公司业务处理返回的信息.return $result;/* *
54、XML方式 物流信息订阅 */function orderTracesSubByXml()$requestData="<?xml version="1.0" encoding="utf-8" ?>"."<Content>"."<Code>SF</Code>"."<Items>"."<Item>"."<No>909261024507</No>"
55、."<Bk>test</Bk>"."</Item>"."<Item>"."<No>909261024507</No>"."<Bk>test</Bk>"."</Item>"."</Items>"."</Content>"$datas = array( 'EBusinessID' => E
56、BusinessID, 'RequestType' => '1005', 'RequestData' => urlencode($requestData) , 'DataType' => '1', ); $datas'DataSign' = encrypt($requestData, AppKey);$result=sendPost(ReqURL, $datas);/根据公司业务处理返回的信息.return $result;/* * post提交数据 * param string
57、$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'
58、='')$url_info'port'=80;echo $url_info'port' $httpheader = "POST " . $url_info'path' . " HTTP/1.0rn" $httpheader.= "Host:" . $url_info'host' . "rn" $httpheader.= "Content-Type:application/x-www-form-urlencodedrn"
59、; $httpheader.= "Content-Length:" . strlen($post_data) . "rn" $httpheader.= "Connection:closernrn" $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 = "rn" | $header = "n") break; while (!feof($fd) $gets.= fread($fd, 128); fclose($fd); return $gets;/* * 电商Sign签名生成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年在线工业制造平台用户注册协议
- 2025年公用事业水电燃气协议
- 2025年人力资源抵押合同
- 二零二五版7月:生物制药研发成果转让及收益分成还款协议模板3篇
- 二零二五年度高档实木地板定制安装合同4篇
- 中银个人购买写字楼贷款合同(2024年版)
- 2025年度木地板生产工艺优化与节能减排合同4篇
- 二零二五年度母子公司智能装备制造合作协议4篇
- 临时用电施工安全规范合同汇编版B版
- 2025年度钢结构承包项目安全风险评估协议
- 9.2溶解度(第1课时饱和溶液不饱和溶液)+教学设计-2024-2025学年九年级化学人教版(2024)下册
- 矿山隐蔽致灾普查治理报告
- 副总经理招聘面试题与参考回答(某大型国企)2024年
- PDCA循环提高护士培训率
- 《狮子王》电影赏析
- 河北省保定市定州市2025届高二数学第一学期期末监测试题含解析
- 中医护理人文
- 2024-2030年中国路亚用品市场销售模式与竞争前景分析报告
- 货物运输安全培训课件
- 前端年终述职报告
- 市人民医院关于开展“改善就医感受提升患者体验主题活动”2023-2025年实施方案及资料汇编
评论
0/150
提交评论