diff --git a/cash-api/order-server/src/main/java/com/czg/controller/DistributionPayController.java b/cash-api/order-server/src/main/java/com/czg/controller/DistributionPayController.java index 87320197..1afaa9c5 100644 --- a/cash-api/order-server/src/main/java/com/czg/controller/DistributionPayController.java +++ b/cash-api/order-server/src/main/java/com/czg/controller/DistributionPayController.java @@ -6,6 +6,7 @@ import com.czg.resp.CzgResult; import com.czg.sa.StpKit; import com.czg.service.order.service.DistributionPayService; import com.czg.system.service.SysParamsService; +import com.czg.utils.AssertUtil; import com.czg.utils.ServletUtil; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; @@ -52,14 +53,14 @@ public class DistributionPayController { /** - * 运营端小程序支付 + * 运营端小程序余额充值 * payType 必填 支付方式,aliPay 支付宝,wechatPay 微信 - * openId 必填 */ @PostMapping("/mchRecharge") @Debounce(value = "#payParam.userId") public CzgResult> mchRecharge(@RequestHeader Long shopId, HttpServletRequest request, @Validated @RequestBody MkDistributionPayDTO payParam) { payParam.setShopId(shopId); + AssertUtil.isBlank(payParam.getCode(), "微信code不为空"); return CzgResult.success(payService.mchRecharge(ServletUtil.getClientIP(request), payParam)); } // 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 c48c0e6f..2c8100c2 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 @@ -7,14 +7,18 @@ import cn.hutool.core.util.RandomUtil; import com.alibaba.fastjson2.JSONObject; import com.czg.CzgPayUtils; import com.czg.entity.CzgBaseRespParams; +import com.czg.market.service.MkDistributionConfigService; import com.czg.mq.PrintMqListener; +import com.czg.order.entity.OrderPayment; import com.czg.order.service.OrderInfoService; +import com.czg.order.service.OrderPaymentService; import com.czg.order.service.ShopTableOrderStatisticService; import com.czg.service.Impl.WxServiceImpl; import com.czg.system.service.WxService; import com.czg.task.StatisticTask; import com.czg.utils.AssertUtil; import com.ijpay.core.kit.AesUtil; +import com.mybatisflex.core.query.QueryWrapper; import jakarta.annotation.Resource; import jakarta.servlet.http.HttpServletRequest; import lombok.extern.slf4j.Slf4j; @@ -46,11 +50,15 @@ public class NotifyController { private ShopTableOrderStatisticService shopTableOrderStatisticService; @Resource private WxService wxService; + @Resource + private MkDistributionConfigService distributionConfigService; + @Resource + private OrderPaymentService paymentService; @GetMapping("testOpen") public Map test1(String code) throws Exception { - return wxService.v3Pay("oeQYq5LzW-kSxJL9TR4s_UmOmNLE", new BigDecimal("0.01"), "测试", "testZs" + RandomUtil.randomNumbers(20), "test"); + return wxService.v3Pay("oeQYq5LzW-kSxJL9TR4s_UmOmNLE", new BigDecimal("0.01"), "测试", "testZs" + RandomUtil.randomNumbers(20), "distributionRecharge"); } @@ -66,7 +74,6 @@ public class NotifyController { @RequestMapping("/native/wx/pay/distributionRecharge") public String nativeNotify(HttpServletRequest request) throws IOException { - String timestamp = request.getHeader("Wechatpay-Timestamp"); String nonce = request.getHeader("Wechatpay-Nonce"); String serialNo = request.getHeader("Wechatpay-Serial"); @@ -79,14 +86,19 @@ public class NotifyController { String nonceStr = resource.getString("nonce"); String plainText = wxService.decryptToString(associatedData, nonceStr, ciphertext); - log.info("支付通知明文 {}", plainText); + log.info("充值支付通知明文 {}", plainText); JSONObject plainTextJson = JSONObject.parseObject(plainText); String outTradeNo = plainTextJson.getString("out_trade_no"); String tradeState = plainTextJson.getString("trade_state"); String transactionId = plainTextJson.getString("transaction_id"); - if ("SUCCESS" == tradeState) { - + if ("SUCCESS".equals(tradeState)) { + OrderPayment payment = paymentService.getOne(new QueryWrapper().eq(OrderPayment::getOrderNo, outTradeNo)); + payment.setTradeNumber(transactionId); + payment.setPayTime(DateUtil.date().toLocalDateTime()); + payment.setRespJson(plainTextJson.toJSONString()); + paymentService.updateById(payment); + distributionConfigService.rechargeCallBack(payment.getSourceId(), payment.getShopId(), payment.getAmount(), payment.getId()); } return "SUCCESS"; diff --git a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysLoginDTO.java b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysLoginDTO.java index 2b9787f8..902f43a0 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysLoginDTO.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/account/dto/SysLoginDTO.java @@ -17,6 +17,6 @@ public record SysLoginDTO( @NotEmpty(message = "uid不为空") String uuid, // 验证码uid @NotNull - Integer loginType // 登录类型 0:商户登录 1:员工登录 + Integer loginType ) { } diff --git a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java index 698bf0b3..b9667791 100644 --- a/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java +++ b/cash-common/cash-common-service/src/main/java/com/czg/market/service/MkDistributionConfigService.java @@ -31,4 +31,6 @@ public interface MkDistributionConfigService extends IService