提交修改

This commit is contained in:
quyixiao 2025-10-23 00:43:52 +08:00
parent 0cb625eed0
commit daa1c45188
5 changed files with 105 additions and 4 deletions

View File

@ -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;
}
}

View File

@ -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()); // 已经发货

View File

@ -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
*/

View File

@ -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;
}
}

View File

@ -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());