java-demo 是由快递100官方提供的java sdk,方便调试使用。
java-demo 集成了实时查询、订阅推送、智能判断、云打印相关、电子面单相关、短信、商家寄件等接口。
- 提供了快递100接口请求参数实体类、返回实体类。
- 提供测试类调试。
- 支持maven、gradle引入
java-demo使用和测试可参考java-demo-test。
# git clone https://github.com/kuaidi100-api/java-demo.git
使用sdk的可以先配置account.properties,账号信息可以登录快递100获取https://poll.kuaidi100.com/manager/page/myinfo/enterprise (注意不要泄露快递100的账号密码以及授权key等敏感信息,以防被他人盗用!!!)
dependencies {
implementation 'com.github.kuaidi100-api:sdk:1.0.15'
}
<dependency>
<groupId>com.github.kuaidi100-api</groupId>
<artifactId>sdk</artifactId>
<version>1.0.15</version>
</dependency>
以下是各个接口的测试示例,完整代码可在GitHub仓库中查看:
快递100加密方式统一为MD5后转大写,可以参考签名
org.apache.commons.codec.digest.DigestUtils.md5Hex(msg).toUpperCase();
可以参考推送订阅回调
public SubscribeResp callBackUrl(HttpServletRequest request){
String param = request.getParameter("param");
String sign = request.getParameter("sign");
//建议记录一下这个回调的内容,方便出问题后双方排查问题
log.debug("快递100订阅推送回调结果|{}|{}",param,sign);
//订阅时传的salt,没有可以忽略
String salt = "";
String ourSign = SignUtils.sign(param + salt);
SubscribeResp subscribeResp = new SubscribeResp();
subscribeResp.setResult(Boolean.TRUE);
subscribeResp.setReturnCode("200");
subscribeResp.setMessage("成功");
//加密如果相等,属于快递100推送;否则可以忽略掉当前请求
if (ourSign.equals(sign)){
//TODO 业务处理
return subscribeResp;
}
return null;
}
返回的是一个字符串json数组,多个子单时会有多个。
添加前缀“data:image/png;base64,
”,把“\\\\n
”替换成“”;可以参考处理返回的base64字符串
public List<String> getBase64Img(String imgBase64){
List<String> stringList= new Gson().fromJson(imgBase64,
new TypeToken<List<String>>() {}.getType());
List<String> base64Img = new ArrayList<String>();
if (stringList != null && stringList.size()>0){
for (String s : stringList) {
s = "data:image/png;base64,"+s.replace("\\\\n","");
base64Img.add(s);
}
}
return base64Img;
}
如需获取账号信息(如 key、customer、secret),或免费试用100单,请访问API开放平台进行注册