From 11899dc62d10c1c7778fbebb631f5ee25705b7db Mon Sep 17 00:00:00 2001
From: 张天森 <1292933220@qq.com>
Date: 星期四, 17 十一月 2022 21:36:08 +0800
Subject: [PATCH] Merge branch 'huacheng_test' into haucheng_panzhihua

---
 springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java |   29 +++++++++++++++++++++++++++++
 1 files changed, 29 insertions(+), 0 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
index c47e924..32529e4 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/common/src/main/java/com/panzhihua/common/utlis/WxPayUtils.java
@@ -1,10 +1,12 @@
 package com.panzhihua.common.utlis;
 
 import java.math.BigDecimal;
+import java.util.LinkedHashMap;
 import java.util.Map;
 import java.util.SortedMap;
 import java.util.TreeMap;
 
+import com.panzhihua.common.utlis.wx.WXPayUtil;
 import org.json.XML;
 
 import com.alibaba.fastjson.JSON;
@@ -138,4 +140,31 @@
 
         return result.toJSONString();
     }
+
+    public static String refund(String appid,String mchId,String orderNo,BigDecimal totalFee,BigDecimal refundFee,String refundNo,Boolean isTest) throws Exception {
+        //创建请求地址
+        String url = PayCpmstant.REFUND_URL;
+        Map<String, String> paramMap = new LinkedHashMap<>();
+        paramMap.put("appid",appid);
+        paramMap.put("mch_id",mchId);
+        paramMap.put("nonce_str", WXPayUtil.generateNonceStr());
+        paramMap.put("out_refund_no",refundNo);
+        paramMap.put("out_trade_no",orderNo);
+        paramMap.put("refund_fee",String.valueOf(refundFee.multiply(BigDecimal.valueOf(100)).longValue()));
+        paramMap.put("total_fee",String.valueOf(totalFee.multiply(BigDecimal.valueOf(100)).longValue()));
+        paramMap.put("sign",WXPayUtil.generateSignature(paramMap,PayCpmstant.REFUND_KEY));
+        log.info("微信退款请求参数:{},{},{},{}",url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
+        //接收请求返回值
+        String content = HttpClientUtil.doRefund(url,WXPayUtil.mapToXml(paramMap),mchId,isTest);
+        log.info("微信退款返回字符串:{}",content);
+        Map<String, String> resultMap = WXPayUtil.xmlToMap(content);
+        if (PayCpmstant.RETURN_CODE.equals(resultMap.get(PayCpmstant.RETURN_CODE_CODE))
+                && PayCpmstant.RETURN_CODE.equals(resultMap.get(PayCpmstant.RESULT_CODE_CODE))) {
+            log.info("调用微信退款申请接口成功");
+            return JSONObject.toJSONString(resultMap);
+        }else{
+            log.error("调用微信退款申请接口失败");
+            return "";
+        }
+    }
 }

--
Gitblit v1.7.1