From 8d0d2ac5db499a72cc029c6c5ced1d4f82c2c4d1 Mon Sep 17 00:00:00 2001
From: 1098226878 <1098226878@qq.com>
Date: 星期一, 06 九月 2021 16:46:12 +0800
Subject: [PATCH] Merge branch 'master' of http://git.homecommunity.cn/supervip/MicroCommunity

---
 service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java |   18 +++++++++++++++++-
 service-front/src/main/java/com/java110/front/controller/app/PaymentController.java                       |   15 +++++++++++----
 2 files changed, 28 insertions(+), 5 deletions(-)

diff --git a/service-front/src/main/java/com/java110/front/controller/app/PaymentController.java b/service-front/src/main/java/com/java110/front/controller/app/PaymentController.java
index 6404e79..de97ad6 100755
--- a/service-front/src/main/java/com/java110/front/controller/app/PaymentController.java
+++ b/service-front/src/main/java/com/java110/front/controller/app/PaymentController.java
@@ -215,10 +215,7 @@
         String sign = params.get("sign");
         System.out.println(sign);
 
-        /*楠岀*/
-        //瀵归�氱煡鍐呭鐢熸垚sign
-        //String strSign = makeSign(md5key, params);
-        //System.out.println("strSign="+strSign);
+
         String preStr = buildSignString(params);
         paramIn.put("preSign",preStr);
         paramIn.put("sign",sign);
@@ -264,6 +261,16 @@
             paramIn.put(key, request.getParameter(key));
         }
         logger.debug("寰俊鏀粯鍥炶皟鎶ユ枃" + paramIn.toJSONString());
+        /*鎺ユ敹鍙傛暟*/
+        Map<String, String> params = getRequestParams(request);
+        System.out.println("params:" + params);
+        String sign = params.get("sign");
+        System.out.println(sign);
+
+
+        String preStr = buildSignString(params);
+        paramIn.put("preSign",preStr);
+        paramIn.put("sign",sign);
 
         return oweFeeToNotifySMOImpl.toNotify(paramIn.toJSONString(), request);
     }
diff --git a/service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java b/service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java
index 43b9643..4fec642 100644
--- a/service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java
+++ b/service-front/src/main/java/com/java110/front/smo/payment/adapt/chinaums/ChinaUmsOweFeeToNotifyAdapt.java
@@ -29,6 +29,7 @@
 import com.java110.utils.util.DateUtil;
 import com.java110.utils.util.PayUtil;
 import com.java110.utils.util.StringUtil;
+import org.apache.commons.codec.digest.DigestUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,6 +38,7 @@
 import org.springframework.web.client.HttpStatusCodeException;
 import org.springframework.web.client.RestTemplate;
 
+import java.io.UnsupportedEncodingException;
 import java.util.Date;
 import java.util.SortedMap;
 import java.util.TreeMap;
@@ -123,7 +125,11 @@
             }
             paramMap.put(key, map.get(key).toString());
         }
-        String sign = PayUtil.createSign(paramMap, smallWeChatDto.getPayPassword());
+        String preSign = map.getString("preSign");
+        String text = preSign + smallWeChatDto.getPayPassword();
+        System.out.println("寰呯鍚嶅瓧绗︿覆锛�" + text);
+        String sign = DigestUtils.sha256Hex(getContentBytes(text)).toUpperCase();
+
         if (!sign.equals(map.get("sign"))) {
             throw new IllegalArgumentException("閴存潈澶辫触");
         }
@@ -238,4 +244,14 @@
         return PayUtil.md5(str);
     }
 
+
+    // 鏍规嵁缂栫爜绫诲瀷鑾峰緱绛惧悕鍐呭byte[]
+    public static byte[] getContentBytes(String content) {
+        try {
+            return content.getBytes("UTF-8");
+        } catch (UnsupportedEncodingException e) {
+            throw new RuntimeException("绛惧悕杩囩▼涓嚭鐜伴敊璇�");
+        }
+    }
+
 }

--
Gitblit v1.8.0