java 对接快递100实时查询API接口

1、授权码,授权码,请到快递100页面申请企业版接口获取

注册-快递100API开放平台|快递接口免费申请欢迎注册快递100API开放平台,免费注册企业版,获取Key授权.快递100是中国领先的快递物流信息服务商,为企业、电商和软件商提供快递查询、快递信息推送、快递地图轨迹展示、电子面单、云打印、智能单号识别、在线下单等快递物流服务及解决方案.https://api.kuaidi100.com/register/enterprise

2、申请得到的快递100数据放置.yml文件中(可以动态配置)

 

 

 3、拿key和customer和定义实时查询的接口地址

@Value("${kuaidi100.key}")
private String key;

@Value("${kuaidi100.customer}")
private String customer;

private static final String POLL_QUERY_URL = "https://poll.kuaidi100.com/poll/query.do";

4、封装实体类

@Data
public class DeliveryDto {

   @ApiModelProperty(value = "物流公司名称",required=true)
   private String companyName;
   
   @ApiModelProperty(value = "物流公司官网",required=true)
   private String companyHomeUrl;
   
   @ApiModelProperty(value = "物流订单号",required=true)
   private String dvyFlowId;
   
   @ApiModelProperty(value = "查询出的物流信息",required=true)
   private List<DeliveryInfoDto> data;

}

@Data
public class DeliveryInfoDto {
   
   @ApiModelProperty(value = "详细信息",required=true)
   private String context;
   
   private String ftime;
   
   @ApiModelProperty(value = "快递所在区域",required=true)
   private String location;
   
   @ApiModelProperty(value = "物流更新时间",required=true)
   private String time;
   
}

5、controller拿数据

@GetMapping("/check")
  @ApiOperation(value="查看物流", notes="根据订单号查看物流")
  @ApiImplicitParam(name = "orderNumber", value = "订单号", required = true, dataType = "String")
  public ResponseEntity<DeliveryDto> checkDelivery(String orderNumber) {

   Order order = orderService.getOrderByOrderNumber(orderNumber);
   Delivery delivery = deliveryService.getById(order.getDvyId());
   Map<String, String> param = new HashMap<>(); 
   param.put("com", delivery.getDvyEname());//快递公司编码 
   param.put("num", order.getDvyFlowId());//快递单号 
   String mgsData = JSON.toJSONString(param); 
   String sign=DigestUtils.md5Hex(mgsData + key + customer).toUpperCase(); 
   String url =POLL_QUERY_URL+"?customer="+customer+ "&sign=" +sign+ "&param="+mgsData;            String deliveryJson = HttpUtil.get(url); 
   DeliveryDto deliveryDto = Json.parseObject(deliveryJson, DeliveryDto.class);
   deliveryDto.setDvyFlowId(order.getDvyFlowId());
   deliveryDto.setCompanyHomeUrl(delivery.getCompanyHomeUrl());
   deliveryDto.setCompanyName(delivery.getDvyName());
      return ResponseEntity.ok(deliveryDto);
  }
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值