不清楚为什么可以用 Apache 的随机字符串生成类还要自己写一个,直接使用 Apache 的字符串生成类

This commit is contained in:
YuCheng Hu 2023-01-26 14:01:54 -05:00
parent b8d15f0124
commit 29cccd94b2
9 changed files with 18 additions and 35 deletions

View File

@ -1,17 +0,0 @@
package com.ossez.wechat.common.util;
public class RandomUtils {
private static final String RANDOM_STR = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
private static final java.util.Random RANDOM = new java.util.Random();
public static String getRandomStr() {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 16; i++) {
sb.append(RANDOM_STR.charAt(RANDOM.nextInt(RANDOM_STR.length())));
}
return sb.toString();
}
}

View File

@ -6,9 +6,9 @@ import com.google.gson.JsonObject;
import lombok.RequiredArgsConstructor;
import com.ossez.wechat.common.bean.WxJsapiSignature;
import com.ossez.wechat.common.exception.WxErrorException;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.crypto.SHA1;
import com.ossez.wechat.common.util.json.GsonParser;
import org.apache.commons.lang3.RandomStringUtils;
import java.util.concurrent.locks.Lock;
@ -84,7 +84,7 @@ public class WxMaJsapiServiceImpl implements WxMaJsapiService {
@Override
public WxJsapiSignature createJsapiSignature(String url) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String randomStr = RandomUtils.getRandomStr();
String randomStr = RandomStringUtils.randomAlphanumeric(16);
String jsapiTicket = getJsapiTicket(false);
String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket,
"noncestr=" + randomStr, "timestamp=" + timestamp, "url=" + url);

View File

@ -20,7 +20,6 @@ import com.ossez.wechat.common.service.WxOcrService;
import com.ossez.wechat.common.session.StandardSessionManager;
import com.ossez.wechat.common.session.WxSessionManager;
import com.ossez.wechat.common.util.DataUtils;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.crypto.SHA1;
import com.ossez.wechat.common.util.http.*;
import com.ossez.wechat.common.util.json.GsonParser;
@ -36,6 +35,7 @@ import com.ossez.wechat.oa.util.WxMpConfigStorageHolder;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.IOException;
@ -235,7 +235,7 @@ public abstract class BaseWeChatOfficialAccountServiceImpl<H, P> implements WeCh
@Override
public WxJsapiSignature createJsapiSignature(String url) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String randomStr = RandomUtils.getRandomStr();
String randomStr = RandomStringUtils.randomAlphanumeric(16);
String jsapiTicket = getJsapiTicket(false);
String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket,
"noncestr=" + randomStr, "timestamp=" + timestamp, "url=" + url);

View File

@ -8,7 +8,6 @@ import lombok.extern.slf4j.Slf4j;
import com.ossez.wechat.common.bean.WxCardApiSignature;
import com.ossez.wechat.common.exception.WxError;
import com.ossez.wechat.common.exception.WxErrorException;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.http.SimpleGetRequestExecutor;
import com.ossez.wechat.common.util.json.GsonParser;
import com.ossez.wechat.common.util.json.WxGsonBuilder;
@ -18,6 +17,7 @@ import com.ossez.wechat.common.enums.TicketType;
import com.ossez.wechat.oa.enums.WxMpApiUrl;
import com.ossez.wechat.oa.util.json.WxMpGsonBuilder;
import org.apache.commons.codec.digest.DigestUtils;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
@ -74,7 +74,7 @@ public class WxMpCardServiceImpl implements WxMpCardService {
@Override
public WxCardApiSignature createCardApiSignature(String... optionalSignParam) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String nonceStr = RandomUtils.getRandomStr();
String nonceStr = RandomStringUtils.randomAlphanumeric(16);
String cardApiTicket = getCardApiTicket(false);
String[] signParams = Arrays.copyOf(optionalSignParam, optionalSignParam.length + 3);

View File

@ -23,8 +23,8 @@ import com.ossez.wechat.pay.util.XmlConfig;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.inject.Inject;
import com.ossez.wechat.common.util.RandomUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.testng.annotations.DataProvider;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
@ -713,7 +713,7 @@ public class BaseWxPayServiceImplTest {
@Test
public void testUnifiedOrderV3() throws WxPayException {
String outTradeNo = RandomUtils.getRandomStr();
String outTradeNo = RandomStringUtils.randomAlphanumeric(16);
String notifyUrl = "https://api.qq.com/";
System.out.println("outTradeNo = " + outTradeNo);
WxPayUnifiedOrderV3Request request = new WxPayUnifiedOrderV3Request();
@ -755,7 +755,7 @@ public class BaseWxPayServiceImplTest {
@Test
public void testRefundV3() throws WxPayException {
String outRefundNo = RandomUtils.getRandomStr();
String outRefundNo = RandomStringUtils.randomAlphanumeric(16);
String notifyUrl = "https://api.qq.com/";
System.out.println("outRefundNo = " + outRefundNo);
WxPayRefundV3Request request = new WxPayRefundV3Request();

View File

@ -12,8 +12,8 @@ import com.ossez.wechat.pay.exception.WxPayException;
import com.ossez.wechat.pay.service.WxPayService;
import com.ossez.wechat.pay.testbase.ApiTestModule;
import com.google.inject.Inject;
import com.ossez.wechat.common.util.RandomUtils;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.testng.annotations.Guice;
import org.testng.annotations.Test;
@ -58,7 +58,7 @@ public class EcommerceServiceImplTest {
@Test
public void testCombinePay() throws WxPayException {
String outTradeNo = RandomUtils.getRandomStr();
String outTradeNo = RandomStringUtils.randomAlphanumeric(16);
String notifyUrl = "https://api.qq.com/";
System.out.println("outTradeNo = " + outTradeNo);
CombineTransactionsRequest request = new CombineTransactionsRequest();

View File

@ -20,7 +20,6 @@ import com.ossez.wechat.common.exception.WxErrorException;
import com.ossez.wechat.common.exception.WxRuntimeException;
import com.ossez.wechat.common.model.WeChatAccessToken;
import com.ossez.wechat.common.util.DataUtils;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.crypto.SHA1;
import com.ossez.wechat.common.util.http.*;
import com.ossez.wechat.common.util.json.GsonParser;
@ -28,6 +27,7 @@ import com.ossez.wechat.common.util.json.WxGsonBuilder;
import com.ossez.wechat.qidian.config.WxQidianConfigStorage;
import com.ossez.wechat.qidian.enums.WxQidianApiUrl;
import com.ossez.wechat.qidian.util.WxQidianConfigStorageHolder;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import lombok.Getter;
@ -109,7 +109,7 @@ public abstract class BaseWxQidianServiceImpl<H, P> implements WxQidianService,
@Override
public WxJsapiSignature createJsapiSignature(String url) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String randomStr = RandomUtils.getRandomStr();
String randomStr = RandomStringUtils.randomAlphanumeric(16);
String jsapiTicket = getJsapiTicket(false);
String signature = SHA1.genWithAmple("jsapi_ticket=" + jsapiTicket, "noncestr=" + randomStr,
"timestamp=" + timestamp, "url=" + url);

View File

@ -14,7 +14,6 @@ import com.ossez.wechat.common.session.StandardSessionManager;
import com.ossez.wechat.common.session.WxSession;
import com.ossez.wechat.common.session.WxSessionManager;
import com.ossez.wechat.common.util.DataUtils;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.crypto.SHA1;
import com.ossez.wechat.common.util.http.*;
import com.ossez.wechat.common.util.json.GsonParser;
@ -25,6 +24,7 @@ import com.ossez.wechat.wecom.bean.WxCpProviderToken;
import com.ossez.wechat.wecom.config.WxCpConfigStorage;
import com.ossez.wechat.wecom.constant.WxCpApiPathConsts;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
@ -167,7 +167,7 @@ public abstract class BaseWxCpServiceImpl<H, P> implements WxCpService, RequestH
@Override
public WxJsapiSignature createJsapiSignature(String url) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String noncestr = RandomUtils.getRandomStr();
String noncestr = RandomStringUtils.randomAlphanumeric(16);
String jsapiTicket = getJsapiTicket(false);
String signature = SHA1.genWithAmple(
"jsapi_ticket=" + jsapiTicket,
@ -190,7 +190,7 @@ public abstract class BaseWxCpServiceImpl<H, P> implements WxCpService, RequestH
@Override
public WxCpAgentJsapiSignature createAgentJsapiSignature(String url) throws WxErrorException {
long timestamp = System.currentTimeMillis() / 1000;
String noncestr = RandomUtils.getRandomStr();
String noncestr = RandomStringUtils.randomAlphanumeric(16);
String jsapiTicket = getAgentJsapiTicket(false);
String signature = SHA1.genWithAmple(
"jsapi_ticket=" + jsapiTicket,

View File

@ -13,7 +13,6 @@ import com.ossez.wechat.common.model.WeChatAccessToken;
import com.ossez.wechat.common.session.StandardSessionManager;
import com.ossez.wechat.common.session.WxSessionManager;
import com.ossez.wechat.common.util.DataUtils;
import com.ossez.wechat.common.util.RandomUtils;
import com.ossez.wechat.common.util.crypto.SHA1;
import com.ossez.wechat.common.util.http.RequestExecutor;
import com.ossez.wechat.common.util.http.RequestHttp;
@ -27,6 +26,7 @@ import com.ossez.wechat.wecom.constant.WxCpApiPathConsts;
import com.ossez.wechat.wecom.tp.service.*;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;
import org.apache.commons.lang3.StringUtils;
import java.io.File;
@ -727,7 +727,7 @@ public abstract class BaseWxCpTpServiceImpl<H, P> implements WxCpTpService, Requ
private WxJsapiSignature doCreateWxJsapiSignature(String url, String authCorpId, String jsapiTicket) {
long timestamp = System.currentTimeMillis() / 1000;
String noncestr = RandomUtils.getRandomStr();
String noncestr = RandomStringUtils.randomAlphanumeric(16);
String signature = SHA1
.genWithAmple("jsapi_ticket=" + jsapiTicket, "noncestr=" + noncestr, "timestamp=" + timestamp,
"url=" + url);