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 -// + "×tamp=" + 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 + + "×tamp=" + 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