SpringBoot整合阿里云短信验证服务的使用示例

时间:2021-07-15 | 标签: | 作者:Q8 | 来源:BLUcoding网络

小提示:您能找到这篇{SpringBoot整合阿里云短信验证服务的使用示例}绝对不是偶然,我们能帮您找到潜在客户,解决您的困扰。如果您对本页介绍的SpringBoot整合阿里云短信验证服务的使用示例内容感兴趣,有相关需求意向欢迎拨打我们的服务热线,或留言咨询,我们将第一时间联系您!

< ">SpringBoot整合阿里云短信验证服务的使用示例

< font-size: 16px;">1.添加 RAM 用户并赋予权限:AliyunDysmsFullAccess(管理短信服务(SMS)的权限)

< font-size: 16px;">2.添加短信模板并等待审核通过,记录下模板CODE:SMS_205403229

< font-size: 16px;">

< font-size: 16px;">3. 添加签名,适用场景选择验证码,等待审核通过,记录下签名名称:BLU的java自学网站

< font-size: 16px;">4.SpringBoot项目导入依赖:

< font-size: 16px;"><dependency>



< font-size: 16px;">    <groupId>com.aliyun</groupId>

< font-size: 16px;">    <artifactId>aliyun-java-sdk-core</artifactId>

< font-size: 16px;">    <version>4.5.3</version>

< font-size: 16px;"></dependency>

< font-size: 16px;"><dependency>

< font-size: 16px;">    <groupId>com.alibaba</groupId>

< font-size: 16px;">    <artifactId>fastjson</artifactId>

< font-size: 16px;">    <version>1.2.62</version>

< font-size: 16px;"></dependency>

< font-size: 16px;"><dependency>

< font-size: 16px;">    <groupId>org.springframework.boot</groupId>

< font-size: 16px;">    <artifactId>spring-boot-starter-data-redis</artifactId>

< font-size: 16px;"></dependency>

< font-size: 16px;">测试类:

< font-size: 16px;">@Test

< font-size: 16px;">void contextLoads() {

< font-size: 16px;">    //连接阿里云

< font-size: 16px;">    DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKey ID", "你的AccessKey Secret");

< font-size: 16px;">    IAcsClient client = new DefaultAcsClient(profile);

< font-size: 16px;">    //构建请求

< font-size: 16px;">    CommonRequest request = new CommonRequest();

< font-size: 16px;">    //下面的信息不要改

< font-size: 16px;">    request.setSysMethod(MethodType.POST);

< font-size: 16px;">    request.setSysDomain("dysmsapi.aliyuncs.com");

< font-size: 16px;">    request.setSysVersion("2017-05-25");

< font-size: 16px;">    request.setSysAction("SendSms");

< font-size: 16px;">    //自定义的参数(手机号、签名和模版CODE)

< font-size: 16px;">    request.putQueryParameter("PhoneNumbers", "测试的手机号码");

< font-size: 16px;">    request.putQueryParameter("SignName", "你的签名名称");

< font-size: 16px;">    request.putQueryParameter("TemplateCode", "你的模版CODE");

< font-size: 16px;">    //构建一个短信验证码

< font-size: 16px;">    HashMap<String, Object> map = new HashMap<>();

< font-size: 16px;">    map.put("code", 2333);

< font-size: 16px;">    request.putQueryParameter("TemplateParam", JSONObject.toJSONString(map));

< font-size: 16px;">    //尝试发送

< font-size: 16px;">    try {

< font-size: 16px;">        CommonResponse response = client.getCommonResponse(request);

< font-size: 16px;">        System.out.println(response.getData());

< font-size: 16px;">    } catch (ServerException e) {

< font-size: 16px;">        e.printStackTrace();

< font-size: 16px;">    } catch (ClientException e) {

< font-size: 16px;">        e.printStackTrace();

< font-size: 16px;">    }

< font-size: 16px;">}



< font-size: 16px;">

< font-size: 16px;">配置文件:

< font-size: 16px;">server.port=9090

< font-size: 16px;">spring.redis.host=127.0.0.1

< font-size: 16px;">spring.redis.port=6379

< font-size: 16px;">Service接口:

< font-size: 16px;">package com.blu.service;

< font-size: 16px;">import java.util.Map;

< font-size: 16px;">public interface SendSms {

< font-size: 16px;"> public boolean send(String phoneNum,String trmplateCode,Map<String,Object> code);

< font-size: 16px;">}

< font-size: 16px;">Service实现类:

< font-size: 16px;">package com.blu.service.Impl;

< font-size: 16px;">import java.util.Map;

< font-size: 16px;">import org.springframework.stereotype.Service;

< font-size: 16px;">import com.alibaba.fastjson.JSONObject;

< font-size: 16px;">import com.aliyuncs.CommonRequest;

< font-size: 16px;">import com.aliyuncs.CommonResponse;

< font-size: 16px;">import com.aliyuncs.DefaultAcsClient;

< font-size: 16px;">import com.aliyuncs.IAcsClient;

< font-size: 16px;">import com.aliyuncs.exceptions.ClientException;

< font-size: 16px;">import com.aliyuncs.exceptions.ServerException;

< font-size: 16px;">import com.aliyuncs.http.MethodType;

< font-size: 16px;">import com.aliyuncs.profile.DefaultProfile;

< font-size: 16px;">import com.blu.service.SendSms;

< font-size: 16px;">@Service

< font-size: 16px;">public class SendSmsImpl implements SendSms {

< font-size: 16px;"> @Override

< font-size: 16px;"> public boolean send(String phoneNum, String trmplateCode, Map<String, Object> code) {

< font-size: 16px;"> // 连接阿里云

< font-size: 16px;"> DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKey ID",

< font-size: 16px;"> "你的AccessKey Secret");

< font-size: 16px;"> IAcsClient client = new DefaultAcsClient(profile);

< font-size: 16px;"> // 构建请求

< font-size: 16px;"> CommonRequest request = new CommonRequest();

< font-size: 16px;"> // 下面的信息不要改

< font-size: 16px;"> request.setSysMethod(MethodType.POST);

< font-size: 16px;"> request.setSysDomain("dysmsapi.aliyuncs.com");

< font-size: 16px;"> request.setSysVersion("2017-05-25");

< font-size: 16px;"> request.setSysAction("SendSms");

< font-size: 16px;"> // 自定义的参数(手机号,验证码,签名,模板)

< font-size: 16px;"> request.putQueryParameter("PhoneNumbers", phoneNum);

< font-size: 16px;"> request.putQueryParameter("SignName", "BLU的java自学网站");

< font-size: 16px;"> request.putQueryParameter("TemplateCode", trmplateCode);

< font-size: 16px;"> request.putQueryParameter("TemplateParam", JSONObject.toJSONString(code));

< font-size: 16px;"> try {

< font-size: 16px;"> CommonResponse response = client.getCommonResponse(request);

< font-size: 16px;"> System.out.println(response.getData());

< font-size: 16px;"> //返回是否成功

< font-size: 16px;"> return response.getHttpResponse().isSuccess();

< font-size: 16px;"> } catch (ServerException e) {

< font-size: 16px;"> e.printStackTrace();

< font-size: 16px;"> } catch (ClientException e) {

< font-size: 16px;"> e.printStackTrace();

< font-size: 16px;"> }

< font-size: 16px;"> return false;

< font-size: 16px;"> }

< font-size: 16px;">}

< font-size: 16px;">Controller接口:



< font-size: 16px;">package com.blu.controller;

< font-size: 16px;">import java.util.HashMap;

< font-size: 16px;">import java.util.UUID;

< font-size: 16px;">import java.util.concurrent.TimeUnit;

< font-size: 16px;">import org.springframework.beans.factory.annotation.Autowired;

< font-size: 16px;">import org.springframework.data.redis.core.RedisTemplate;

< font-size: 16px;">import org.springframework.web.bind.annotation.CrossOrigin;

< font-size: 16px;">import org.springf全网营销如何做ramework.web.bind.annotation.GetMapping;

< font-size: 16px;">import org.springframework.web.bind.annotation.PathVariable;

< font-size: 16px;">import org.springframework.web.bind.annotation.RestController;

< font-size: 16px;">import com.aliyuncs.utils.StringUtils;

< font-size: 16px;">import com.blu.service.SendSms;

< font-size: 16px;">@RestController

< font-size: 16px;">@CrossOrigin

< font-size: 16px;">public class SmsApiController {

< font-size: 16px;"> @Autowired

< font-size: 16px;"> private SendSms sendSms;

< font-size: 16px;"> @Autowired

< font-size: 16px;"> private RedisTemplate<String,String> redisTemplate;

< font-size: 16px;"> @GetMapping("send/{phone}")

< font-size: 16px;"> public String code(@PathVariable("phone") String phone) {

< font-size: 16px;"> String code = redisTemplate.opsForValue().get(phone);

< font-size: 16px;"> if(!StringUtils.isEmpty(code)) {

< font-size: 16px;"> return phone + ':' + code + "还没有过期";

< font-size: 16px;"> }else {

< font-size: 16px;"> //生成4位验证码并存储到 redis 中

< font-size: 16px;"> code = UUID.rando小红书发笔记mUUID().toString().substring(0,4);

< font-size: 16px;"> HashMap<String, Object> map = new HashMap<>();

< font-size: 16px;"> map.put("code", code);

< font-size: 16px;"> boolean isSend = sendSms.send(phone, "SMS_205403229", map);

< font-size: 16px;"> if(isSend) {

< font-size: 16px;">                //将验证码存入redis,并设置1分钟过期时间

< font-size: 16px;"> redisTemplate.opsForValue().set(phone, code,1,TimeUnit.MINUTES);

< font-size: 16px;"> return phone + ':' + code + "发送成功!";

< font-size: 16px;"> }else {

< font-size: 16px;"> return "发送失败!";

< font-size: 16px;"> }

< font-size: 16px;"> }

< font-size: 16px;"> }

< font-size: 16px;">}

< font-size: 16px;">测试请求:http://localhost:9090/send/银行微博危机公关1565177xxxx

< font-size: 16px;">

< font-size: 16px;">

SpringBoot整合阿里云短信验证服务的使用示例

上一篇:阿里云开通maven仓库服务及springboot集成
下一篇:实现自动开启Cloudflare的5秒盾和验证码


版权声明:以上主题为“SpringBoot整合阿里云短信验证服务的使用示例"的内容可能是本站网友自行发布,或者来至于网络。如有侵权欢迎联系我们客服QQ处理,谢谢。
相关内容
推荐内容
扫码咨询
    SpringBoot整合阿里云短信验证服务的使用示例
    打开微信扫码或长按识别二维码

小提示:您应该对本页介绍的“SpringBoot整合阿里云短信验证服务的使用示例”相关内容感兴趣,若您有相关需求欢迎拨打我们的服务热线或留言咨询,我们尽快与您联系沟通SpringBoot整合阿里云短信验证服务的使用示例的相关事宜。

关键词:SpringBoot整合阿里云短信验

关于 | 业务 | 案例 | 免责 | 隐私
客服邮箱:sales@1330.com.cn
电话:400-021-1330 | 客服QQ:865612759
沪ICP备12034177号 | 沪公网安备31010702002418号