springboot 如何发送短信功能
在 Spring Boot 中实现手机号发送短信功能,一般可以通过以下步骤:
一、选择短信服务提供商
这里使用了阿里云短信服务的 SDK 来发送短信。
阿里云官网:https://www.aliyun.com/
1.1 开通短信服务
进入短信服务控制台,依照如下步骤进行申请
1.2 新增资质
1.3 申请签名
1.4 申请模版
1.5 注册并获取相关凭证
使用子用户更安全
创建好之后,立刻将 AccessKey ID 和 AccessKey Secret 复制并保存
然后点击用户名称
二、添加依赖
API 地址:https://next.api.aliyun.com/document/Dysmsapi/2017-05-25/overview
以阿里云短信服务为例,使用 Maven 构建项目,添加如下依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>dysmsapi20170525</artifactId>
<version>3.0.0</version>
</dependency>
三、封装发送短信工具类
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
import com.aliyun.teaopenapi.models.Config;
public class SmsSenderUtil {
// 服务提供商的凭证 AccessKey ID 和 AccessKey Secret
private static final String ACCESS_KEY_ID = "你的 AccessKey ID";
private static final String ACCESS_KEY_SECRET = "你的 AccessKey Secret";
private static final String DOMAIN = "dysmsapi.aliyuncs.com";
private static final String SIGN_NAME = "你申请的签名名称";
private static final String TEMPLATE_CODE = "你的模版 code";
// 短信发送接口
public static SendSmsResponse sendSms(String phoneNumber, String code) {
Config config = new Config()
// 你的 AccessKey ID
.setAccessKeyId(ACCESS_KEY_ID)
// 你的 AccessKey Secret
.setAccessKeySecret(ACCESS_KEY_SECRET);
// 访问的 SDK 产品域名
config.endpoint = DOMAIN;
try {
Client client = new Client(config);
// 调用短信发送接口
SendSmsRequest request = new SendSmsRequest()
// 必填:待发送手机号
.setPhoneNumbers(phoneNumber)
// 必填:短信签名
.setSignName(SIGN_NAME)
// 必填:短信模板CODE
.setTemplateCode(TEMPLATE_CODE)
// 选填:模板参数
.setTemplateParam("{\"code\":\"" + code + "\"}");
return client.sendSms(request);
} catch (Exception e) {
return null;
}
}
}
四、发送短信测试
@SpringBootTest
public class ApplicationTests {
@Test
public void testSms() throws Exception {
int randomNum = new Random().nextInt(900000) + 100000;
String code = String.format("%06d", randomNum);
SendSmsResponse response = SmsSenderUtil.sendSms("发送的电话号码", code);
System.out.println(new Gson().toJson(response.body));
}
}
测试输出结果:
{
"bizId":"420420322706264631^0",
"code":"OK",
"message":"OK",
"requestId":"EEEF9008-483F-5221-A78A-F8B742D49194"
}
标签:集成,code,短信,springboot,AccessKey,aliyun,com,String
From: https://blog.csdn.net/qq_59068516/article/details/140899854