使用阿里云短信服務實現手機驗證碼發送
使用阿里云短信服務實現手機驗證碼發送
手機驗證碼是注冊、登錄、身份驗證中常見的環節。我們可以使用阿里云短信服務快速實現驗證碼的發送功能。
一、開通阿里云短信服務
- 登錄阿里云控制臺
- 開通短信服務并獲取 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號