物流工具类
package com.shopwinph.cms.util.logistics;
import com.shopwinph.framework.util.JsonUtil;
public class LogisticsUtil {
/*
* static public String customer = "4BB174D22D4A080626911137E88C60FA";
*
* static public String key = "oOvLqtbD4801";
*/
static public Object getLogisticsInfo(LogisticsParam logisticsParam) {
/*
* String param = JsonUtil.toJson(logisticsParam); String sign =
* EncryptMD5Util.getMD5(param + key + customer); HashMap<String,
* String> params = new HashMap<String, String>(); params.put("param",
* param); params.put("sign", sign); params.put("customer", customer);
*/
String resp = "";
try {
resp = HttpRequest.postData("http://www.kuaidi100.com/query?type=" + logisticsParam.getCom() + "&postid="
+ logisticsParam.getNum(), null, "utf-8").toString();
//这个接口是用的快递100官方提供的网页上查询信息的接口 ,商用建议去使用付费版
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return JsonUtil.toObject(resp, LogisticsBackVO.class);
}
}
发起请求物流参数类
package com.shopwinph.cms.util.logistics;
public class LogisticsParam {
private String com; // 快递公司编码 全部小写 (必须)
private String num; // 要查询的快递单号 (必须)
private String from; // 出发地城市
private String to; // 目的地城市
private int resultv2; // 添加此字段表示开通行政区域解析功能
public String getCom() {
return com;
}
public void setCom(String com) {
this.com = com;
}
public String getNum() {
return num;
}
public void setNum(String num) {
this.num = num;
}
public String getFrom() {
return from;
}
public void setFrom(String from) {
this.from = from;
}
public String getTo() {
return to;
}
public void setTo(String to) {
this.to = to;
}
public int getResultv2() {
return resultv2;
}
public void setResultv2(int resultv2) {
this.resultv2 = resultv2;
}
}
package com.shopwinph.cms.util.logistics;
public class LogisticsDetailInfo {
private String context;// 内容
private String time;// 时间,原始格式
private String ftime;// 格式化后时间
private String location;// 不知道什么东西
public String getContext() {
return context;
}
public void setContext(String context) {
this.context = context;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getFtime() {
return ftime;
}
public void setFtime(String ftime) {
this.ftime = ftime;
}
public String getLocation() {
return location;
}
public void setLocation(String location) {
this.location = location;
}
}
返回的物流信息参数类
package com.shopwinph.cms.util.logistics;
import java.util.List;
public class LogisticsBackVO {
private String message;// 消息体,请忽略
private String state;// 快递单当前签收状态,包括0在途中、1已揽收、2疑难、3已签收、4退签、5同城派送中、6退回、7转单等7个状态,其中4-7需要另外开通才有效
private String status;// 通讯状态,请忽略
private String condition;// 快递单明细状态标记,暂未实现,请忽略
private String ischeck;// 是否签收标记,请忽略,明细状态请参考state字段
private String com;// 快递公司编码,一律用小写字母
private String nu;// 单号
private List<LogisticsDetailInfo> data;// 最新查询结果,数组,包含多项,全量,倒序(即时间最新的在最前),每项都是对象,对象包含字段请展开
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getState() {
return state;
}
public void setState(String state) {
this.state = state;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getCondition() {
return condition;
}
public void setCondition(String condition) {
this.condition = condition;
}
public String getIscheck() {
return ischeck;
}
public void setIscheck(String ischeck) {
this.ischeck = ischeck;
}
public String getCom() {
return com;
}
public void setCom(String com) {
this.com = com;
}
public String getNu() {
return nu;
}
public void setNu(String nu) {
this.nu = nu;
}
public List<LogisticsDetailInfo> getData() {
return data;
}
public void setData(List<LogisticsDetailInfo> data) {
this.data = data;
}
}
快递100物流接口文档链接:https://download.csdn.net/download/qq_40636890/10819315