【代码修复】PAY:微信扫码支付 v2 版本,缺少 product_id 的报错

This commit is contained in:
YunaiV 2024-07-24 21:35:37 +08:00
parent 625265b11d
commit 55e1bca3c0
2 changed files with 14 additions and 2 deletions

View File

@ -2,9 +2,11 @@ package cn.iocoder.yudao.framework.web.core.handler;
import cn.hutool.core.exceptions.ExceptionUtil;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.core.util.StrUtil;
import cn.iocoder.yudao.framework.apilog.core.service.ApiErrorLogFrameworkService;
import cn.iocoder.yudao.framework.common.exception.ServiceException;
import cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.collection.SetUtils;
import cn.iocoder.yudao.framework.common.util.json.JsonUtils;
@ -222,8 +224,17 @@ public class GlobalExceptionHandler {
// 不包含的时候才进行打印避免 ex 堆栈过多
if (!IGNORE_ERROR_MESSAGES.contains(ex.getMessage())) {
// 即使打印也只打印第一层 StackTraceElement并且使用 warn 在控制台输出更容易看到
StackTraceElement[] stackTrace = ex.getStackTrace();
log.warn("[serviceExceptionHandler]\n\t{}", stackTrace[0]);
try {
StackTraceElement[] stackTraces = ex.getStackTrace();
for (StackTraceElement stackTrace : stackTraces) {
if (ObjUtil.notEqual(stackTrace.getClassName(), ServiceExceptionUtil.class.getName())) {
log.warn("[serviceExceptionHandler]\n\t{}", stackTrace);
break;
}
}
} catch (Exception ignored) {
// 忽略日志避免影响主流程
}
}
return CommonResult.error(ex.getCode(), ex.getMessage());
}

View File

@ -35,6 +35,7 @@ public class WxNativePayClient extends AbstractWxPayClient {
protected PayOrderRespDTO doUnifiedOrderV2(PayOrderUnifiedReqDTO reqDTO) throws WxPayException {
// 构建 WxPayUnifiedOrderRequest 对象
WxPayUnifiedOrderRequest request = buildPayUnifiedOrderRequestV2(reqDTO);
// .setProductId(reqDTO.getOutTradeNo()); // V2 必须传递 productId无需在微信配置该参数在 V3 简化无需传递
// 执行请求
WxPayNativeOrderResult response = client.createOrder(request);