使用阿里云短信服务实现手机验证码发送
使用阿里云短信服务实现手机验证码发送
手机验证码是注册、登录、身份验证中常见的环节。我们可以使用阿里云短信服务快速实现验证码的发送功能。
一、开通阿里云短信服务
- 登录阿里云控制台
- 开通短信服务并获取 AccessKey
- 配置短信签名与模板
二、引入依赖
在 pom.xml 中添加短信 SDK 依赖:
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
三、Java 代码示例
public class SmsService {
public static void sendSms(String phoneNumber, String code) {
IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", "your-access-key-id", "your-access-key-secret");
DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", "Dysmsapi", "dysmsapi.aliyuncs.com");
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setPhoneNumbers(phoneNumber);
request.setSignName("你的短信签名");
request.setTemplateCode("SMS_123456789");
request.setTemplateParam("{"code":"" + code + ""}");
try {
SendSmsResponse response = client.getAcsResponse(request);
System.out.println("发送状态:" + response.getCode());
} catch (ClientException e) {
e.printStackTrace();
}
}
}
四、验证码生成
public static String generateCode() {
Random random = new Random();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 6; i++) {
sb.append(random.nextInt(10));
}
return sb.toString();
}
五、发送示例
String phone = "13800001111";
String code = generateCode();
sendSms(phone, code);
六、注意事项
- 确保模板参数与模板内容匹配
- 避免频繁发送导致限流
- 验证码可结合 Redis 设置有效期
七、总结
通过阿里云短信 SDK,可以快速构建验证码发送功能,为登录、注册提供安全保障。

浙公网安备 33010602011771号