From c313a253b1fcdc75b6be5db575fc2b29fb407021 Mon Sep 17 00:00:00 2001
From: rk <94314517@qq.com>
Date: 星期三, 15 四月 2026 20:05:04 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java |   62 +++++++++++++++++++++++++++++++
 1 files changed, 62 insertions(+), 0 deletions(-)

diff --git a/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java b/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java
new file mode 100644
index 0000000..5deb08a
--- /dev/null
+++ b/server/services/src/main/java/com/doumee/config/wx/WxMiniUtilService.java
@@ -0,0 +1,62 @@
+package com.doumee.core.wx;
+
+import cn.binarywang.wx.miniapp.api.WxMaQrcodeService;
+import com.doumee.core.constants.ResponseStatus;
+import com.doumee.core.exception.BusinessException;
+import com.doumee.core.utils.ID;
+import com.github.binarywang.wxpay.bean.request.BaseWxPayRequest;
+import com.github.binarywang.wxpay.bean.request.WxPayRefundRequest;
+import com.github.binarywang.wxpay.bean.result.WxPayRefundResult;
+import com.github.binarywang.wxpay.exception.WxPayException;
+import lombok.extern.slf4j.Slf4j;
+import me.chanjar.weixin.common.error.WxErrorException;
+import org.apache.commons.io.IOUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.math.BigDecimal;
+import java.util.Map;
+
+/**
+ * 寰俊灏忕▼搴�-鍏叡鏂规硶
+ */
+@Service
+@Slf4j
+public class WxMiniUtilService {
+
+
+    /**
+     * 璁㈠崟寰俊閫�娆�
+     * orderNo:鍟嗘埛璁㈠崟鍙�
+     * totalPrice锛氳鍗曟�婚噾棰�
+     * refundPrice锛涢��娆鹃噾棰�
+     */
+    @Transactional(rollbackFor = Exception.class)
+    public static String wxRefund(String orderNo, BigDecimal totalPrice, BigDecimal refundPrice) {
+        try {
+            // 鍙戦�侀��娆捐姹�
+            String refNum = ID.nextGUID();
+            WxPayRefundRequest request = new WxPayRefundRequest();
+            request.setOutTradeNo(orderNo);
+            request.setOutRefundNo(refNum);
+           // request.setTotalFee(2);
+          //  request.setRefundFee(1);
+            request.setTotalFee(1);//BaseWxPayRequest.yuanToFen(totalPrice.toString()));
+            request.setRefundFee(1);//BaseWxPayRequest.yuanToFen(refundPrice.toString()));
+            WxPayRefundResult response = WxMiniConfig.wxPayService.refund(request);
+            if ("SUCCESS".equals(response.getReturnCode()) && "SUCCESS".equals(response.getResultCode())) {
+                return refNum;
+            } else {
+                throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),response.getErrCode() + response.getErrCodeDes());
+            }
+        } catch (WxPayException e) {
+            e.printStackTrace();
+        }
+        throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閫�娆惧彂鐢熷紓甯歌鑱旂郴绠$悊鍛�");
+    }
+}

--
Gitblit v1.9.3