diff --git a/src/main/java/com/gxwebsoft/payment/service/WxTransferService.java b/src/main/java/com/gxwebsoft/payment/service/WxTransferService.java index 7032a2b..a8565c9 100644 --- a/src/main/java/com/gxwebsoft/payment/service/WxTransferService.java +++ b/src/main/java/com/gxwebsoft/payment/service/WxTransferService.java @@ -83,7 +83,7 @@ public class WxTransferService { String outBillNo, String remark, String userName) throws PaymentException { - return initiateSingleTransferInternal(tenantId, openid, amountYuan, outBillNo, remark, userName, false); + return initiateSingleTransferInternal(tenantId, openid, amountYuan, outBillNo, remark, userName); } /** @@ -97,7 +97,9 @@ public class WxTransferService { String outBillNo, String remark, String userName) throws PaymentException { - return initiateSingleTransferInternal(tenantId, openid, amountYuan, outBillNo, remark, userName, true); + // 注意:微信侧会严格校验请求体字段,传入未定义字段(如 user_confirm)会直接 400(PARAM_ERROR)。 + // 此处不再向请求体写入 user_confirm,仅保留该方法用于兼容调用方(若微信侧返回 package_info,可供小程序拉起确认页)。 + return initiateSingleTransferInternal(tenantId, openid, amountYuan, outBillNo, remark, userName); } private TransferBillsResponse initiateSingleTransferInternal(Integer tenantId, @@ -105,8 +107,7 @@ public class WxTransferService { BigDecimal amountYuan, String outBillNo, String remark, - String userName, - boolean userConfirm) throws PaymentException { + String userName) throws PaymentException { if (tenantId == null) { throw PaymentException.paramError("租户ID不能为空"); @@ -175,8 +176,6 @@ public class WxTransferService { request.setTransferAmount(amountFen); request.setTransferRemark(limitLen(remark, 32)); request.setTransferSceneReportInfos(sceneReportInfos); - // 小程序拉起收款确认页:需要 user_confirm=true,微信会在响应中返回 package_info - request.setUserConfirm(userConfirm ? Boolean.TRUE : null); log.debug("微信商家转账(升级版)请求参数: tenantId={}, outBillNo={}, transferSceneId={}, sceneReportInfosCount={}", tenantId, outBillNo, transferSceneId, sceneReportInfos.size()); @@ -219,9 +218,8 @@ public class WxTransferService { } } TransferBillsResponse response = httpResponse.getServiceResponse(); - log.info("微信商家转账已受理(升级版): tenantId={}, outBillNo={}, userConfirm={}, transferBillNo={}, state={}", + log.info("微信商家转账已受理(升级版): tenantId={}, outBillNo={}, transferBillNo={}, state={}", tenantId, outBillNo, - userConfirm, response != null ? response.getTransferBillNo() : null, response != null ? response.getState() : null); return response; @@ -281,10 +279,6 @@ public class WxTransferService { private String userName; private String notifyUrl; private List transferSceneReportInfos; - /** - * 是否需要用户在小程序确认页确认收款;为 true 时,微信会返回 package_info,用于 wx.requestMerchantTransfer。 - */ - private Boolean userConfirm; } @lombok.Data