From 06fb0de039d4a2db003e30343d6e9cfa4d8645e9 Mon Sep 17 00:00:00 2001 From: old burden Date: Mon, 26 Jan 2026 09:38:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E5=8E=BB=E9=99=A4=E6=89=93=E5=8D=B0?= =?UTF-8?q?=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/ruoyi/api/PayController.java | 89 +++---------------- 1 file changed, 14 insertions(+), 75 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/api/PayController.java b/ruoyi-admin/src/main/java/com/ruoyi/api/PayController.java index 93244d5..cae904e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/api/PayController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/api/PayController.java @@ -12,7 +12,6 @@ import com.ruoyi.common.utils.ip.IpUtils; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -23,7 +22,6 @@ import java.util.Map; @RequestMapping("/api/pay") @Api(tags = "支付接口") @RequiredArgsConstructor(onConstructor_ = @Autowired) -@Slf4j public class PayController { private final IJinShaService jinShaService; private final IKaDaService kaDaService; @@ -96,50 +94,11 @@ public class PayController { @PostMapping("/vm-pay") @ApiOperation("VM请求支付") public AjaxResult vmPay(@RequestBody VmPayReq req, HttpServletRequest request) throws Exception { - // 打印入参 - log.info("VM支付请求入参 - gearId: {}", req.getGearId()); - if (req.getVmCardInfo() != null) { - VmCardInfo cardInfo = req.getVmCardInfo(); - log.info("VM支付请求入参 - vmCardInfo: number={}, cvc={}, expYear={}, expMonth={}, email={}, firstName={}, lastName={}, country={}", - maskCardNumber(cardInfo.getNumber()), - maskCvc(cardInfo.getCvc()), - cardInfo.getExpYear(), - cardInfo.getExpMonth(), - cardInfo.getEmail(), - cardInfo.getFirstName(), - cardInfo.getLastName(), - cardInfo.getCountry()); - } else { - log.info("VM支付请求入参 - vmCardInfo: null"); - } - // 获取用户真实IP地址 String clientIp = IpUtils.getIpAddr(request); - log.info("VM支付请求入参 - clientIp: {}", clientIp); - PayResVO payResVO = vmService.vmPay(req.getGearId(), req.getVmCardInfo(), clientIp); return AjaxResult.success(payResVO); } - - /** - * 脱敏卡号(只显示前4位和后4位) - */ - private String maskCardNumber(String cardNumber) { - if (cardNumber == null || cardNumber.length() < 8) { - return cardNumber; - } - return cardNumber.substring(0, 4) + "****" + cardNumber.substring(cardNumber.length() - 4); - } - - /** - * 脱敏CVC(全部隐藏) - */ - private String maskCvc(String cvc) { - if (cvc == null || cvc.isEmpty()) { - return cvc; - } - return "***"; - } @PostMapping("/vm-callBack") @ApiOperation("VM支付回调") @@ -147,10 +106,10 @@ public class PayController { public String vmCallBack(HttpServletRequest request) { // 记录请求的Content-Type String contentType = request.getContentType(); - + // 从请求中解析表单参数 VmCallBackReq req = new VmCallBackReq(); - + // 记录所有请求参数用于调试 java.util.Enumeration paramNames = request.getParameterNames(); java.util.Map allParams = new java.util.HashMap<>(); @@ -159,14 +118,15 @@ public class PayController { String paramValue = request.getParameter(paramName); allParams.put(paramName, paramValue); } + org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(PayController.class); log.info("VM支付回调请求参数: {}, Content-Type: {}", allParams, contentType); - + req.setMchNo(request.getParameter("mchNo")); req.setAppId(request.getParameter("appId")); req.setMchOrderNo(request.getParameter("mchOrderNo")); req.setPayOrderId(request.getParameter("payOrderId")); req.setWayCode(request.getParameter("wayCode")); - + // 解析整数类型字段 String amountStr = request.getParameter("amount"); if (amountStr != null && !amountStr.isEmpty()) { @@ -176,13 +136,13 @@ public class PayController { log.warn("VM支付回调amount解析失败: {}", amountStr); } } - + req.setCurrency(request.getParameter("currency")); req.setIfCode(request.getParameter("ifCode")); req.setSubject(request.getParameter("subject")); req.setBody(request.getParameter("body")); req.setClientIp(request.getParameter("clientIp")); - + // 解析订单状态(文档字段名:state) String stateStr = request.getParameter("state"); if (stateStr != null && !stateStr.isEmpty()) { @@ -192,12 +152,12 @@ public class PayController { log.warn("VM支付回调state解析失败: {}", stateStr); } } - + req.setChannelOrderNo(request.getParameter("channelOrderNo")); req.setErrCode(request.getParameter("errCode")); req.setErrMsg(request.getParameter("errMsg")); req.setExtParam(request.getParameter("extParam")); - + // 解析时间戳:createdAt、successTime、reqTime(文档字段名) String createdAtStr = request.getParameter("createdAt"); if (createdAtStr != null && !createdAtStr.isEmpty()) { @@ -223,34 +183,13 @@ public class PayController { log.warn("VM支付回调reqTime解析失败: {}", reqTimeStr); } } - + req.setSign(request.getParameter("sign")); req.setSignType(request.getParameter("signType")); - - // 打印解析后的完整对象 - log.info("VM支付回调解析后的完整对象: mchNo={}, appId={}, mchOrderNo={}, payOrderId={}, ifCode={}, wayCode={}, amount={}, currency={}, state={}, subject={}, body={}, clientIp={}, channelOrderNo={}, errCode={}, errMsg={}, extParam={}, createdAt={}, successTime={}, reqTime={}, sign={}, signType={}", - req.getMchNo(), - req.getAppId(), - req.getMchOrderNo(), - req.getPayOrderId(), - req.getIfCode(), - req.getWayCode(), - req.getAmount(), - req.getCurrency(), - req.getState(), - req.getSubject(), - req.getBody(), - req.getClientIp(), - req.getChannelOrderNo(), - req.getErrCode(), - req.getErrMsg(), - req.getExtParam(), - req.getCreatedAt(), - req.getSuccessTime(), - req.getReqTime(), - req.getSign(), - req.getSignType()); - + + log.info("VM支付回调解析后的对象: mchOrderNo={}, state={}, sign={}", + req.getMchOrderNo(), req.getState(), req.getSign()); + return vmService.vmCallBack(req); }