使用的是 阿里云 阿里云官網(wǎng)
1.找到 左上角側(cè)邊欄 -云通信 -短信服務(wù)
2.在快速學(xué)習(xí)測(cè)試處 ,按照步驟完成快速學(xué)習(xí),綁定要測(cè)試的手機(jī)號(hào),選專用 【測(cè)試模板】,自定義模板需要人工審核,要一個(gè)工作日
3.右上角 獲取 AccessKey 管理,獲取
選擇子用戶,這樣即使 AccessKey 泄露,也不會(huì)危機(jī)自己的阿里云賬戶
創(chuàng)建用戶
進(jìn)入 -獲取 AccessKey ID和AccessKey 密碼,只能看一次 ,截圖
4.編寫短信服務(wù) api
短信服務(wù)頁(yè)面-點(diǎn)右上角問(wèn)號(hào)-點(diǎn)文檔打開
選到Java SDK–右邊 安裝與使用教程
有安裝環(huán)境和完整代碼
環(huán)境
<!--阿里云短信服務(wù)-->
<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>2.1.0</version>
</dependency>
這邊貼兩個(gè)常見(jiàn)工具類
SMSUtils 短信發(fā)送工具類
這里面需要修改accessKeyId, accessKeySecret
package com.ruigei.demo.Utils;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;
import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.profile.DefaultProfile;
/**
* 短信發(fā)送工具類
*/
public class SMSUtils {
/**
* 發(fā)送短信
*
* @param signName 簽名
* @param templateCode 模板
* @param phoneNumbers 手機(jī)號(hào)
* @param param 參數(shù)
*/
public static void sendMessage(String signName, String templateCode, String phoneNumbers, String param) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
"你的 accessKeyId",
"你的 accessKeySecret");
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();
}
}
}
ValidateCodeUtils 隨機(jī)生成驗(yàn)證碼工具類
package com.ruigei.demo.Utils;
import java.util.Random;
/**
* 隨機(jī)生成驗(yàn)證碼工具類
*/
public class ValidateCodeUtils {
/**
* 隨機(jī)生成驗(yàn)證碼
* @param length 長(zhǎng)度為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ù)字驗(yàn)證碼");
}
return code;
}
/**
* 隨機(jī)生成指定長(zhǎng)度字符串驗(yàn)證碼
* @param length 長(zhǎng)度
* @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;
}
}
寫接口
/**
* 獲取驗(yàn)證碼
*
* @param user
* @return
*/
@Override
public R<String> sendMsg(User user, HttpSession session) {
//獲取手機(jī)號(hào)
String phone = user.getPhone();
if (StringUtils.hasText(phone)) {
//生成 隨機(jī)的4位驗(yàn)證碼
String code = ValidateCodeUtils.generateValidateCode(4).toString();
log.info("code={}" + code);
//調(diào)用阿里云提供的短信服務(wù)API 完成發(fā)送短信
//參數(shù)分別是signName, templateCode, phoneNumbers, param
SMSUtils.sendMessage("阿里云短信測(cè)試",
"SMS_154123456",phone,code);
//需要將生成的驗(yàn)證碼 保存到??token中
session.setAttribute(phone, code);
return R.success("手機(jī)驗(yàn)證碼短信發(fā)送成功");
}
return R.error("手機(jī)驗(yàn)證碼短信發(fā)送失敗");
}
}
點(diǎn) 上圖的 藍(lán)色按鈕 調(diào)用API發(fā)送短信測(cè)試一下
輸入 之前你綁定的 測(cè)試手機(jī)號(hào) ,點(diǎn)發(fā)起調(diào)用。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-689777.html
應(yīng)該沒(méi)反應(yīng),要買短信套餐,是免費(fèi)的100條短信
再回到 藍(lán)色按鈕 調(diào)用API發(fā)送短信測(cè)試一下,收到短信測(cè)試成功文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-689777.html
到了這里,關(guān)于短信驗(yàn)證碼服務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!