From ba3ec5d7b984bab62c1d4d6085b5cfd0e3a642df Mon Sep 17 00:00:00 2001 From: xin <1099200748@qq.com> Date: Fri, 06 Jun 2025 14:13:01 +0800 Subject: [PATCH] 短信验证码 --- oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java | 15 ++++--- oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java | 64 ++++++++++++++++---------------- oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java | 4 +- 3 files changed, 43 insertions(+), 40 deletions(-) diff --git a/oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java b/oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java index cd6d3d6..01d120f 100644 --- a/oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java +++ b/oying-system/src/main/java/com/oying/modules/security/rest/VerificationController.java @@ -43,8 +43,8 @@ //创建验证码 String verification = (int) ((Math.random() * 9 + 1) * 100000) + ""; redisUtils.set(uuid, verification, time); - String message = "您的验证码为:" + verification + ",请勿泄露于他人!"; - SendMessageUtils.sendMsg(properties.getUrlSendMsg(), phone, message, properties); + SendMessageUtils.sendMsg(properties.getUrlSendMsg(), phone, SendMessageUtils.SIGN, + SendMessageUtils.MESSAGE.replace("{code}", verification), properties); return ResponseEntity.ok(R.success(uuid)); } } diff --git a/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java b/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java index c3ce8dd..8be1331 100644 --- a/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java +++ b/oying-tools/src/main/java/com/oying/utils/SendMessageUtils.java @@ -24,21 +24,24 @@ @Data public class SendMessageUtils { - public static void sendMsg(String url, String phone, String message, WinnerLookProperties properties) { + public static final String SIGN = "【立研】"; + public static final String MESSAGE = "您的验证码为:{code},请勿泄露于他人!"; + + public static void sendMsg(String url, String phone, String sign, String message, WinnerLookProperties properties) { Map<String, String> params = new HashMap<>(); params.put("userCode", properties.getUserCode()); params.put("userPass", properties.getUserPass()); params.put("DesNo", phone); - params.put("Msg", message + "【立研】"); + params.put("Msg", sign + message); params.put("smsType", "101"); - String str = HttpRequest.exchangeMsg(HttpMethod.POST, url, convert(params)); - if (ObjectUtils.isEmpty(extractWithRegex(str))) { + String str = extractWithRegex(HttpRequest.exchangeMsg(HttpMethod.POST, url, convert(params))); + if (ObjectUtils.isEmpty(str)) { log.error("短信调用异常 {}", str); throw new BadRequestException("短信调用异常"); } - int i = Integer.parseInt(str); + long i = Long.parseLong(str); if (i < 0) { - throw new BadRequestException(WinnerLookEnum.find(i)); + throw new BadRequestException(WinnerLookEnum.find(str)); } } diff --git a/oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java b/oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java index 8d8ac90..73429de 100644 --- a/oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java +++ b/oying-tools/src/main/java/com/oying/utils/WinnerLookEnum.java @@ -6,42 +6,42 @@ @Getter @AllArgsConstructor public enum WinnerLookEnum { - ONE(-1, "应用程序错误"), - THREE(-3, "用户名或密码错误"), - FOUR(-4, "短信内容和备案的模板不一样"), - FIVE(-5, "签名不正确"), - SEVEN(-7, "余额不足"), - EIGHT(-8, "无可用通道或不在通道时间范围"), - NINE(-9, "无效号码"), - TEN(-10, "签名内容不符合长度"), - ELEVEN(-11, "用户有效期过期"), - TWELVE(-12, "黑名单"), - SIXTEEN(-16, "接口请求过于频繁,余额接口 5s 秒一次,其他接口适当调整"), - SEVENTEEN(-17, "非法 IP"), - EIGHTEEN(-18, "Msg 内容格式错误"), - NINETEEN(-19, "短信数量错误,小于 1 /大于 500(个性化)/大于 1000(群发)"), - TWENTY(-20, "号码错误或者黑名单"), - TWENTY_THREE(-23, "解密失败"), - TWENTY_FOUR(-24, "短信包含用户敏感信息"), - TWENTY_FIVE(-25, "用户被冻结"), - TWENTY_SIX(-26, "无效数据"), - TWENTY_SEVEN(-27, "请求参数错误"), - TWENTY_EIGHT(-28, "无效数据"), - FORTY_ONE(-41, "指定短信模板类型错误或短信类型参数错误"), - FORTY_FOUR(-44, "自定义扩展号不符合规则(1-16 位数字)"), - FORTY_SIX(-46, "用户黑名单"), - FORTY_SEVEN(-47, "系统黑名单"), - FORTY_EIGHT(-48, "号码超频拦截"), - FIFTY_ONE(-51, "超过设置的每月短信条数的限制"), - FIFTY_FIVE(-54, "短信包含系统敏感信息"), - ZERO(0, "未知错误"); + ONE("-1", "应用程序错误"), + THREE("-3", "用户名或密码错误"), + FOUR("-4", "短信内容和备案的模板不一样"), + FIVE("-5", "签名不正确"), + SEVEN("-7", "余额不足"), + EIGHT("-8", "无可用通道或不在通道时间范围"), + NINE("-9", "无效号码"), + TEN("-10", "签名内容不符合长度"), + ELEVEN("-11", "用户有效期过期"), + TWELVE("-12", "黑名单"), + SIXTEEN("-16", "接口请求过于频繁,余额接口 5s 秒一次,其他接口适当调整"), + SEVENTEEN("-17", "非法 IP"), + EIGHTEEN("-18", "Msg 内容格式错误"), + NINETEEN("-19", "短信数量错误,小于 1 /大于 500(个性化)/大于 1000(群发)"), + TWENTY("-20", "号码错误或者黑名单"), + TWENTY_THREE("-23", "解密失败"), + TWENTY_FOUR("-24", "短信包含用户敏感信息"), + TWENTY_FIVE("-25", "用户被冻结"), + TWENTY_SIX("-26", "无效数据"), + TWENTY_SEVEN("-27", "请求参数错误"), + TWENTY_EIGHT("-28", "无效数据"), + FORTY_ONE("-41", "指定短信模板类型错误或短信类型参数错误"), + FORTY_FOUR("-44", "自定义扩展号不符合规则(1-16 位数字)"), + FORTY_SIX("-46", "用户黑名单"), + FORTY_SEVEN("-47", "系统黑名单"), + FORTY_EIGHT("-48", "号码超频拦截"), + FIFTY_ONE("-51", "超过设置的每月短信条数的限制"), + FIFTY_FIVE("-54", "短信包含系统敏感信息"), + ZERO("0", "未知错误"); - private final int key; + private final String key; private final String value; - public static String find(Integer key) { + public static String find(String key) { for (WinnerLookEnum value : WinnerLookEnum.values()) { - if (value.getKey() == key) { + if (value.getKey().equals(key)) { return value.getValue(); } } -- Gitblit v1.9.3