1.快递100 接口文档
链接: 接口文档
2.授权参数
授权Key: qZgsNFSo5391
customer:8EEA8C4FB90B275E228CA322EF0E61E5
3.技术文档
链接: 技术文档
4.使用
<dependency>
<groupId>com.github.kuaidi100-api</groupId>
<artifactId>sdk</artifactId>
<version>1.0.11</version>
</dependency>
5.在Resource新建account.properties,(如果测试想简便一点可以在Controller层定义)
key =qZgsNFSo5391
customer =8EEA8C4FB90B275E228CA322EF0E61E5
Controller
package com.by.controller;
import cn.hutool.json.JSONUtil;
import com.by.moder.KuaiDi100;
import com.google.gson.Gson;
import com.kuaidi100.sdk.api.QueryTrack;
import com.kuaidi100.sdk.core.IBaseClient;
import com.kuaidi100.sdk.pojo.HttpResult;
import com.kuaidi100.sdk.request.QueryTrackParam;
import com.kuaidi100.sdk.request.QueryTrackReq;
import com.kuaidi100.sdk.utils.SignUtils;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api/kuaidi")
public class KD100Controller {
// 78407934393973
String key = "xWiJZHwG7450";
String customer = "310387D0D9D6D20B59BE433AD0BA8E60";
@GetMapping("/select")
private KuaiDi100 kuaidi(String com, String num) throws Exception {
QueryTrackReq queryTrackReq = new QueryTrackReq();
QueryTrackParam queryTrackParam = new QueryTrackParam();
queryTrackParam.setCom(com);
queryTrackParam.setNum(num);
String param = new Gson().toJson(queryTrackParam);
queryTrackReq.setParam(param);
queryTrackReq.setCustomer(customer);
queryTrackReq.setSign(SignUtils.querySign(param ,key,customer));
IBaseClient baseClient = new QueryTrack();
HttpResult execute = baseClient.execute(queryTrackReq);
String body = execute.getBody();
KuaiDi100 kuaiDi100 = JSONUtil.toBean(body, KuaiDi100.class);
String message = kuaiDi100.getMessage();
if (message.equals("ok")){
return kuaiDi100;
}else {
System.out.println("未签收");
}
return null;
}
}
model
package com.by.moder;
import com.by.enums.KuaiDiStatus;
import lombok.Data;
import java.util.List;
@Data
public class KuaiDi100 {
private String message;
private String state;
private String stateX;
public String getStateX() {
return KuaiDiStatus.findByCode(Integer.valueOf(this.state)).getDesc();
}
private List<sata> data;
@Data
public static class sata{
private String time;
private String ftime;
private String context;
}
}
枚举enums
package com.by.enums;
import lombok.Getter;
import lombok.Setter;
import java.util.Arrays;
import java.util.Optional;
public enum KuaiDiStatus {
SALE(1,"揽收"),
OFF_SALE(0,"在途"),
DELETE(3,"签收");
@Getter@Setter
private Integer code;
@Getter@Setter
private String desc;
KuaiDiStatus(Integer code, String desc) {
this.code = code;
this.desc = desc;
}
public static KuaiDiStatus findByCode(Integer code){
Optional<KuaiDiStatus> first = Arrays.stream(KuaiDiStatus.values()).filter(item->item.getCode().equals(code)).findFirst();
return first.orElse(null);
}
}
最后就可以测试了!