From a5bf2ced28579bc32033a1c9400b8f6558096139 Mon Sep 17 00:00:00 2001 From: Stormeye Wu Date: Sat, 16 Nov 2019 05:21:18 +0800 Subject: [PATCH] =?UTF-8?q?[=E6=94=B6=E9=93=B6=E5=8F=B0][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9]:=E6=94=B6=E9=93=B6=E5=8F=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/WxMicroPayController.java | 23 +++++++++++++++++++ .../service/impl/WxPayOrderServiceImpl.java | 17 ++++++++------ 2 files changed, 33 insertions(+), 7 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java index 374f9e05c..d2dcd8236 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxMicroPayController.java @@ -83,6 +83,10 @@ public class WxMicroPayController extends BaseController { logger.error("totalFee不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "totalFee不能为空"); } + if (!checkAuthCode(authCode)) { + logger.error("authCode不符合规则"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不符合规则"); + } String ipStr = IPUtil.getIpAddr(request); @@ -436,6 +440,10 @@ public class WxMicroPayController extends BaseController { logger.error("authCode不能为空"); return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不能为空"); } + if (!checkAuthCode(authCode)) { + logger.error("authCode不符合规则"); + return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL.getCode(), "authCode不符合规则"); + } WxPayOrder record = new WxPayOrder(); record.updateTenantInfo(user); @@ -471,4 +479,19 @@ public class WxMicroPayController extends BaseController { } } } + + private Boolean checkAuthCode(String authCode) { + if (authCode.length() == 18) { + String head = authCode.substring(0, 2); + if (head.equalsIgnoreCase("10") || + head.equalsIgnoreCase("11") || + head.equalsIgnoreCase("12") || + head.equalsIgnoreCase("13") || + head.equalsIgnoreCase("14") || + head.equalsIgnoreCase("15")) { + return true; + } + } + return false; + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java index e9ee89803..1914e7dfe 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxPayOrderServiceImpl.java @@ -11,6 +11,7 @@ import com.iformall.common.IdWorker; import com.iformall.common.Result; import com.iformall.common.ResultData; import com.iformall.domain.po.*; +import com.iformall.domain.po.base.TenantEntity; import com.iformall.enums.*; import com.iformall.exception.MallinkException; import com.iformall.mapper.*; @@ -698,6 +699,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { WxPayOrder payOrder = wxPayOrderMapper.selectById(record.getId()); if (payOrder != null) { record.setPayOrderStatus(payOrder.getPayOrderStatus()); + record.setShare(payOrder.getShare()); } else { return new ResultData(ErrorCode.PAY_ORDER_ERROR.getCode(), "payOrder not found"); } @@ -1426,9 +1428,10 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } else { // 延迟10秒后分账 new Thread(() -> { - String tenantId = record.getTenantId(); + TenantEntity tenantEntity = record; Long orderId = record.getOrderId(); Long payOrderId = record.getId(); + logger.info("收银台订单分账休眠10s: orderId: {}, payOrderId: {}, {}", orderId, payOrderId, tenantEntity); try { Thread.currentThread().sleep(10000); } catch (Exception e) { @@ -1436,14 +1439,14 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { } // 支付分账 - logger.info("订单分账开始: orderId: {}, payOrderId: {}", orderId, payOrderId); + logger.info("收银台订单分账开始: orderId: {}, payOrderId: {}", orderId, payOrderId); try { - wxOrderService.shareForMicroPay(order, orderId, payOrderId); + wxOrderService.shareForMicroPay(tenantEntity, orderId, payOrderId); } catch (MallinkException e) { - logger.error("订单分账失败: orderId: {}, payOrderId: {}", orderId, payOrderId); - logger.error("订单分账失败: " + e.getMessage()); + logger.error("收银台订单分账失败: orderId: {}, payOrderId: {}", orderId, payOrderId); + logger.error("收银台订单分账失败: " + e.getMessage()); } - logger.info("订单分账结束: orderId: {}, payOrderId: {}", orderId, payOrderId); + logger.info("收银台订单分账结束: orderId: {}, payOrderId: {}", orderId, payOrderId); }).start(); } } @@ -1522,7 +1525,7 @@ public class WxPayOrderServiceImpl implements WxPayOrderService { merchantSubsidy.setId(idWorker.nextId()); merchantSubsidy.updateTenantInfo(order); merchantSubsidy.setOrderId(record.getOrderId()); - merchantSubsidy.setOrderType(EnumOrderType.NATIVEPAY.getCode()); + merchantSubsidy.setOrderType(EnumOrderType.MICROPAY.getCode()); WxMerchantBUser wxMerchantBUser = wxMerchantBUserMapper.selectById(order.getProductId()); merchantSubsidy.setMerchantId(wxMerchantBUser.getMerchantId()); merchantSubsidy.setCouponOrderId(0L);