快递查询接口API
快递查询接口是指快递查询网对外开放的应用程序接口,开发人员能够通过调用该接口与快递查询网进行交互,并基于该接口开发自己的快递查询应用程序。目前比较常用的第三方接口有快递鸟。一次性可以接入400多家快递物流公司接口,在后期的技术维护也会省下很多工作。
官方网址: http://www.kdniao.com
即时查询api接口地址: http://www.kdniao.com/api-track
需要登录 ,申请一下 用户ID 和 API key,并进行实名认证开通自己相关的快递服务,有免费和增值服务体验。
接入流程:
应用场景
- 最常见的应用场景如下:
(1)电商网站:例如B2C、团购、B2B、批发分销站、C2C、本地生活交易等网站。
(2)管理系统:订单处理平台、订货平台、发货平台、分销系统、渠道管理系统、客户管理系统、ERP等。 - 快递API的用途如下:
(1)让顾客登录网站后,直接在“我的订单”页面内就能看到订单的物流状态。
(2)自动筛选出“已签收”、“疑难件”等状态的单号,减轻物流跟单人员的压力。
(3)改变订单的状态和交易流程,例如单号变为“已签收”,就能让订单变为可以确认退换货等。
(4)评估选择快递公司,根据“已签收”的运单数,可以算出销售人员的业绩,且便于应对货到付款的结算。
(5)邮件、短信提醒用户运单的最新状态,可以安抚用户,也可以利用邮件短信二次营销
对接说明
不同公司的快递查询接口接入类似,到快递鸟上申请账号获取KEY和ID,如果是订阅接口需要技术联调。
根据快递单号和快递公司编码查询物流轨迹信息。接口需要指定快递单号的快递公司编码,格式不对或则编码错误都会返失败的信息。如:申通物流单号应选择快递公司编码(STO),查看快递公司编码返回的物流跟踪信息按照发生的时间升序排列。
Java调用示例
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import
java.io.OutputStreamWriter;
import
java.io.UnsupportedEncodingExcept
ion;
import
java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import
java.security.MessageDigest;
import java.util.HashMap;
import java.util.Map;
/**
*
* 快递鸟物流轨迹即时查询接口
*
* @技术QQ群: 456320272
* @see:
http://www.kdniao.com/YundanChaxu
nAPI.aspx
* @copyright: 深圳市快金数据技术
服务有限公司
*
* DEMO中的电商ID与私钥仅限测试使
用,正式环境请单独注册账号
* 单日超过500单查询量,建议接入
我方物流轨迹订阅推送接口
*
* ID和Key请到官网申请:
http://www.kdniao.com/ServiceAppl
y.aspx
*/
public class KdniaoTrackQueryAPI
{
//DEMO
public static void main
(String[] args) {
KdniaoTrackQueryAPI api = new
KdniaoTrackQueryAPI();
try {
String
result =
api.getOrderTracesByJson("ANE",
"210001633605");
System.out.print(result);
} catch
(Exception e) {
e.printStackTrace();
}
}
//电商ID
private String
EBusinessID="请到快递鸟官网申请
http://www.kdniao.com/ServiceAppl
y.aspx";
//电商加密私钥,快递鸟提
供,注意保管,不要泄漏
private String AppKey="请
到快递鸟官网申请
http://www.kdniao.com/ServiceAppl
y.aspx";
//请求url
private String
ReqURL="http://api.kdniao.cc/Ebus
iness/EbusinessOrderHandle.aspx";
/**
* Json方式 查询订单物流轨迹
* @throws Exception
*/
public String
getOrderTracesByJson(String
expCode, String expNo) throws
Exception{
String
requestData=
"{'OrderCode':'','ShipperCode':'"
+ expCode + "','LogisticCode':'"
+ 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