1、思路:

  • 首先我们需要一个短信发送接口,前端发送手机号码到后端,后端随机生成一个验证码并存入redis,并且设置该key的过期时间。(这里可以用手机号做redis的key,保证数据的唯一性)
  • 然后后端将该验证码发送给当前的手机号。(第三方短信平台完成,我是用的容联云通讯,因为前面可以免费使用,地址:https://www.yuntongxun.com/)
  • 用户拿到验证码后,将验证码发送给后端进行校验
  • 后端对传过来的验证码与redis中的进行比较,如果相同就删掉,防止可以校验多次。

2、思路清晰之后我们需要解决的事情是:去容联云官网注册账号,然后登进去,弄好这三个数据

 3、这个是代码,需要修改accontSID、accontToken、appId和自己的电话号码,还可以在容联云里面修改发送信息的模板,我这个是用的默认1的模板。

/**
 * a
 *
 * @Author zhang
 * @Date 2022/8/24 9:08
 */
package day2;

import com.cloopen.rest.sdk.BodyType;
import com.cloopen.rest.sdk.CCPRestSmsSDK;

import java.util.HashMap;
import java.util.Set;

/**
 * 短信验证测试
 * @author
 */
public class demo {

    public static void main(String[] args) {
        //生产环境请求地址:app.cloopen.com
        String serverIp = "app.cloopen.com";

        //请求端口
        String serverPort = "8888";

        //主账号,登陆云通讯网站后,可在控制台首页看到开发者主账号ACCOUNT SID和主账号令牌AUTH TOKEN
        String accountSId = "accountSId;
        String accountToken = "accountToken";

        //请使用管理控制台中已创建应用的APPID
        String appId = "appId";
        CCPRestSmsSDK sdk = new CCPRestSmsSDK();
        sdk.init(serverIp, serverPort);
        sdk.setAccount(accountSId, accountToken);
        sdk.setAppId(appId);
        sdk.setBodyType(BodyType.Type_JSON);

        //随机生成6位数字为验证码
        String code = String.valueOf(Math.random()).substring(2, 8);
        System.out.println(code);

        //需要把验证号转发到的手机号码
        String to = "自己的手机号码";

        //在短信管理中选择模板ID,我选择的是1
        String templateId = "1";

        //模板参数
        String[] datas = {code, "30分钟"};

        //这里是使用了一个哈希map来存放手机号、模板ID、模板参数
        HashMap<String, Object> result = sdk.sendTemplateSMS(to, templateId, datas);

        //如果返回0000则正常发送,否则返回异常
        if ("000000".equals(result.get("statusCode"))) {
            //正常返回输出data包体信息(map)
            HashMap<String, Object> data = (HashMap<String, Object>) result.get("data");
            Set<String> keySet = data.keySet();
            for (String key : keySet) {
                Object object = data.get(key);
                System.out.println(key + " = " + object);
            }
        } else {
            //异常返回输出错误码和错误信息
            System.out.println("错误码=" + result.get("statusCode") + " 错误信息= " + result.get("statusMsg"));
        }
    }
}




4、在pom.xml文件里面添加上下面这段依赖

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

5、最后把代码跑起来,看一下手机收到的效果,这些内容都是可以改的。

 好了,到这里就结束了,如有错误,请指正。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐