From daa1c451883bcac76bfed434605d67199795ae14 Mon Sep 17 00:00:00 2001 From: quyixiao <2621048238@qq.com> Date: Thu, 23 Oct 2025 00:43:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../heyu/api/kuaidi100/KuaiDi100Utils.java | 35 +++++++++- .../controller/mm/AdminOrderController.java | 7 ++ .../mm/AdminResourceController.java | 2 +- .../vv/AppKuaiDiCallBackController.java | 64 +++++++++++++++++++ .../controller/vv/AppLogisticsController.java | 1 + 5 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java diff --git a/api-third/src/main/java/com/heyu/api/kuaidi100/KuaiDi100Utils.java b/api-third/src/main/java/com/heyu/api/kuaidi100/KuaiDi100Utils.java index b6d1d12..3751424 100644 --- a/api-third/src/main/java/com/heyu/api/kuaidi100/KuaiDi100Utils.java +++ b/api-third/src/main/java/com/heyu/api/kuaidi100/KuaiDi100Utils.java @@ -5,10 +5,11 @@ import com.alibaba.fastjson.JSONObject; import com.google.gson.Gson; import com.heyu.api.data.dto.vv.KuaiDi100DTO; import com.kuaidi100.sdk.api.QueryTrack; +import com.kuaidi100.sdk.api.Subscribe; +import com.kuaidi100.sdk.contant.ApiInfoConstant; 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.request.*; import com.kuaidi100.sdk.utils.SignUtils; import lombok.extern.slf4j.Slf4j; @@ -22,7 +23,7 @@ public class KuaiDi100Utils { public static String key = "DnqfHnzY4501"; public static String customer = "9026FB96E97AF02582856DE4D70B27AF"; - public static KuaiDi100DTO getLogisticsInfo(String trackNumber) { + public static KuaiDi100DTO getLogisticsInfo(String trackNumber) { QueryTrackReq queryTrackReq = new QueryTrackReq(); try { @@ -68,4 +69,32 @@ public class KuaiDi100Utils { } + + /** + * 订阅接口 + */ + public String subscribe(String companyCode, String trackNumber, String phone) throws Exception { + SubscribeParameters subscribeParameters = new SubscribeParameters(); + subscribeParameters.setCallbackurl(" https://api.1024api.com/api-interface/app/kuaidi/callback"); + subscribeParameters.setPhone(phone); + + SubscribeParam subscribeParam = new SubscribeParam(); + subscribeParam.setParameters(subscribeParameters); + + subscribeParam.setCompany(companyCode); + subscribeParam.setNumber(trackNumber); + + subscribeParam.setKey(key); + SubscribeReq subscribeReq = new SubscribeReq(); + subscribeReq.setSchema(ApiInfoConstant.SUBSCRIBE_SCHEMA); + subscribeReq.setParam(new Gson().toJson(subscribeParam)); + + IBaseClient subscribe = new Subscribe(); + HttpResult httpResult = subscribe.execute(subscribeReq); + String body = httpResult.getBody(); + log.info(" subscribe query result body:{}", body); + return body; + } + + } diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java index 7a892d9..90f2a90 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminOrderController.java @@ -207,6 +207,13 @@ public class AdminOrderController { vvPackageEntity.setShippingTo(vvTradeOrderEntity.getContry() + vvTradeOrderEntity.getCity() + vvTradeOrderEntity.getDistrict() + vvTradeOrderEntity.getBuyerDetailAddress()); vvPackageEntity.setTrackNumber(vvPackageEntity.getTrackNumber()); vvPackageDao.insertOrUpdateVvPackage(vvPackageEntity); + + + + + + + for (VvTradeOrderLineEntity tradeOrderLineEntity : vvTradeOrderLineEntityList) { tradeOrderLineEntity.setTrackNumber(vvOrderRequest.getTrackNumber()); tradeOrderLineEntity.setStatus(OrderStatusEnums.shipping.getStatus()); // 已经发货 diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminResourceController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminResourceController.java index c1b6be5..fce210b 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminResourceController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/mm/AdminResourceController.java @@ -31,7 +31,7 @@ public class AdminResourceController { /*** - * https://api.1024api.com/api-interface//mm/resource/list + * https://api.1024api.com/api-interface//mm/resource/list * * http://localhost:8888/mm/resource/list */ diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java new file mode 100644 index 0000000..d1a8de4 --- /dev/null +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppKuaiDiCallBackController.java @@ -0,0 +1,64 @@ +package com.heyu.api.controller.vv; + +import com.google.gson.Gson; +import com.heyu.api.common.annotation.Describe; +import com.heyu.api.data.dao.vv.VvPackageDao; +import com.heyu.api.data.entity.vv.VvPackageEntity; +import com.kuaidi100.sdk.response.SubscribePushParamResp; +import com.kuaidi100.sdk.response.SubscribePushResult; +import com.kuaidi100.sdk.response.SubscribeResp; +import com.kuaidi100.sdk.utils.SignUtils; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@Slf4j +@RestController +@RequestMapping("/app/kuaidi") +public class AppKuaiDiCallBackController { + + @Autowired + private VvPackageDao vvPackageDao; + + /*** + * https://api.1024api.com/api-interface/app/kuaidi/callback + * + * 列表 + */ + @Describe("快递100回调接口") + @RequestMapping("/callback") + public SubscribeResp callback(String param, String sign) { + + log.info("kuaidi callback param:{},sign", param,sign); + + //建议记录一下这个回调的内容,方便出问题后双方排查问题 + //log.debug("快递100订阅推送回调结果|{}|{}",param,sign); + //订阅时传的salt,没有可以忽略 + String salt = ""; + String ourSign = SignUtils.sign(param + salt); + SubscribeResp subscribeResp = new SubscribeResp(); + subscribeResp.setResult(Boolean.TRUE); + subscribeResp.setReturnCode("200"); + subscribeResp.setMessage("成功"); + //加密如果相等,属于快递100推送;否则可以忽略掉当前请求 + if (ourSign.equals(sign)){ + //TODO 业务处理 + SubscribePushParamResp subscribePushParamResp = new Gson().fromJson(param, SubscribePushParamResp.class); + + SubscribePushResult subscribePushResult = subscribePushParamResp.getLastResult(); + if(subscribePushResult !=null){ + VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(subscribePushResult.getNu()); + vvPackageEntity.setIscheck(subscribePushResult.getIscheck()); + vvPackageEntity.setCom(subscribePushResult.getCom()); + vvPackageEntity.setStatus(subscribePushResult.getStatus()); + vvPackageEntity.setState(subscribePushResult.getState()); + vvPackageDao.updateVvPackageById(vvPackageEntity); + } + return subscribeResp; + } + return null; + + } + +} diff --git a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java index a916e30..ee76196 100644 --- a/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java +++ b/api-web/api-interface/src/main/java/com/heyu/api/controller/vv/AppLogisticsController.java @@ -47,6 +47,7 @@ public class AppLogisticsController { } KuaiDi100DTO kuaiDi100DTO = KuaiDi100Utils.getLogisticsInfo(request.getTrackNumber()); + VvPackageEntity vvPackageEntity = vvPackageDao.selectVvPackageByTrackNumber(request.getTrackNumber()); vvPackageEntity.setIscheck(kuaiDi100DTO.getIscheck()); vvPackageEntity.setCom(kuaiDi100DTO.getCom());