refactor(payment): 移除微信转账服务中的用户确认字段
- 移除了 initiateSingleTransferInternal 方法中的 userConfirm 参数 - 删除了 TransferSceneReportInfo 内部类中的 userConfirm 字段 - 移除了请求体中设置 userConfirm 字段的逻辑 - 更新了日志输出格式,移除 userConfirm 相关信息 - 添加注释说明微信侧对未定义字段的严格校验规则 - 保持方法兼容性以支持小程序拉起确认页功能
This commit is contained in:
@@ -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<TransferSceneReportInfo> transferSceneReportInfos;
|
||||
/**
|
||||
* 是否需要用户在小程序确认页确认收款;为 true 时,微信会返回 package_info,用于 wx.requestMerchantTransfer。
|
||||
*/
|
||||
private Boolean userConfirm;
|
||||
}
|
||||
|
||||
@lombok.Data
|
||||
|
||||
Reference in New Issue
Block a user