diff --git a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/WxPayStrategy.java b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/WxPayStrategy.java index a5f91de06..fc123faab 100644 --- a/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/WxPayStrategy.java +++ b/yudao-module-mall/yudao-module-shop-biz/src/main/java/cn/iocoder/yudao/module/shop/support/pay/WxPayStrategy.java @@ -6,6 +6,7 @@ import cn.iocoder.yudao.framework.pay.config.WxPayOneAutoConfiguration; import cn.iocoder.yudao.framework.pay.properties.WxPayProperties; import cn.iocoder.yudao.framework.tenant.core.context.TenantContextHolder; import cn.iocoder.yudao.module.shop.dal.dataobject.recharge.RechargeOrderDO; +import cn.iocoder.yudao.module.shop.dal.mysql.recharge.RechargeOrderMapper; import cn.iocoder.yudao.module.shop.response.member.InitOrderResponse; import cn.iocoder.yudao.module.shop.utils.OrderUtil; import cn.iocoder.yudao.module.system.api.tenant.TenantApi; @@ -42,6 +43,9 @@ public class WxPayStrategy implements IPayStrategy{ @Autowired private TenantApi tenantApi; + @Autowired + private RechargeOrderMapper rechargeOrderMapper; + @Override public InitOrderResponse pay(RechargeOrderDO orderDO, HttpServletRequest servletRequest,String openid) { Long requiredTenantId = TenantContextHolder.getRequiredTenantId(); @@ -90,6 +94,10 @@ public class WxPayStrategy implements IPayStrategy{ log.info("退款回调[{}]", JSONUtil.toJsonPrettyStr(wxPayRefundV3Request)); }catch (Exception e){ log.error(e.getMessage(),e); + + // 退款异常后将充值订单状态重置为未退款(维护阶段,暂不考虑优化代码) + orderDO.setRefundStatus(0); + rechargeOrderMapper.updateById(orderDO); } }