package com.doumee.core.utils.kuaidi100; import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import org.apache.commons.codec.digest.DigestUtils; import java.util.HashMap; import java.util.Map; /** * Created by IntelliJ IDEA. * * @Author : Rk * @create 2023/4/24 14:01 */ public class ExpressUtils { private static String key = "jyAJUdnw9566"; private static String customer = "B0C9AC739B017E6D6AE9C6869FF56DFB"; private static final String POLL_QUERY_URL = "https://poll.kuaidi100.com/poll/query.do"; /** * 物流信息查询 快递100 * @param expressCode * @param company * @return */ public static DeliveryDTO queryExpress(String expressCode,String company,String phone){ Map param = new HashMap<>(); //快递单号 param.put("num", expressCode); //是否显示路由状态信息 param.put("resultv2","1"); //手机号 param.put("phone",phone); String mgsData = JSON.toJSONString(param); String sign= DigestUtils.md5Hex(mgsData + key + customer).toUpperCase(); String url =POLL_QUERY_URL+"?customer="+customer+ "&sign=" +sign+ "¶m="+mgsData; String deliveryJson = HttpUtil.get(url); DeliveryDTO deliveryDTO = JSON.parseObject(deliveryJson, DeliveryDTO.class); if(!deliveryDTO.getMessage().equals("ok")){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),deliveryDTO.getMessage()); } deliveryDTO.setDvyCompany(company); deliveryDTO.setDvyFlowId(expressCode); return deliveryDTO; } }