java-demo Project
Introduce
java-demo 是由快递100官方提供的java sdk,方便调试使用。
java-demo 集成了实时查询、订阅推送、智能判断、云打印相关、电子面单相关、短信、商家寄件等接口。
Features
- 提供了快递100接口请求参数实体类、返回实体类。
- 提供测试类调试。
- 支持maven、gradle引入
Getting started
java-demo使用和测试可参考java-demo-test。
# git clone https://github.com/kuaidi100-api/java-demo.git
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.1.2' }
Maven
<dependency> <groupId>com.github.kuaidi100-api</groupId> <artifactId>sdk</artifactId> <version>1.1.2</version> </dependency>
Use Junit Test
以下是各个接口的测试示例,完整代码可在GitHub仓库中查看:
FAQ
问题1.快递100api接口里sign该如何处理?
快递100加密方式统一为MD5后转大写,可以参考签名
org.apache.commons.codec.digest.DigestUtils.md5Hex(msg).toUpperCase();
问题2.使用了快递100订阅接口后,该如何处理回调接口?
可以参考推送订阅回调
public SubscribeResp callBackUrl(String param, String 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; }
问题3.使用电子面单图片接口,该如何处理返回的base64图片?
返回的是一个字符串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; }
Tips
如需获取账号信息(如 key、customer、secret),或免费试用100单,请访问API开放平台进行注册