From 7a9ac5d05cb708c497521f0938dc96d4f717a239 Mon Sep 17 00:00:00 2001
From: wuxw <928255095@qq.com>
Date: 星期四, 13 六月 2024 01:30:30 +0800
Subject: [PATCH] 优化房屋收费页面

---
 java110-utils/src/main/java/com/java110/utils/util/PayUtil.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/java110-utils/src/main/java/com/java110/utils/util/PayUtil.java b/java110-utils/src/main/java/com/java110/utils/util/PayUtil.java
index 964c6df..ccd26bb 100755
--- a/java110-utils/src/main/java/com/java110/utils/util/PayUtil.java
+++ b/java110-utils/src/main/java/com/java110/utils/util/PayUtil.java
@@ -14,6 +14,8 @@
 import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 
+import javax.crypto.Mac;
+import javax.crypto.spec.SecretKeySpec;
 import javax.servlet.http.HttpServletRequest;
 import javax.xml.parsers.DocumentBuilder;
 import javax.xml.parsers.DocumentBuilderFactory;
@@ -411,4 +413,51 @@
             return money;
         }
     }
+
+    public static String createSignSha256(SortedMap<String, String> parameters, String key) {
+        StringBuffer sb = new StringBuffer();
+        Set es = parameters.entrySet();
+        Iterator<?> it = es.iterator();
+        while (it.hasNext()) {
+            Map.Entry entry = (Map.Entry) it.next();
+            String k = (String) entry.getKey();
+            if (entry.getValue() != null || !"".equals(entry.getValue())) {
+                String v = String.valueOf(entry.getValue());
+                if (null != v && !"".equals(v) && !"sign".equals(k) && !"key".equals(k)) {
+                    sb.append(k + "=" + v + "&");
+                }
+            }
+        }
+        sb.append("key=" + key);
+        logger.debug("鍔犲瘑鍓嶄覆锛�" + sb.toString());
+        //String sign = md5(sb.toString()).toUpperCase();
+        String sign = "";
+        try {
+            Mac sha256_HMAC = Mac.getInstance("HmacSHA256");
+            SecretKeySpec secret_key = new SecretKeySpec(key.getBytes(), "HmacSHA256");
+            sha256_HMAC.init(secret_key);
+            //  utf-8 : 瑙e喅涓枃鍔犲瘑涓嶄竴鑷撮棶棰�,蹇呴』鎸囧畾缂栫爜鏍煎紡
+            sign = byteArrayToHexString(sha256_HMAC.doFinal(sb.toString().getBytes("utf-8"))).toUpperCase();
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return sign;
+    }
+    /**
+     * 灏嗗姞瀵嗗悗鐨勫瓧鑺傛暟缁勮浆鎹㈡垚瀛楃涓�
+     *
+     * @param b 瀛楄妭鏁扮粍
+     * @return 瀛楃涓�
+     */
+    private static String byteArrayToHexString(byte[] b) {
+        StringBuilder hs = new StringBuilder();
+        String stmp;
+        for (int n = 0; b != null && n < b.length; n++) {
+            stmp = Integer.toHexString(b[n] & 0XFF);
+            if (stmp.length() == 1)
+                hs.append('0');
+            hs.append(stmp);
+        }
+        return hs.toString().toLowerCase();
+    }
 }

--
Gitblit v1.8.0