From 51e8428871a43e389e189485d9007b46a96eaeeb Mon Sep 17 00:00:00 2001 From: liwan Date: Wed, 24 Jan 2024 17:15:58 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E7=AD=BE=E5=90=8D=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/dtk/api/client/AbstractDtkApiClient.java | 15 ++++++++++++--- .../java/com/dtk/api/constant/DtkApiConstant.java | 4 +++- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/dtk/api/client/AbstractDtkApiClient.java b/src/main/java/com/dtk/api/client/AbstractDtkApiClient.java index 6eb6880..9b2225b 100644 --- a/src/main/java/com/dtk/api/client/AbstractDtkApiClient.java +++ b/src/main/java/com/dtk/api/client/AbstractDtkApiClient.java @@ -18,6 +18,7 @@ import java.lang.reflect.Field; import java.util.Collections; import java.util.Map; import java.util.Optional; +import java.util.Random; import java.util.stream.Collectors; /** @@ -92,11 +93,19 @@ public abstract class AbstractDtkApiClient implements DtkClient { } } Map textParams = request.getTextParams(); + // 创建一个Random对象 + Random random = new Random(); + // 生成一个6位的随机数,范围在0到999999之间 + int randomNumber = random.nextInt(1000000); + String nonce = String.format("%06d", randomNumber); + // 获取当前时间戳 + String Timer = String.format("%d", System.currentTimeMillis()); + textParams.put(DtkApiConstant.RequestCommonParam.APP_KEY, appKey); + textParams.put(DtkApiConstant.RequestCommonParam.Nonce, nonce); + textParams.put(DtkApiConstant.RequestCommonParam.Timer, Timer); // 生成签名 - String urlParams = - textParams.entrySet().stream().filter(x -> !StringUtils.isEmpty(x.getValue())).map(entry -> entry.getKey() + "=" + entry.getValue()).collect(Collectors.joining( - "&")); + String urlParams = String.format("appKey=%s&timer=%s&nonce=%s", appKey, Timer, nonce); String serverSign = SignMd5Util.sign(urlParams, appSecret); textParams.put(DtkApiConstant.RequestCommonParam.SIGN, serverSign); return textParams; diff --git a/src/main/java/com/dtk/api/constant/DtkApiConstant.java b/src/main/java/com/dtk/api/constant/DtkApiConstant.java index c061bb9..5f28760 100644 --- a/src/main/java/com/dtk/api/constant/DtkApiConstant.java +++ b/src/main/java/com/dtk/api/constant/DtkApiConstant.java @@ -34,7 +34,9 @@ public class DtkApiConstant { } public static class RequestCommonParam { - public static final String SIGN = "sign"; + public static final String SIGN = "signRan"; + public static final String Nonce = "nonce"; + public static final String Timer = "timer"; public static final String APP_KEY = "appKey"; public static final String APP_SECRET = "appSecret"; public static final String REQUEST_URL = "requestUrl"; -- Gitee