Java整合容联云短信发送验证码,并设置过期时间

阅读: 评论:0

Java整合容联云短信发送验证码,并设置过期时间

Java整合容联云短信发送验证码,并设置过期时间

1.首先在容联云平台注册一个账号,默认开通了短信,免费金额是8块,每条大概是0.06,一天上限是0.5
2.在平台绑定测试的手机号
3.获取平台这三个参数值ACCOUNT_SID、ACCOUNT_TOKEN、ACCOUNT_APPID
4.接着引入maven

        <dependency><groupId>com.cloopen</groupId><artifactId>java-sms-sdk</artifactId><version>1.0.1</version></dependency>

5.工具类代码如下:

import st.sdk.BodyType;
import st.sdk.CCPRestSmsSDK;import java.util.HashMap;
import java.util.Set;public class SMS {//主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKENpublic static final String ACCOUNT_SID = "";public static final String ACCOUNT_TOKEN = "";public static final String ACCOUNT_APPID = "";public static void send(String code){//生产环境请求地址:app.cloopenString serverIp = "app.cloopen";//请求端口String serverPort = "8883";//请使用管理控制台中已创建应用的APPID//String appId = "appId";CCPRestSmsSDK sdk = new CCPRestSmsSDK();sdk.init(serverIp, serverPort);sdk.setAccount(ACCOUNT_SID, ACCOUNT_TOKEN);sdk.setAppId(ACCOUNT_APPID);sdk.setBodyType(BodyType.Type_JSON);String to = "159******";  //绑定的测试手机号String templateId= "1";   //短信模板String[] datas = {code,"2"};   //分钟参数HashMap<String, Object> result = sdk.sendTemplateSMS(to,templateId,datas);if("000000".("statusCode"))){//正常返回输出data包体信息(map)HashMap<String,Object> data = (HashMap<String, Object>) ("data");Set<String> keySet = data.keySet();for(String key:keySet){Object object = (key);System.out.println(key +" = "+object);}}else{//异常返回输出错误码和错误信息System.out.println("错误码=" + ("statusCode") +" 错误信息= "&#("statusMsg"));}}public static void main(String[] args) {//测试String code = "123456";send(code);}
}

6.验证码工具类

public static String generate6BitDigital() {return ("" + (Math.random() + 0.1) * 1000000).substring(0, 6);}

        <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId>
<!--            <version>2.0.4.RELEASE</version>--><exclusions><exclusion><groupId>io.lettuce</groupId><artifactId>lettuce-core</artifactId></exclusion></exclusions></dependency><dependency><groupId>redis.clients</groupId><artifactId>jedis</artifactId></dependency><dependency><groupId>org.springframework.data</groupId><artifactId>spring-data-redis</artifactId></dependency>
    /*** 普通缓存放入并设置时间* @param key 键* @param value 值* @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期* @return true成功 false 失败*/public boolean set(String key, Object value, long time) {try {if (time > 0) {redisTemplate.opsForValue().set(key, value, time, TimeUnit.SECONDS);} else {set(key, value);}return true;} catch (Exception e) {e.printStackTrace();return false;}}/*** 根据key 获取过期时间* @param key 键 不能为null* @return 时间(秒) 返回0代表为永久有效*/public long getExpire(String key) {Expire(key, TimeUnit.SECONDS);}

8.代码中的实际应用

    public Message sentCode(@RequestParam String phone) {String code = ate6BitDigital();redisUtil.set(phone, code, 120);System.out.println(code);SMS.send(code);return Message.success().extend("code",code);}

9.判断短信是否过期

 if (Expire(phone) == -1){return Message.fail().extend("reason","验证码已过期");}

本文发布于:2024-02-01 11:48:54,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170675933636383.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23