顺丰, 四通一达, 京东, 百世, 天天, 德邦快递目前提供了两种对接形式:
- 一种是开发者自助对接,须要注册账户后,申请成为开发者,再依据要求对接,整个流程较为繁琐;
- 还有一种形式就是通过第三方快递单号查问 API 接口服务商对接(例如快递 100API)
如果对接公司数量超过 3 家,对接起来会比间接对接顺丰, 四通一达, 京东, 百世, 天天, 德邦快递简略。
物流轨迹查问 - 应用的物流单号和快递单号即可实现查问物流信息。对接在电商网站、SaaS 零碎或 ERP 零碎上之后,使用者只须要输出快递单号就能够查问物流,不须要物流编码。整个流程是通过快递 100API 的两个接口实现的,一个是快递物流查问接口,一个是智能单号辨认的接口,其中智能单号辨认接口是收费应用的。
快递 100API 的 java-demo 集成了实时查问、订阅推送、智能判断、云打印相干、电子面单相干、短信、商家寄件等接口。
此篇 java-demo 内容包含:物流轨迹接口 + 快递信息地图轨迹接口 + 快递状态更新订阅接口 + 智能辨认接口 不便开发者实现:经营前端下单寄件后主动回传物流单号且无需人工判断物流单号所属公司——> 物流状态如有变动则自动更新到客户端和后盾零碎——> 可视化展现物流运输门路或只展现文字信息。
语言:java
顺丰, 四通一达, 京东, 百世, 天天, 德邦快递快递单号接口通过快递 100API 接口对接简略不便,顺丰, 四通一达, 京东, 百世, 天天, 德邦快递快递查问接口 API 和电子面单接口能够通过快递 100API 对接,通过顺丰, 四通一达, 京东, 百世, 天天, 德邦快递单号和手机号后四位查问轨迹信息,如果是通过快递 100API 下单取得的顺丰, 四通一达, 京东, 百世, 天天, 德邦快递单号,可通过单号间接查问,具体查看快递 100API 接口技术文档查看接口阐明。
物流轨迹接口 demo:
Add Config
应用 sdk 的能够先配置 account.properties,账号信息能够登录快递 100 获取 https://poll.kuaidi100.com/manager/page/myinfo/enterprise(留神不要泄露快递 100 的账号密码以及受权 key 等敏感信息,以防被别人盗用!!!)
Gradle
dependencies {implementation 'com.github.kuaidi100-api:sdk:1.0.4'}
Maven
<dependency>
<groupId>com.github.kuaidi100-api</groupId>
<artifactId>sdk</artifactId>
<version>1.0.4</version>
</dependency>
Use Junit Test
public class BaseServiceTest {private String key = PropertiesReader.get("key");
private String customer = PropertiesReader.get("customer");
private String secret = PropertiesReader.get("secret");
private String siid = PropertiesReader.get("siid");
private String userid = PropertiesReader.get("userid");
private String tid = PropertiesReader.get("tid");
private String secret_key = PropertiesReader.get("secret_key");
private String secret_secret = PropertiesReader.get("secret_secret");
物流轨迹接口 -java-demo
/**
* 物流轨迹接口
*/
@Test
public void testQueryTrack() throws Exception{QueryTrackReq queryTrackReq = new QueryTrackReq();
QueryTrackParam queryTrackParam = new QueryTrackParam();
queryTrackParam.setCom(CompanyConstant.YT);
queryTrackParam.setNum("YT9383342193097");
queryTrackParam.setPhone("17725390266");
String param = new Gson().toJson(queryTrackParam);
queryTrackReq.setParam(param);
queryTrackReq.setCustomer(customer);
queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
IBaseClient baseClient = new QueryTrack();
System.out.println(baseClient.execute(queryTrackReq));
}
/**
* 快递信息地图轨迹接口
*/
快递信息地图轨迹接口 -java-demo
/**
* 快递信息地图轨迹接口
*/
@Test
public void testQueryMapView() throws Exception{QueryTrackReq queryTrackReq = new QueryTrackReq();
QueryTrackParam queryTrackParam = new QueryTrackParam();
queryTrackParam.setCom(CompanyConstant.YD);
queryTrackParam.setNum("4311159956248");
queryTrackParam.setPhone("17725390266");
queryTrackParam.setFrom("河北保定市");
queryTrackParam.setTo("湖南岳阳市");
queryTrackParam.setResultv2("2");
String param = new Gson().toJson(queryTrackParam);
queryTrackReq.setParam(param);
queryTrackReq.setCustomer(customer);
queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
IBaseClient baseClient = new QueryTrackMap();
HttpResult result = baseClient.execute(queryTrackReq);
QueryTrackMapResp queryTrackMapResp = new Gson().fromJson(result.getBody(),QueryTrackMapResp.class);
System.out.println(queryTrackMapResp);
}
快递状态更新订阅接口 -java-demo
/**
* 快递状态更新订阅接口
*/
@Test
public void testSubscribe() throws Exception{SubscribeParameters subscribeParameters = new SubscribeParameters();
subscribeParameters.setCallbackurl("http://www.baidu.com");
subscribeParameters.setPhone("17725390266");
SubscribeParam subscribeParam = new SubscribeParam();
subscribeParam.setParameters(subscribeParameters);
subscribeParam.setCompany(CompanyConstant.ST);
subscribeParam.setNumber("773039762404825");
subscribeParam.setKey(key);
SubscribeReq subscribeReq = new SubscribeReq();
subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA);
subscribeReq.setParam(new Gson().toJson(subscribeParam));
IBaseClient subscribe = new Subscribe();
System.out.println(subscribe.execute(subscribeReq));
}
智能辨认接口 -java-demo
/**
* 智能辨认接口(正式用户能够应用)*/
@Test
public void testAutoNum() throws Exception{AutoNumReq autoNumReq = new AutoNumReq();
autoNumReq.setKey(key);
autoNumReq.setNum("773039762404825");
IBaseClient baseClient = new AutoNum();
System.out.println(baseClient.execute(autoNumReq));
}
官网技术支持:https://api.kuaidi100.com/doc…