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