阿里云手机发送验证码功能

之前总觉得向手机发送验证码是个高逼格的技术,等自己试着做一下发现其实不难,主要是调用三方接口,根据三方提供的API进行少量程序编写。


登录阿里云官网

(1)首先,你要做的是注册一个账号,注册成功后登录,选择AccessKey管理,选择开启子用户

 

(2)接着,添加用户组,以及配置用户组权限

 

(3)创建用户,得到AccessKey(id,密码)

   ***账号要保密保存到本地,之后程序中用到

(4)在搜索栏搜索 “短信服务 控制台”,添加模板

(5)添加签名

(6)最后,你要做的事情是给你的阿里云账户充钱(只有充钱,才能更强)

    PS:如果只是测试用,冲1块就可以,一条短信的收费是0.045元

代码

以下代码只是简单测试

首先需要引用pom依赖

<!--阿里云 短信-->
<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.3</version>
</dependency>
<!--Redis 为了存储验证码-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- 为了统一返回的数据格式 fastjson -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.73</version>
</dependency>

接着,写发送短信的方法 

public static void sendSms(){
        //连接阿里云
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的accessID", "你的accessSecret");
        IAcsClient client = new DefaultAcsClient(profile);
        //构建请求
        CommonRequest request = new CommonRequest();
        request.setSysMethod(MethodType.POST);
        request.setSysDomain("dysmsapi.aliyuncs.com"); //默认不用改
        request.setSysVersion("2017-05-25");  //默认不用改
        request.setSysAction("SendSms");
        //自定义参数
        request.putQueryParameter("PhoneNumbers", "手机号");
        request.putQueryParameter("SignName", "签名");
        request.putQueryParameter("TemplateCode", "模板code");
        String code= UUIDUtils.getUUID().substring(0,4);
        HashMap<String,Object> map=new HashMap<>();
        map.put("code",code);
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
    }

注意: 这里的参数都不能改,得和我写的一模一样,我原本以为是可以改的,就把PhoneNumbers写成了PhoneNumber,结果报错,还有code必须得JSON格式化,否则也会报错

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值