From 209ee681533a991aae2700c9b8ab070132f144a9 Mon Sep 17 00:00:00 2001 From: wangw <1594593906@qq.com> Date: Wed, 23 Apr 2025 16:26:48 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E4=BB=98=E5=9B=9E=E8=B0=83=20?= =?UTF-8?q?=E9=87=8D=E8=AF=95=E6=9C=BA=E5=88=B6=20=E6=89=AB=E7=A0=81?= =?UTF-8?q?=E6=94=AF=E4=BB=98=20=E6=9D=A1=E7=A0=81=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/czg/controller/NotifyController.java | 2 +- .../com/czg/order/entity/OrderPayment.java | 2 +- .../czg/order/service/OrderInfoService.java | 2 +- .../service/impl/OrderInfoServiceImpl.java | 19 +++++++++++++++++-- .../order/service/impl/PayServiceImpl.java | 5 +++-- 5 files changed, 23 insertions(+), 7 deletions(-) diff --git a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java index 9b45af1a..76ba0155 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/NotifyController.java @@ -37,7 +37,7 @@ public class NotifyController { JSONObject czg = CzgPayUtils.getCzg(respParams); AssertUtil.isNull(czg, "支付回调数据为空"); log.info("支付回调数据为:{}", czg); - orderInfoService.payCallBackOrder(czg.getString("mchOrderNo"), czg); + orderInfoService.payCallBackOrder(czg.getString("mchOrderNo"), czg, 0); return SUCCESS; } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderPayment.java b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderPayment.java index f6963cf0..7239ed9d 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderPayment.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/entity/OrderPayment.java @@ -71,7 +71,7 @@ public class OrderPayment implements Serializable { */ private String tradeNumber; - @Column(onInsertValue = "now()") + @Column(onUpdateValue = "now()") private LocalDateTime payTime; /** diff --git a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java index 27332d99..f5bb17e9 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/order/service/OrderInfoService.java @@ -41,7 +41,7 @@ public interface OrderInfoService extends IService { CzgResult mergeOrder(MergeOrderDTO param); - void payCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson); + void payCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson,int retryCount); void refundCallBackOrder(@NotBlank String orderNo, @NotNull JSONObject resultJson); diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java index 2a2ffd46..427490d8 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/OrderInfoServiceImpl.java @@ -58,6 +58,11 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.*; +import java.util.concurrent.Executors; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.MAX_RETRIES; /** * 订单表 服务层实现。 @@ -106,6 +111,11 @@ public class OrderInfoServiceImpl extends ServiceImpl getOrderByPage(OrderInfoQueryDTO param) { @@ -604,11 +614,16 @@ public class OrderInfoServiceImpl extends ServiceImpl payCallBackOrder(orderNo, resultJson, retryCount + 1), DELAY, TimeUnit.SECONDS); + } else { + log.error("订单支付回调失败, 达到最大重试次数, 支付记录不存在, orderNo: {}", orderNo); + } return; } if (StrUtil.isNotBlank(payment.getTradeNumber())) { diff --git a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java index 8b8fa7a9..6b8a78e5 100644 --- a/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java +++ b/cash-service/order-service/src/main/java/com/czg/service/order/service/impl/PayServiceImpl.java @@ -772,14 +772,15 @@ public class PayServiceImpl implements PayService { private CzgResult> microPay(@NonNull Long shopId, CzgMicroPayReq bizData) { AssertUtil.isBlank(bizData.getAuthCode(), "扫码失败,请重试"); + if (bizData.getAuthCode().length() > 26) { + throw new CzgException("支付失败,不支持的条码"); + } ShopMerchant shopMerchant = getMerchant(shopId); bizData.assignMerchant(shopMerchant.getStoreId(), shopMerchant.getMerchantName(), sysParamsService.getSysParamValue(SysParamCodeEnum.PAY_CZG_NOTIFY_URL.getCode())); String firstTwoDigitsStr = bizData.getAuthCode().substring(0, 2); - // 将截取的字符串转换为整数 int firstTwoDigits = Integer.parseInt(firstTwoDigitsStr); - // 判断范围 if (firstTwoDigits >= 10 && firstTwoDigits <= 15) { //微信支付