Java对接阿里云短信服务保姆级教程(新手秒会)
一,阿里云部分
登录阿里云搜索短信服务进入控制台,进行下面五个步骤的申请(默认已开通服务)

1. 申请资质
资质是申请签名的实名化信息,需要提供企业的信息和个人信息

2. 申请签名
签名就是短信的标题,如下图中的【飞书】
要注意,每个带星号的参数都要慎重填写,注意关键信息节点(这里踩过坑,由于填信息不仔细,审核不通过很耽误时间)


3. 申请模版
模板就是短信的内容,如下图

至此,阿里云方面的准备工作算是基本完成了!
注:
- 短信服务已开通,套餐要有余量
- 签名要配置好
- 签名对应的模板配好
- 接下来是写Java 来对接
二,Java 代码部分
可以点击此链接进入短信接入的文档 点击调试可以生成示例代码(如下图)


必填参数

注:
上面生成的代码太乱,可以使用我下面的代码,整合成短信工具类,将需要的信息改为自己的即可
导入依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.0</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
- 工具类
public class SmsUtil {
private static final String ACCESS_KEY_ID = "";//AccessKey自己账号的
private static final String ACCESS_KEY_SECRET = "";
private static final String ENDPOINT = "dysmsapi.aliyuncs.com";//固定死
private static final String SIGNNAME = "";//签名名称
private static final String TCODE = "";//模版的编号
public static String sendSms(String phoneNumbers) throws Exception {
String code=generateVerificationCode();
Config config = new Config()
.setAccessKeyId(ACCESS_KEY_ID)
.setAccessKeySecret(ACCESS_KEY_SECRET)
.setEndpoint(ENDPOINT);
Client client = new Client(config);
SendSmsRequest sendSmsRequest = new SendSmsRequest()
.setPhoneNumbers(phoneNumbers)
.setSignName(SIGNNAME)
.setTemplateCode(TCODE)
//此处是设计模版的时候预留的变量$[code]就验证码,用下面的随机生成4位数字传入
.setTemplateParam(String.format("{\"code\":\"%s\"}", code));
try {
SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
return code;
} catch (TeaException error) {
return "失败";
}
}
/**
* 验证码随机四位
*/
private static String generateVerificationCode() {
// 生成四位数字验证码
Random random = new Random();
int code = random.nextInt(10000); // 随机生成 0 到 9999 的整数
return String.format("%04d", code); // 保证生成的是四位数字,不足四位时前面补0
}
}- controller调用
/**
* 发送短信
* @param phone
* @return
*/
@RequestMapping("sendCode")
public ResultVO sendMessage(@RequestParam String phone){
try {
String code = SmsUtil.sendSms(phone);
//使用redis 存起来,过期时间300秒,用于登录时拿出来验证
redisTemplate.opsForValue().set("yzm"+phone,code,300, TimeUnit.SECONDS);
return ResultUtil.success("验证码发送成功");
} catch (Exception e) {
return ResultUtil.error("验证码发送失败");
}
}
完结!!!
总结
到此这篇关于Java对接阿里云短信服务保姆级教程的文章就介绍到这了,更多相关Java对接阿里云短信服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
全网最全最细的jmeter接口测试教程以及接口测试流程(入门教程)
本文主要介绍了全网最全最细的jmeter接口测试教程以及接口测试流程,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2021-11-11
SpringBoot项目中Date类型数据在接口返回的时间不正确的问题解决
如果接口返回的Date类型时间与数据库中datetime不一致,可能是由于没有正确配置时区导致的,解决方法是在yaml配置文件中指定正确的日期格式和时区配置,修改配置并重启项目后,可以获得正确的时间,下面就来介绍一下2024-09-09
java编译后的文件出现xx$1.class的原因及解决方式
这篇文章主要介绍了java编译后的文件出现xx$1.class的原因及解决方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2020-12-12
SpringBoot thymeleaf eclipse热部署方案操作步骤
今天小编就为大家分享一篇关于SpringBoot thymeleaf eclipse热部署方案操作步骤,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧2019-03-03





最新评论