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