From c3ac0fac5b9a80956a6a60529483e1e7491e5f8b Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Wed, 26 Jul 2023 15:33:04 +0800
Subject: [PATCH] 短信认证

---
 src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java |  117 ++++++++++++++++++++++++++--------------------------------
 1 files changed, 52 insertions(+), 65 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java b/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
index d13639a..047db75 100644
--- a/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
+++ b/src/main/java/cc/mrbird/febs/pay/util/WechatEventUtil.java
@@ -329,35 +329,35 @@
 //
 //    String timestamp = String.format("%010d", System.currentTimeMillis() / 1000);
 //
-//    public static String createSignature(String nocestr, String ticket, String timestamp, String url) {
-//        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
-//        String s = "jsapi_ticket=" + ticket + "&noncestr=" + nocestr
-//                + "&timestamp=" + timestamp + "&url=" + url;
-//        return SHA1(s);
-//    }
+    public static String createSignature(String nocestr, String ticket, String timestamp, String url) {
+        // 这里参数的顺序要按照 key 值 ASCII 码升序排序
+        String s = "jsapi_ticket=" + ticket + "&noncestr=" + nocestr
+                + "&timestamp=" + timestamp + "&url=" + url;
+        return SHA1(s);
+    }
 //
-//    public static String SHA1(String decript) {
-//        try {
-//            MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
-//            digest.update(decript.getBytes());
-//            byte messageDigest[] = digest.digest();
-//            // Create Hex String
-//            StringBuffer hexString = new StringBuffer();
-//            // 字节数组转换为 十六进制 数
-//            for (int i = 0; i < messageDigest.length; i++) {
-//                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
-//                if (shaHex.length() < 2) {
-//                    hexString.append(0);
-//                }
-//                hexString.append(shaHex);
-//            }
-//            return hexString.toString();
-//
-//        } catch (NoSuchAlgorithmException e) {
-//            e.printStackTrace();
-//        }
-//        return "";
-//    }
+    public static String SHA1(String decript) {
+        try {
+            MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
+            digest.update(decript.getBytes());
+            byte messageDigest[] = digest.digest();
+            // Create Hex String
+            StringBuffer hexString = new StringBuffer();
+            // 字节数组转换为 十六进制 数
+            for (int i = 0; i < messageDigest.length; i++) {
+                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
+                if (shaHex.length() < 2) {
+                    hexString.append(0);
+                }
+                hexString.append(shaHex);
+            }
+            return hexString.toString();
+
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        }
+        return "";
+    }
 
     public static void main(String[] args) {
     }
@@ -369,28 +369,15 @@
         if(ObjectUtil.isEmpty(redisUtils.get("ticket"))){
             ticket = getTicket();
         }
-        Map<String, String> data = new HashMap<>();
         //生成10位时间戳
         String timestamp = String.format("%010d", System.currentTimeMillis() / 1000);
-        data.put("timestamp", timestamp );
-        //生成随机字符串
         String nonceStr = createNonceStr();
-        data.put("noncestr", nonceStr );
-        data.put("url", url);
-        data.put("jsapi_ticket", ticket);
-        String signature = null;
-        try {
-            signature = generateSignature(data);
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
+        String signature = createSignature(nonceStr, ticket, timestamp, url);
 
-        //签名算法
-        String sha1 = SHA1(signature);
         Map<String, Object> map = new HashMap<>(16);
         map.put("timestamp", timestamp);
         map.put("nonceStr", nonceStr);
-        map.put("signature", sha1);
+        map.put("signature", signature);
         return map;
     }
 
@@ -444,28 +431,28 @@
     /**
      *SHA1签名算法
      */
-    public static String SHA1(String decript) {
-        try {
-            MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
-            digest.update(decript.getBytes());
-            byte messageDigest[] = digest.digest();
-            // Create Hex String
-            StringBuffer hexString = new StringBuffer();
-            // 字节数组转换为 十六进制 数
-            for (int i = 0; i < messageDigest.length; i++) {
-                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
-                if (shaHex.length() < 2) {
-                    hexString.append(0);
-                }
-                hexString.append(shaHex);
-            }
-            return hexString.toString();
-
-        } catch (NoSuchAlgorithmException e) {
-            e.printStackTrace();
-        }
-        return "";
-    }
+//    public static String SHA1(String decript) {
+//        try {
+//            MessageDigest digest = java.security.MessageDigest.getInstance("SHA-1");
+//            digest.update(decript.getBytes());
+//            byte messageDigest[] = digest.digest();
+//            // Create Hex String
+//            StringBuffer hexString = new StringBuffer();
+//            // 字节数组转换为 十六进制 数
+//            for (int i = 0; i < messageDigest.length; i++) {
+//                String shaHex = Integer.toHexString(messageDigest[i] & 0xFF);
+//                if (shaHex.length() < 2) {
+//                    hexString.append(0);
+//                }
+//                hexString.append(shaHex);
+//            }
+//            return hexString.toString();
+//
+//        } catch (NoSuchAlgorithmException e) {
+//            e.printStackTrace();
+//        }
+//        return "";
+//    }
 
 
     /**

--
Gitblit v1.9.1