快递100对应快递公司管理系统代码ap.kuaidi100公司管理系统代码
- 格式:doc
- 大小:190.43 KB
- 文档页数:12
说明以下是快递100对外开放的部份公司的列表,同时适用于和(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击1、API地址]注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅2、输入参数说明3、返回结果说明4、API调用及返回结果示范API调用示范Json返回示例{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0713:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 19:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 15:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-0615:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 13:37:52","context":"离开 [北京_同城中转站] 发往[北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达 [北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开 [福建_厦门支公司] 发往[北京运转中心_航空]"},{"time":"2012-07-05 20:07:27","context":"已取件,到达[福建_厦门支公司]"}]}xml返回示例<xml>? ? ? ? <message>ok</message>? ? ? ? <status>1</status>? ? ? ? <state>3</state>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 13:35:14</time>? ? ? ? ? ? ? ? <context>客户已签收</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 09:10:10</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 19:46:38</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 15:22:32</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 15:05:00</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 13:37:52</time>? ? ? ? ? ? ? ? <context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 12:54:41</time>? ? ? ? ? ? ? ? <context>到达 [北京_同城中转站]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 11:11:03</time>? ? ? ? ? ? ? ? <context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 10:43:21</time>? ? ? ? ? ? ? ? <context>到达 [北京运转中心_航空_驻站班组]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 21:18:53</time>? ? ? ? ? ? ? ? <context>离开 [福建_厦门支公司] 发往 [北京运转中心_航空]</context></data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 20:07:27</time>? ? ? ? ? ? ? ? <context>已取件,到达 [福建_厦门支公司]</context>? ? ? ? </data></xml>html返回示例如下图照片所示,如果没有看到图片,请稍等或刷新本页:text返回示例时间 ? ? ?地点和跟踪进度2012-07-07 13:35:14 ? ? 客户已签收2012-07-07 09:10:10 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 19:46:38 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 15:22:32 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 15:05:00 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 13:37:52 ? ? 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]2012-07-06 12:54:41 ? ? 到达 [北京_同城中转站]2012-07-06 11:11:03 ? ? 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]2012-07-06 10:43:21 ? ? 到达 [北京运转中心_航空_驻站班组]2012-07-05 21:18:53 ? ? 离开 [福建_厦门支公司] 发往 [北京运转中心_航空] 2012-07-05 20:07:27 ? ? 已取件,到达 [福建_厦门支公司]5、开发案例及插件支持目前提供ASP、、PHP和Java等四个版本的开发实例,请点下载。
快递鸟快递查询接口API代码1.代码使用说明(1)查询接口支持按照运单号查询(单个查询)。
(2)接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。
(3)返回的物流跟踪信息按照发生的时间升序排列。
(4)接口指令1002。
(5)接口支持的消息接收方式为HTTP POST,请求方法的编码格式(utf-8):"application/x-www-form-urlencoded;charset=utf-8"。
(6)接口提供:快递鸟2.功能展现(1)电商网站用户打开“我的订单”时调用此API显示物流信息详情。
(2)电商管理后台的物流系统,客服在对账前查询所有运单的签收状态,并追踪问题。
(3)每日调用次数限制不超过3000次,如超过该限制,可对接物流跟踪API。
(4)全流程的物流状态跟踪I3.代码签名采用IP 认证加签名的方式对接,具体方案如下:1)防止数据被篡改在POST 请求中会传递 5 个必须(R)参数RequestData==数据内容(URL 编码:UTF-8)EBusinessID==用户IDRequestType=请求指令类型DataSign== 数据内容签名:把(请求内容(未编码)+ApiKey)进行MD5 加密,然后Base64编码,最后进行URL(utf-8)编码DataType==返回数据类型(2-json)注:DataSign 生成后,对方接收到数据后,以同样的算法进行签名,生成摘要,对比两者的摘要是否相同,如果不同,说明传递过程中发生数据篡改。
2)调用接口的身份认证注册成为接口用户后,会生成对应的用户ID 和APIKey,用户ID 相当于用户名,APIKey 相当于密码。
4.接口申请1)接口网注册账号成为用户;提供的用户ID 是调用接口服务的身份证明,不可更改、不可转用,API Key 是应用访问API 的签名附加密钥,必须妥善保存。
两者关系类似于用户名和密码,两者都会在签名和业务参数中使用。
快递公司编码说明以下是快递鸟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接口,请转到快递鸟具体查看相关文档。
快递鸟电子面单接口说明文档快递鸟2017-04-25版本一、前言1、业务背景随着电子商务和物流信息化服务的迅猛发展,电子面单已经成为了商家快速发货并连接订单与物流的有力工具。
快递鸟电子面单接口是快递鸟提供给独立电商、仓储管理系统、打单软件、物流供应链等物流系统平台使用的物流下单接口,满足商家在线发货需求并提供打印电子面单的服务。
商家通过贵司系统选择物流公司发送请求通知快递公司有快递要发货,贵公司把数据通过此接口转发到快递鸟,由快递鸟为商家通知对应的快递公司快递员上门取件。
电子面单成功下单后,快递鸟系统内将自动订阅,一旦轨迹发生变化时,快递鸟将调用贵司推送接收接口将物流信息反向推送至商家。
同时若客户使用代收货款服务,快递鸟会将代收货款的货款状态独立推送给商家用户。
电子面单具有如下特点:●打印效率高相比传统针式打印机套打模式,打印速度提升6-8倍,热敏打印机打印速度平均30-40张/分。
●发货效率高包裹出库时减少了抽底单的工序,降低了操作成本、提升操作效率,运单和订单即时绑定,无需人工再次扫描绑定发货。
目前商家在使用电子面单的过程中也存在一些情况导致部分用户无法顺畅使用,例如:●大电商有多家合作快递公司,各家快递公司的模板尺寸不一,需要使用多个打印机打印面单。
●单号作废后回收机制不完善导致电商成本升高。
●二联电子面单无底单,运费核账存在问题(部分商家货物重量以称重为准)。
●打印时发现面单号余额不足,耽误发货。
●小B电商发货量不够申请网点的电子面单服务。
快递鸟电子面单接口为解决客户以上问题,新增如下解决方案:●电子面单余量查询:可通过电子面单余量查询接口查询,并且在快递鸟官网可设置余额不足提醒值(后续会加上余额不足短信/邮件提醒功能)●电子面单取消/回收:可通过电子面单取消接口,回收部分加盟快递公司的面单号。
●通用电子面单模板,含二联、三联模板●快递公司电子面单客户号在线申请●散户模式电子面单:部分快递公司无需申请电子面单客户号即可直接打印电子面单。
说明以下是快递100对外开放的部份公司的列表,同时适用于HtmlAPI和快递查询API(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击国际邮政、EMS、快递类列表1、API地址]注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅2、输入参数说明3、返回结果说明4、API调用及返回结果示范4.1 API调用示范4.2 Json返回示例{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0713:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 19:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 15:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 15:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-0613:37:52","context":"离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达[北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开[福建_厦门支公司] 发往 [北京运转中心_航空]"},{"time":"2012-07-0520:07:27","context":"已取件,到达 [福建_厦门支公司]"}]}4.3 xml返回示例<xml><message>ok</message><status>1</status><state>3</state><data><time>2012-07-07 13:35:14</time><context>客户已签收</context></data><data><time>2012-07-07 09:10:10</time><context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context></data><data><time>2012-07-06 19:46:38</time><context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 15:22:32</time><context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context></data><data><time>2012-07-06 15:05:00</time><context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 13:37:52</time><context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 12:54:41</time><context>到达 [北京_同城中转站]</context></data><data><time>2012-07-06 11:11:03</time><context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context></data><data><time>2012-07-06 10:43:21</time><context>到达 [北京运转中心_航空_驻站班组]</context> </data><data><time>2012-07-05 21:18:53</time><context>离开 [福建_厦门支公司] 发往 [北京运转中心_航空]</context></data><data><time>2012-07-05 20:07:27</time><context>已取件,到达 [福建_厦门支公司]</context> </data></xml>4.4 html返回示例如下图照片所示,如果没有看到图片,请稍等或刷新本页:4.5 text返回示例时间地点和跟踪进度2012-07-07 13:35:14 客户已签收2012-07-07 09:10:10 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 19:46:38 到达 [北京_房山营业所_石景山营业厅]2012-07-06 15:22:32 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 15:05:00 到达 [北京_房山营业所_石景山营业厅]2012-07-06 13:37:52 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]2012-07-06 12:54:41 到达 [北京_同城中转站]2012-07-06 11:11:03 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]2012-07-06 10:43:21 到达 [北京运转中心_航空_驻站班组]2012-07-05 21:18:53 离开 [福建_厦门支公司] 发往 [北京运转中心_航空] 2012-07-05 20:07:27 已取件,到达 [福建_厦门支公司]5、开发案例及插件支持•目前提供ASP、、PHP和Java等四个版本的开发实例,请点快递查询开发示范下载。
快递100物流公司列表public static void main(String[] args) throws ClientProtocolException, IOException {String html = SimpleHttpClient.get("https:///network/plist.shtml");Pattern pattern = pile("<a href=\"(.*?)\" target=\"_blank\"><h4>.*?</h4><b>(.*?)</b>");Matcher matcher = pattern.matcher(html);JSONObject json = new JSONObject();while (matcher.find()) {String url = matcher.group(1);JSONObject item= parse(url);if(item != null){json.put(item.getString("key"), item);}else{System.out.println(url);}}System.out.println(json);}public static JSONObject parse(String url) throws ClientProtocolException, IOException{String html = SimpleHttpClient.get(url);Pattern pattern = pile("<div class=\"ex-title\">[\\s\\S]*?<h1>(.*?)</h1>[\\s\\S]*?<input type=\"hidden\" id=\"companyCode\" value=\"(.*?)\" />[\\s\\S]*?<font id=\"allcompanytel\" class=\"tel-icon\" title=\"拨打客服电话\">(.*?)</font> Matcher matcher = pattern.matcher(html);if (matcher.find()) {String name = matcher.group(1);String key = matcher.group(2);String tel = matcher.group(3);String site = matcher.group(4);JSONObject item = new JSONObject();item.put("key", key);item.put("name", name);item.put("tel", tel);item.put("site", site);return item;}return null;}。
极兔快递电⼦⾯单打印API接⼝-极兔速递⽬录前⾔J&T 极兔速递是⼀家科技创新型互联⽹快递物流企业,致⼒于为⽤户带来优质的快递和物流体验。
2015年8⽉由印尼⾸都雅加达作为起点,进⼊快递物流市场,⽬前覆盖了印度尼西亚、越南、马来西亚、泰国、菲律宾、柬埔寨及新加坡七个国家,成为东南亚超过5.5亿⼈⼝信赖的综合性物流服务商。
电⼦⾯单模板效果图:电⼦⾯单打印模板规格列表:快递公司名称编码模板样式尺⼨规格TemplateSize字段CustomArea字段极兔速递JTSD ⼀联130宽76mm⾼130mm传值130⽀持⼆联180宽100mm⾼180mm切点110/70默认返回,不能传值⽀持1.完成前期准备⼯作1.1,去快递鸟⼀个对接账号1.2,免费获得⼀个apiKey(接⼝权限验证需要)1.3,完成实名认证流程1.4,订购⼀个免费套餐1.5,准备打印机、打印纸打印机:电⼦⾯单模板对打印机品牌、型号等没有要求,只要是热敏打印机即可,常见品牌如:斑马、得⼒、快麦、汉印、佳博等。
打印机可由快递⽹点提供或者在淘宝京东上购买,安装打印机及驱动程序联系打印机提供⽅;打印纸:打印纸可由快递⽹点提供或者在淘宝京东上购买,购买时可选择全⽩热敏纸。
2.API接⼝2.3,请求⽅式:POST2.4,编码格式(utf-8):application/x-www-form-urlencoded;charset=utf-82.5,返回类型:JSON2.7,调试⼯具:去调试(使⽤快递鸟账号登录)3.请求参数(Headers)参数名称类型说明必须要求RequestData String请求内容需进⾏URL(utf-8)编码,请求内容JSON格式,须和DataType⼀致必填EBusinessID String⽤户ID,查看⽤户ID和ApiKey必填RequestType String请求指令类型:1007必填DataSign String签名数据,(Body+ApiKey)进⾏MD5加密,再进⾏Base64编码,最后进⾏URL(utf-8)编码必填DataType String求、返回数据类型:2-json ,默认Json选填4.请求参数(Body)参数名称类型说明是否必须MemberID String(50)ERP系统、电商平台等系统或平台类型⽤户的会员ID或店铺账号等唯⼀性标识,⽤于区分其⽤户OCustomerName String(50)电⼦⾯单客户号,需要下载《快递鸟电⼦⾯单客户号参数对照表.xlsx》,参考对应字段传值OCustomerPwd String(30)O SendSite String(30)O SendStaff String(30)C MonthCode String C CustomArea String(500)商家⾃定义区域C WareHouseID String(30)发货仓编码OTransType Int(1)运输⽅式 1- 陆运 2- 空运不填默认为1O ShipperCode String(10)快递公司编码详细编码参考《快递鸟接⼝⽀持快递公司编码.xlsx》R LogisticCode String(30)快递单号(仅宅急送可⽤)O ThrOrderCode String(50)第三⽅订单号 (ShipperCode为JD且ExpType为1时必填)C OrderCode String(30)订单编号(⾃定义,不可重复)R PayType Int(1)邮费⽀付⽅式:1-现付,2-到付,3-⽉结,4-第三⽅⽀付(仅SF⽀持)R ExpType String(2)快递类型:1-标准快件 ,详细快递类型参考《快递公司快递业务类型.xlsx》R IsReturnSignBill Int(1)是否要求签回单 1- 要求 0-不要求O OperateRequire String(20)签回单操作要求(如:签名、盖章、⾝份证复印件等)OCost CostDouble(5)快递运费OOtherCost Double(5)其他费⽤OReceiver Company String(30)收件⼈公司O Name String(30)收件⼈R Tel String(20)电话与⼿机,必填⼀个R Mobile String(20)PostCode String(10)收件⼈邮编c ProvinceName String(20)收件省 (如⼴东省,不要缺少“省”;如是直辖市,请直接传北京、上海等;如是⾃治区,请直接传⼴西壮族⾃治区等)R CityName String(20)收件市(如深圳市,不要缺少“市”;如果是市辖区,请直接传北京市、上海市等)R ExpAreaName String(20)收件区/县(如福⽥区,不要缺少“区”或“县”)R Address String(100)收件⼈详细地址RSender Company String(30)发件⼈公司O Name String(30)发件⼈R Tel String(20)电话与⼿机,必填⼀个R Mobile String(20)PostCode String(10)发件地邮编(ShipperCode为EMS、YZPY、YZBK时必填)C ProvinceName String(20)发件省 (如⼴东省,不要缺少“省”;如是直辖市,请直接传北京、上海等;如是⾃治区,请直接传⼴西壮族⾃治区等)R CityName String(20)发件市(如深圳市,不要缺少“市;如是市辖区,请直接传北京市、上海市等”)R ExpAreaName String(20)发件区/县(如福⽥区,不要缺少“区”或“县”)R Address String(100)发件⼈详细地址RIsNotice Int(1)是否通知快递员上门揽件 0- 通知 1- 不通知不填则默认为1OStartDate Date上门取货时间段:"yyyy-MM-dd HH:mm:ss"格式化,本⽂中所有时间格式相同OEndDate Date O Weight Double(10,3)包裹总重量kg 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值CQuantity Int(2)包裹数(最多⽀持30件) ⼀个包裹对应⼀个运单号,如果是⼤于1个包裹,返回则按照⼦母件的⽅式返回母运单号和⼦运单号RVolume Double(20,3)包裹总体积m3 当为快运的订单时必填,不填时快递鸟将根据各个快运公司要求传对应的默认值C Remark String(60)备注O AddServicesAddService Name String(20)增值服务名称(数组形式,可以有多个增值服务)C Value String(30)增值服务值C CustomerID String(30)客户标识(选填)OCommoditysCommodity GoodsName String(100)商品名称R GoodsCode String(100)商品编码O Goodsquantity Int(5)商品数量O GoodsPrice Double(10)商品价格O GoodsWeight Double(10,3)商品重量kg O GoodsDesc String(50)商品描述O GoodsVol Double(15,3)商品体积m3OIsReturnPrintTemplate String(1)返回电⼦⾯单模板:0-不需要;1-需要O IsSendMessage Int(1)是否订阅短信:0-不需要;1-需要O TemplateSize String(10)模板规格(默认的模板⽆需传值,⾮默认模板传对应模板尺⼨) O PackingType Int(2)包装类型(快运字段)默认为0; 0- 纸 1- 纤 2- ⽊ 3- 托膜 4- ⽊托 99-其他C DeliveryMethod Int(1)送货⽅式(快运字段)默认为0; 0- ⾃提 1- 送货上门(不含上楼) 2- 送货上楼C5.返回参数(Return)参数名称类型说明必须要求EBusinessID String(10)⽤户ID ROrder OrderCode String(30)订单编号R ShipperCode String(10)快递公司编码R LogisticCode String(400)快递单号R MarkDestination String(20)⼤头笔O OriginCode String(20)始发地区域编码O OriginName String(20)始发地/始发⽹点O DestinatioCode String(20)⽬的地区域编码ODestinatioName String(20)⽬的地/到达⽹点O SortingCode String(20)分拣编码O PackageCode String(20)集包编码O PackageName String(50)集包地O DestinationAllocationCentre String(50)⽬的地分类OSuccess Bool(10)成功与否(true/false)R SignWaybillCode String(15)签回单单号O ResultCode String(5)返回编码R Reason String(50)失败原因O UniquerRequestNumber String(50)唯⼀标识R PrintTemplate String⾯单打印模板内容(html格式)O EstimatedDeliveryTime Date订单预计到货时间yyyy-mm-dd O SubCount Int(5)⼦单数量OSubOrders String(400)⼦单单号O SubPrintTemplates String(2000)⼦单模板内容(html格式)OSignBillPrintTemplate String(2000)签回单模板内容(html格式)OReceiverSafePhone String(20)收件⼈安全电话OSenderSafePhone String(20)收件⼈安全电话ODialPage String(50)拨号页⾯⽹址(转换成⼆维码可扫描拨号)O6.请求报⽂(⽰例){"PayType": 1,"CustomerName": "J0086030000","CustomerPwd": "Jt888888","ExpType": 1,"ShipperCode": "JTSD","OrderCode": "300008886539888","IsNotice": 1,"IsReturnPrintTemplate": 1,"Commodity": [{"GoodsName": "其他","Goodsquantity": 1,"GoodsWeight": 0}],"Sender": {"Name": "王宝剑","Mobile": "139********","ProvinceName": "北京市","CityName": "北京市","ExpAreaName": "西城区","Address": "北京市西城区西直门南⼩街国英1号1020"},"Receiver": {"Name": "刘⼩⼑","Mobile": "188********","ProvinceName": "⼴东省","CityName": "深圳市","ExpAreaName": "福⽥区","Address": "⼴东省深圳市福⽥区华宝⼀号⼤厦"}}7.成功返回报⽂(⽰例){Order={LogisticCode=JT0000131754417, PackageName=180 600-01 001, OrderCode=300008886539888,KDNOrderCode=KDN2005141650003168, SortingCode=180 600-01 001}, PrintTemplate=打印html内容,EBusinessID=1237100,UniquerRequestNumber=f3ba8bf3-cb4c-4f06-8aee-7fba1e0e8376, ResultCode=100, Reason=成功, Success=true} 8.失败返回报⽂(⽰例){"EBusinessID": "1237100","ResultCode": "106","Reason": "该订单号已下单成功","UniquerRequestNumber":"5e66486b-8fbc-4131-b875-9b13d2ad1354"}说明:未实名认证,未订购套餐,套餐可⽤查询量已经⽤完都会返回此报⽂信息/9.分步讲解(C#版本)9.1,请求数据包结构9.2,C#调⽤代码⽰例技术⽀持:QQ:510997342//电商IDstring eEBusinessID = "test1617571";//电商加密私钥,快递鸟提供,注意保管,不要泄漏string appKey= "554343b2-7252-439b-b4eb-1af42c8f2175";//请求urlstring reqURL = ":8080/kdniaosandbox/gateway/exterfaceInvoke.json";//请求指令string reqType="1007";//2-jsonstring dataType = "2";//字符编码采⽤UTF-8string charset = "UTF-8";//JSON字符串stringstring jsonStr = "json请求报⽂⽰例" ;//把(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的⽅法就能获取到⾥⾯的字段信息。
说明以下是快递100对外开放的部份公司的列表,同时适用于和(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击1、API地址]注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅2、输入参数说明3、返回结果说明4、API调用及返回结果示范API调用示范Json返回示例{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-0713:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 19:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 15:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 15:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-0613:37:52","context":"离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达[北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开[福建_厦门支公司] 发往 [北京运转中心_航空]"},{"time":"2012-07-0520:07:27","context":"已取件,到达 [福建_厦门支公司]"}]}xml返回示例<xml>? ? ? ? <message>ok</message>? ? ? ? <status>1</status>? ? ? ? <state>3</state>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 13:35:14</time>? ? ? ? ? ? ? ? <context>客户已签收</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-07 09:10:10</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 19:46:38</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context></data><data><time>2012-07-06 15:22:32</time>? ? ? ? ? ? ? ? <context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 15:05:00</time>? ? ? ? ? ? ? ? <context>到达 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 13:37:52</time>? ? ? ? ? ? ? ? <context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 12:54:41</time>? ? ? ? ? ? ? ? <context>到达 [北京_同城中转站]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 11:11:03</time>? ? ? ? ? ? ? ? <context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-06 10:43:21</time>? ? ? ? ? ? ? ? <context>到达 [北京运转中心_航空_驻站班组]</context>? ? ? ? </data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 21:18:53</time>? ? ? ? ? ? ? ? <context>离开 [福建_厦门支公司] 发往 [北京运转中心_航空]</context></data>? ? ? ? <data>? ? ? ? ? ? ? ? <time>2012-07-05 20:07:27</time>? ? ? ? ? ? ? ? <context>已取件,到达 [福建_厦门支公司]</context>? ? ? ? </data></xml>html返回示例如下图照片所示,如果没有看到图片,请稍等或刷新本页:text返回示例时间 ? ? ?地点和跟踪进度2012-07-07 13:35:14 ? ? 客户已签收2012-07-07 09:10:10 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 19:46:38 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 15:22:32 ? ? 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]2012-07-06 15:05:00 ? ? 到达 [北京_房山营业所_石景山营业厅]2012-07-06 13:37:52 ? ? 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]2012-07-06 12:54:41 ? ? 到达 [北京_同城中转站]2012-07-06 11:11:03 ? ? 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]2012-07-06 10:43:21 ? ? 到达 [北京运转中心_航空_驻站班组]2012-07-05 21:18:53 ? ? 离开 [福建_厦门支公司] 发往 [北京运转中心_航空]2012-07-05 20:07:27 ? ? 已取件,到达 [福建_厦门支公司]5、开发案例及插件支持目前提供ASP、、PHP和Java等四个版本的开发实例,请点下载。
快递100通过快递单号实时查询物流信息import com.alibaba.fastjson.JSON;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import .HttpURLConnection;import .URL;import .URLEncoder;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;import java.util.*;/*** 快递100实时查询物流信息⼯具类*/public class Express100Util {/*** 企业授权key(在快递100官⽹申请api获取)*/private static final String KEY="*******";/*** 企业公司编号(在快递100官⽹申请api获取)*/private static final String CUSTOMER="***********";/*** 实时查询请求地址(固定值)*/private static final String SYNQUERY_URL = "/poll/query.do";/*** 智能识别请求地址(固定值)*/private static final String DISCERN_URL = "/autonumber/auto";/*** @Title: getExpressMessage* @Description: 获取快递信息* @param com 快递公司编码* @param num 快递单号* @return String*/public static String getExpressMessage(String com,String num){//获取paramString param = getParam(com, num);Map<String, String> params = new HashMap<String, String>();params.put("customer",CUSTOMER);//进⾏MD5加密获取sign签名,⽤于验证⾝份String sign = MD5Util.encode(param + KEY + CUSTOMER);params.put("sign", sign);params.put("param", param);//发送post请求获取快递信息String post = post(SYNQUERY_URL,params);return post;}/*** 获取快递公司编码 * @param num 快递单号*/public static List<String> getCom(String num){Map<String, String> params = new HashMap<String, String>();params.put("num",num);params.put("key",KEY);//获取到String类型的快递公司编码集合:String post = post(DISCERN_URL, params);//List<Map<String, Object>> mapList = (List<Map<String, Object>>) JSON.parse(post);ArrayList<String> coms = new ArrayList<>();System.out.println(mapList);for (Map<String, Object> map : mapList) {String comCode = (String)map.get("comCode");coms.add(comCode);}return coms;}/*** 获取param*/private static String getParam(String com,String num){int resultv2 = 0; //⾏政区域解析 0:关闭(默认); 1:开通; 2:开通⾏政解析功能并且返回出发、⽬的及当前城市信息StringBuilder param = new StringBuilder("{");param.append("\"com\":\"").append(com).append("\"");param.append(",\"num\":\"").append(num).append("\"");if(1 == resultv2) {param.append(",\"resultv2\":1");} else {param.append(",\"resultv2\":0");}param.append("}");return param.toString();}/*** 向快递100发送post请求*/private static String post(String reqUrl,Map<String, String> params) {StringBuffer response = new StringBuffer("");BufferedReader reader = null;try {StringBuilder builder = new StringBuilder();for (Map.Entry<String, String> param : params.entrySet()) {if (builder.length() > 0) {builder.append('&');}builder.append(URLEncoder.encode(param.getKey(), "UTF-8"));builder.append('=');builder.append(URLEncoder.encode(String.valueOf(param.getValue()), "UTF-8"));}byte[] bytes = builder.toString().getBytes("UTF-8");URL url = new URL(reqUrl);HttpURLConnection conn = (HttpURLConnection) url.openConnection();conn.setConnectTimeout(3000);conn.setReadTimeout(3000);conn.setRequestMethod("POST");conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");conn.setRequestProperty("Content-Length", String.valueOf(bytes.length));conn.setDoOutput(true);conn.getOutputStream().write(bytes);reader = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8"));String line = "";while ((line = reader.readLine()) != null) {response.append(line);}} catch (Exception e) {e.printStackTrace();} finally {try {if (null != reader) {reader.close();}} catch (IOException e) {e.printStackTrace();}}return response.toString();}//获取快递公司编码测试public static void main(String[] args) {Map<String, String> params = new HashMap<String, String>();params.put("num","3950055201640");params.put("key",KEY);// String post = post(DISCERN_URL, params);String post = "[{\"lengthPre\":13,\"comCode\":\"yunda\",\"noPre\":\"395\",\"noCount\":36463},{\"lengthPre\":13,\"comCode\":\"shunfen\",\"noPre\":\"395\",\"noCount\":36463}]"; System.out.println(post);List<Map<String, Object>> mapList = (List<Map<String, Object>>) JSON.parse(post);ArrayList<String> cms = new ArrayList<>();System.out.println(mapList);for (Map<String, Object> map : mapList) {String comCode = (String)map.get("comCode");cms.add(comCode);}System.out.println(cms);}//快递查询测试/*public static void main(String[] args) {//快递公司编码String com = "yunda";//快递单号String num = "3950055201640";String expressMessage = getExpressMessage(com, num);System.out.println(expressMessage);}*/}/*** md5加密*/class MD5Util {private static MessageDigest mdigest = null;private static char digits[] = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; private static MessageDigest getMdInst() {if (null == mdigest) {try {mdigest = MessageDigest.getInstance("MD5");} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}return mdigest;}public static String encode(String s) {if(null == s) {return "";}try {byte[] bytes = s.getBytes();getMdInst().update(bytes);byte[] md = getMdInst().digest();int j = md.length;char str[] = new char[j * 2];int k = 0;for (int i = 0; i < j; i++) {byte byte0 = md[i];str[k++] = digits[byte0 >>> 4 & 0xf];str[k++] = digits[byte0 & 0xf];}return new String(str);} catch (Exception e) {e.printStackTrace();return null;}}}。
快递查询API接⼝(51tracking)快递查询接⼝⽬前提供快递查询的接⼝平台有:快递100快递⽹不同接⼝的区别:(1)51tracking⽀持380家快递公司,其中有55家为国内的快递,其余325家为国际快递。
具体的价格为0.8分钱/单号左右,新注册⽤户可以免费测试12⼩时。
(2)快递100属于在国内做得⽐较早的平台,可以申请每天最多2000次的API调⽤,但需要给快递100做⼀个友链。
超过2000次收费,每次0.06~0.1元不等。
(3)快递⽹可以申请每天最多500次的API调⽤,但同样需要做⼀个友链。
超过部分,每次0.05元。
快递API的应⽤场景与⽤途1. 最常见的应⽤场景如下:(1)电商⽹站:例如B2C、团购、B2B、批发分销站、C2C、本地⽣活交易等⽹站。
(2)管理系统:订单处理平台、订货平台、发货平台、分销系统、渠道管理系统、客户管理系统、ERP等。
2. 快递API的⽤途如下:(1)让顾客登录⽹站后,直接在“我的订单”页⾯内就能看到订单的物流状态。
(2)⾃动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单⼈员的压⼒。
(3)改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。
(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售⼈员的业绩,且便于应对货到付款的结算。
(5)邮件、短信提醒⽤户运单的最新状态,可以安抚⽤户,也可以利⽤邮件短信⼆次营销。
对接⽰例这⾥以51tracking为例,不同的接⼝的对接⽅式⽐较类似,都需要注册,并⽣成⾃⼰的API key。
以下以51tracking的查询API为例。
接⼝⽀持的消息接收⽅式为HTTP POST 请求⽅法的编码格式为 utf-8 请求body部分的参数的数据格式为json 格式接⼝参数接⼝请求地址请求头部信息参数参数名称类型说明是否必须Content-Type: application/json定义请求头部的数据格式是Trackingmore-Api-Key: string后台获取的API是请求body参数说明参数说明类型说明是否必须tracking_number string查询快递的快递单号是carrier_code string51tracking定义的快递商简码,⽐如china ems 就是china-ema是carrier_code 参数是51tracking ⾃⼰定义的快递商家的简码。
一.需求分析某快递公司中有若干职工,有若干种快递,每日每个快递会分配一个仅限当日使用的快递单,并同时确定出发城市(店铺所在城市),出发时间,出发快递站,和目的城市,预计送达时间,运输方式,隶属快递公司等信息。
每个快递公司的信息包括快递公司编号和名称,所在地址。
买家可向卖家购买商品,卖家都需要注册为快递公司的用户,其需要填写的内容包含用户编号,用户名称,密码。
真实姓名,性别,联系电话,E-mail,身份证号,注册时间,店铺地址等信息。
而后,快递公司会根据用户运输的次数和多少来确定用户的等级。
快递公司都会在运输前确定每个快递的运输情况,其中包括运输方式(一般包括陆空),快递数量,快递定价,折扣。
用户可以根据自己的需求选择相应的快递运输方式和数量,快递信息包括快递单号,快递的运输状态。
在用户预定一个快递后,系统后台会生成一个快递票务信息,为财务后期数据管理使用,快递票务信息包括揽收日期,发货日期,退换货日期,快递金额,快递编号,发件人姓名,地址,联系方式;收件人姓名,地址,联系方式。
这里需要注意的是,每个用户可以同时发送一个或多个快递,若买家发出退换货需求,卖家用户退换货时,快递公司可以将快递单用于其它的快递。
二.数据字典简略数据项如下:三.E-R 图:五.逻辑设计:由于一名用户可以购买多份快递,一个快递对应一名用户,因此用户和快递单是一对多的关系,又由于一家快递公司可以发出多个快递,一个快递只能对应一家快递公司,因此快递公司和快递是一对多联系。
买家与卖家为一对多的关系,卖家与买家也为一对多的关系。
公司与职工为一对多的关系,一个职工只能对应一家快递公司,因此快递公司和职工是一对多联系。
快递站与快递单为一对多的关系,一个快递单只能对应一家快递站,因此快递站和快递单是一对多联系。
六.物理设计:快递表:快递单号为主键,用于唯一标识快递,不能为空。
店铺表:店名为主键,用于唯一标识店铺,不能为空。
服务表:站名为主键,用于唯一标识服务,不能为空。
说明
以下是快递100对外开放的部份公司的列表,同时适用于HtmlAPI和快递查询API(部份,具体区别请留意快递公司名称后的备注),另外国际类的可以直接点击国际邮政、EMS、快递类列表查看。
如果在下面没有找到您所要的快递公司,请添加企业QQ 800036857索取。
1、API地址
/api?id=[]&com=[]&nu=[]&valicode=[]&show=[0|1|2|3]&muti=[0|1]&o rder=[desc|asc]
注:为了防止恶意解释的情况,不能通过IP访问本网站及API,敬请原谅
2、输入参数说明
3、返回结果说明
4、API调用及返回结果示范
4.1 API调用示范
/api?id=xxxxxxxxxxxxx&com=tiantian&nu=11111&show=0&muti=1&order =desc
4.2 Json返回示例
{"message":"ok","status":"1","state":"3","data":[{"time":"2012-07-07
13:35:14","context":"客户已签收"},{"time":"2012-07-07 09:10:10","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06
19:46:38","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06
15:22:32","context":"离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]"},{"time":"2012-07-06 15:05:00","context":"到达 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 13:37:52","context":"离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]"},{"time":"2012-07-06 12:54:41","context":"到达 [北京_同城中转站]"},{"time":"2012-07-06 11:11:03","context":"离开 [北京运转中心_航空_驻站班组] 发往[北京_同城中转站]"},{"time":"2012-07-06 10:43:21","context":"到达 [北京运转中心_航空_驻站班组]"},{"time":"2012-07-05 21:18:53","context":"离开 [福建_厦门支公司] 发往 [北京运转中心_航空]"},{"time":"2012-07-05 20:07:27","context":"已取件,到达 [福建_厦门支公司]"}]}
4.3 xml返回示例
<xml>
<message>ok</message>
<status>1</status>
<state>3</state>
<data>
<time>2012-07-07 13:35:14</time>
<context>客户已签收</context>
</data>
<data>
<time>2012-07-07 09:10:10</time>
<context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>
</data>
<data>
<time>2012-07-06 19:46:38</time>
<context>到达 [北京_房山营业所_石景山营业
厅]</context></data><data><time>2012-07-06 15:22:32</time>
<context>离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[]</context>
</data>
<data>
<time>2012-07-06 15:05:00</time>
<context>到达 [北京_房山营业所_石景山营业厅]</context> </data>
<data>
<time>2012-07-06 13:37:52</time>
<context>离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅]</context>
</data>
<data>
<time>2012-07-06 12:54:41</time>
<context>到达 [北京_同城中转站]</context>
</data>
<data>
<time>2012-07-06 11:11:03</time>
<context>离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]</context>
</data>
<data>
<time>2012-07-06 10:43:21</time>
<context>到达 [北京运转中心_航空_驻站班组]</context>
</data>
<data>
<time>2012-07-05 21:18:53</time>
<context>离开 [福建_厦门支公司] 发往 [北京运转中心_航
空]</context></data>
<data>
<time>2012-07-05 20:07:27</time>
<context>已取件,到达 [福建_厦门支公司]</context>
</data>
</xml>
4.4 html返回示例
如下图照片所示,如果没有看到图片,请稍等或刷新本页:
4.5 text返回示例
时间地点和跟踪进度
2012-07-07 13:35:14 客户已签收
2012-07-07 09:10:10 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[] 2012-07-06 19:46:38 到达 [北京_房山营业所_石景山营业厅]
2012-07-06 15:22:32 离开 [北京_房山营业所_石景山营业厅] 派送中,递送员[温],电话[] 2012-07-06 15:05:00 到达 [北京_房山营业所_石景山营业厅]
2012-07-06 13:37:52 离开 [北京_同城中转站] 发往 [北京_房山营业所_石景山营业厅] 2012-07-06 12:54:41 到达 [北京_同城中转站]
2012-07-06 11:11:03 离开 [北京运转中心_航空_驻站班组] 发往 [北京_同城中转站]
2012-07-06 10:43:21 到达 [北京运转中心_航空_驻站班组]
2012-07-05 21:18:53 离开 [福建_厦门支公司] 发往 [北京运转中心_航空]
2012-07-05 20:07:27 已取件,到达 [福建_厦门支公司]
5、开发案例及插件支持
∙目前提供ASP、、PHP和Java等四个版本的开发实例,请点快递查询开发示范下载。
∙插件下载请点:快递查询插件
6、FAQ及技术支持
∙FAQ:请点快递查询接口(API)常见问题
∙技术支持:
1.发邮件至 kuaidi@,
2.论坛,
3.QQ、电话等:见获得授权key的邮件。
7、附录
本文档下载地址:
下载地址
Show deleted comments
Delete comment Comment by qiukuan, Nov 1, 2010。