package com.ruoyi.order.util;
|
|
import cn.hutool.http.HttpRequest;
|
import cn.hutool.http.HttpResponse;
|
import cn.hutool.http.HttpUtil;
|
import com.alibaba.fastjson2.JSON;
|
import com.alibaba.fastjson2.JSONObject;
|
import com.google.gson.Gson;
|
import com.kuaidi100.sdk.api.QueryTrack;
|
import com.kuaidi100.sdk.api.QueryTrackMap;
|
import com.kuaidi100.sdk.contant.CompanyConstant;
|
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.response.QueryTrackMapResp;
|
import com.kuaidi100.sdk.utils.SignUtils;
|
import com.ruoyi.order.util.vo.MapTrackKD100Vo;
|
import com.ruoyi.order.util.vo.QueryKD100Vo;
|
import lombok.extern.slf4j.Slf4j;
|
|
|
/**
|
* 快递工具类
|
* @author zhibing.pu
|
* @Date 2024/12/13 18:05
|
*/
|
@Slf4j
|
public class ExpressDeliveryUtil {
|
|
private static String customer = "8FC09A2DE534142E93BE068830FCA43E";
|
|
private static String key = "KFBYEnrO3201";
|
|
|
/**
|
* 查询快递实时数据
|
* @param com 快递公司代码
|
* @param num 快递单号
|
* @return
|
*/
|
public static QueryKD100Vo kd100QueryTrack(String com, String num){
|
QueryTrackReq queryTrackReq = new QueryTrackReq();
|
QueryTrackParam queryTrackParam = new QueryTrackParam();
|
// queryTrackParam.setCom(CompanyConstant.YD);
|
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 = null;
|
try {
|
execute = baseClient.execute(queryTrackReq);
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
String result = execute.getBody();
|
QueryKD100Vo queryKD100Vo = JSON.parseObject(result, QueryKD100Vo.class);
|
return queryKD100Vo;
|
}
|
|
|
/**
|
* 快递100查询带有地图轨迹数据的快递详情
|
* @param com 快递公司代码
|
* @param num 快递单号
|
* @param from 出发城市名称
|
* @param to 到达城市名称
|
* @return
|
*/
|
public static MapTrackKD100Vo kd100MapTrack(String com, String num, String from, String to){
|
QueryTrackReq queryTrackReq = new QueryTrackReq();
|
QueryTrackParam queryTrackParam = new QueryTrackParam();
|
// queryTrackParam.setCom(CompanyConstant.YD);
|
queryTrackParam.setCom(com);
|
queryTrackParam.setNum(num);
|
queryTrackParam.setFrom(from);
|
queryTrackParam.setTo(to);
|
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 execute = null;
|
try {
|
execute = baseClient.execute(queryTrackReq);
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
|
String result = execute.getBody();
|
MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(result, MapTrackKD100Vo.class);
|
return mapTrackKD100Vo;
|
}
|
|
|
public static void main(String[] args) {
|
MapTrackKD100Vo mapTrackKD100Vo = ExpressDeliveryUtil.kd100MapTrack("zhongtong", "73543720196087", "湖南省长沙市", "四川省成都市");
|
System.out.println(mapTrackKD100Vo);
|
}
|
|
}
|