一.阿里云準(zhǔn)備工作
1.阿里云短信服務(wù)-注冊賬號
阿里云官網(wǎng):?https://www.aliyun.com/
點擊官網(wǎng)首頁注冊按鈕。
2.阿里云短信服務(wù)-設(shè)置短信簽名(阿里云提供測試的簽名,暫時可以跳過)
注冊成功后,點擊登錄按鈕進(jìn)行登錄。登錄后進(jìn)入短信服務(wù)管理頁面,選擇國內(nèi)消息菜單:
短信簽名是短信發(fā)送者的署名,表示發(fā)送方的身份。
3.阿里云短信服務(wù)-設(shè)置短信模板(阿里云提供測試的模板,暫時可以跳過)
切換到【模板管理】標(biāo)簽頁:
短信模板包含短信發(fā)送內(nèi)容、場景、變量信息。
4.阿里云短信服務(wù)-設(shè)置AccessKey
光標(biāo)移動到用戶頭像上,在彈出的窗口中點擊【AccessKey管理】∶
二、?代碼開發(fā)
1.導(dǎo)入maven坐標(biāo)
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>1.1.0</version>
</dependency>
2.封裝發(fā)送短信工具類
public class SMSUtils {
/**
* 發(fā)送短信
* @param signName 簽名
* @param templateCode 模板
* @param phoneNumbers 手機(jī)號
* @param param 參數(shù)
*/
public static void sendMessage(String signName, String templateCode,String phoneNumbers,String param){
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的accessKeyId", "你的secret");
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setSysRegionId("cn-hangzhou");
request.setPhoneNumbers(phoneNumbers);
request.setSignName(signName);
request.setTemplateCode(templateCode);
request.setTemplateParam("{\"code\":\""+param+"\"}");
try {
SendSmsResponse response = client.getAcsResponse(request);
System.out.println("短信發(fā)送成功");
}catch (ClientException e) {
e.printStackTrace();
}
}
}
3.調(diào)用發(fā)送驗證碼
/**
* 發(fā)送短信
* @param signName 簽名
* @param templateCode 模板
* @param phoneNumbers 手機(jī)號
* @param param 參數(shù)
*/
SMSUtils.sendMessage("阿里云短信測試", "SMS_154950909", "17303320963", "1234");
注意:
因為如果自定義簽名或者模板的話,需要申請,所以阿里云提供了可以測試的簽名和模板
文章來源:http://www.zghlxwxcb.cn/news/detail-785645.html
?4.到這里驗證碼已經(jīng)可以發(fā)送了
文章來源地址http://www.zghlxwxcb.cn/news/detail-785645.html
?三、擴(kuò)展(生成驗證碼與上面的調(diào)用方法配合使用)
1.封裝隨機(jī)生成驗證碼的工具類
public class ValidateCodeUtils {
/**
* 隨機(jī)生成驗證碼
* @param length 長度為4位或者6位
* @return
*/
public static Integer generateValidateCode(int length){
Integer code =null;
if(length == 4){
code = new Random().nextInt(9999);//生成隨機(jī)數(shù),最大為9999
if(code < 1000){
code = code + 1000;//保證隨機(jī)數(shù)為4位數(shù)字
}
}else if(length == 6){
code = new Random().nextInt(999999);//生成隨機(jī)數(shù),最大為999999
if(code < 100000){
code = code + 100000;//保證隨機(jī)數(shù)為6位數(shù)字
}
}else{
throw new RuntimeException("只能生成4位或6位數(shù)字驗證碼");
}
return code;
}
/**
* 隨機(jī)生成指定長度字符串驗證碼
* @param length 長度
* @return
*/
public static String generateValidateCode4String(int length){
Random rdm = new Random();
String hash1 = Integer.toHexString(rdm.nextInt());
String capstr = hash1.substring(0, length);
return capstr;
}
}
到了這里,關(guān)于(短信服務(wù))java SpringBoot 阿里云短信功能實現(xiàn)發(fā)送手機(jī)驗證碼的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!