Springboot之阿里云短信验证码

一、 开发前准备

在springboot开发短信功能前,首先需要开启阿里云短信服务。

1. AccessKey管理

登录阿里云,将短信服务添加到控制台,然后点击头像进入AccessKey管理。
Springboot之阿里云短信验证码_第1张图片
点击子用户
Springboot之阿里云短信验证码_第2张图片
创建用户
Springboot之阿里云短信验证码_第3张图片
需要注意要勾选开发调用访问支持
Springboot之阿里云短信验证码_第4张图片
然后创建用户组
Springboot之阿里云短信验证码_第5张图片
添加组成员,选择刚才新建的用户
Springboot之阿里云短信验证码_第6张图片
点击权限管理,新增授权
Springboot之阿里云短信验证码_第7张图片
搜索Sms,点击添加就可以了
Springboot之阿里云短信验证码_第8张图片
再回到用户,点击添加的用户,在最下面AccesKey可以创建AccessKey,要记住Access Id和AccessKey,整合代码时,需要使用。
Springboot之阿里云短信验证码_第9张图片

2. 短信签名和模板申请

进入短信服务控制台,点击右侧,国内消息,可以看见签名管理,模板管理等
Springboot之阿里云短信验证码_第10张图片
添加签名和模板不多解释了,需要审核,一定要写仔细了,容易审核不通过。

二、 Springboot整合

1. 导入依赖

        <dependency>
            <groupId>com.aliyungroupId>
            <artifactId>aliyun-java-sdk-coreartifactId>
            <version>4.5.3version>
        dependency>

2. 使用

这一段代码就是官方提供的

@SpringBootTest
class SpringbootApplicationTests {
     

    @Test
    void contextLoads() throws Exception {
     

        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "Access Id", "Access Key");//这里放之前添加的Access Id,Access Key
        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("RegionId", "cn-hangzhou");
        //这往上的不需要修改,下面需要传入参数,手机号,签名名称,模板code,以及验证码。
        request.putQueryParameter("PhoneNumbers", "手机号");
        request.putQueryParameter("SignName", "短信签名");
        request.putQueryParameter("TemplateCode", "模板code");
        Map<String,String> map = new HashMap<>();
        map.put("code","265987");
        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();
        }
    }

}

执行后,手机会收到验证码。
Springboot之阿里云短信验证码_第11张图片

你可能感兴趣的:(spring,boot,阿里云)