真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能

前言

成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設,滿城企業(yè)網(wǎng)站建設,滿城品牌網(wǎng)站建設,網(wǎng)站定制,滿城網(wǎng)站建設報價,網(wǎng)絡營銷,網(wǎng)絡優(yōu)化,滿城網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強企業(yè)競爭力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實用型網(wǎng)站。

短信驗證碼是通過發(fā)送驗證碼到手機的一種有效的驗證碼系統(tǒng)。主要用于驗證用戶手機的合法性及敏感操作的身份驗證。

現(xiàn)在市面上的短信服務平臺有很多。大家在選擇的時候未免會有些不好抉擇。本人建議選擇短信服務商應遵循以下幾點:

  1. 服務商知名度高,業(yè)務流量大。(這樣的平臺可信度高)
  2. 服務穩(wěn)定,不能經(jīng)常宕機。(保證自身業(yè)務的流暢運行)
  3. 文檔全面詳細。(沒文檔怎么玩?)

最近的一個項目中,注冊和修改密碼時需要用到短信驗證碼校驗手機號的功能。本人也是對比幾家后,直接選擇阿里云通信的短信服務。(本身項目服務器也是部署在阿里云上,但之前并不知道阿里云有短信服務,早知道阿里有的話就不會浪費時間找其他平臺了)。廢話不多說,下面直接開始短信驗證服務教程。

準備

1.登錄阿里云,開通阿里云通信短信服務。

2.申請accessKey

選擇右上角accessKeys,創(chuàng)建一個access key

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能

3.進入控制臺,申請短信簽名。這個作用就是用于短信前面“【】”里面的名稱。輸入時不需要帶“【】”

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能 

注意申請規(guī)范,要不然審核不會過。符合規(guī)范的話一般一個小時左右就能通過了。

我這里的簽名是“喝酒不騎馬”

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能 

4.申請短信模版

模板類型選擇驗證碼。注意,選擇驗證碼后,模板替代變量只支持驗證碼作為變量,且變量替換值<=6位數(shù)字或字母。

我的模板如下圖

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能 

1.下載SDK包

https://help.aliyun.com/document_detail/55284.html

下載后,我們需要使用

aliyun-java-sdk-core-3.2.2.jar

aliyun-java-sdk-dysmsapi-1.0.0-SANPSHOT.jar

aliyun-sdk-mns-1.1.8.jar

這三個包

SpringBoot + Maven下的jar包配置

1.在工程的resources目錄下新建一個lib文件夾,將jar包復制進去。

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能

2.由于maven庫中沒有上述幾個jar包的依賴,所以需要將本地lib目錄下的jar包導入到maven中。并在pom.xml文件中填下如下依賴。


 aliyun-message-sdk-core
 aliyun-message-sdk-core
 3.2.3
 system
 ${project.basedir}/src/main/resources/lib/aliyun-java-sdk-core-3.2.2.jar


 aliyun-message-sdk-mns
 aliyun-message-sdk-mns
 1.1.8
 system
 ${project.basedir}/src/main/resources/lib/aliyun-sdk-mns-1.1.8.jar


 aliyun-java-sdk-dysmsapi
 aliyun-java-sdk-dysmsapi
 1.0.0
 system
 ${project.basedir}/src/main/resources/lib/aliyun-java-sdk-dysmsapi-1.0.0-SANPSHOT.jar

注意, 、、隨意填寫system必須要加,這表示導入本地的jar包。

${project.basedir}為項目的根路徑。

建立AliyunMessageUtil工具類

public class AliyunMessageUtil {
 private static final String product = "Dysmsapi";
 //產(chǎn)品域名,開發(fā)者無需替換
 private static final String domain = "dysmsapi.aliyuncs.com";
 // 此處需要替換成開發(fā)者自己的AK(在阿里云訪問控制臺尋找)
 private static final String accessKeyId = "這里替換你的accessKeyId";
 private static final String accessKeySecret = "這里替換你的accessKeySecret";
 public static SendSmsResponse sendSms(Map paramMap) throws com.aliyuncs.exceptions.ClientException {
  //可自助調(diào)整超時時間
  System.setProperty("sun.net.client.defaultConnectTimeout", "10000");
  System.setProperty("sun.net.client.defaultReadTimeout", "10000");
  //初始化acsClient,暫不支持region化
  IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);
  DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain);
  IAcsClient acsClient = new DefaultAcsClient(profile);
  //組裝請求對象-具體描述見控制臺-文檔部分內(nèi)容
  SendSmsRequest request = new SendSmsRequest();
  //必填:待發(fā)送手機號
  request.setPhoneNumbers(paramMap.get("phoneNumber"));
  //必填:短信簽名-可在短信控制臺中找到
  request.setSignName(paramMap.get("msgSign"));
  //必填:短信模板-可在短信控制臺中找到
  request.setTemplateCode(paramMap.get("templateCode"));
  //可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛的${name},您的驗證碼為$[code]"時,此處的值為
  request.setTemplateParam(paramMap.get("jsonContent"));
  //選填-上行短信擴展碼(無特殊需求用戶請忽略此字段)
//  request.setSmsUpExtendCode(paramMap.get("extendCode"));
  //可選:outId為提供給業(yè)務方擴展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者
//  request.setOutId(paramMap.get("outId"));
  //hint 此處可能會拋出異常,注意catch
  SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request);
  return sendSmsResponse;
 }
}

sendSms(Map paramMap)方法是我封裝的方法。傳入的參數(shù)是paramMap,其中包含以下屬性:

phoneNumber:接受者手機號

msgSign:短信簽名名稱。在控制臺的短信簽名里能找到。

templateCode:短信模版的code。見控制臺中的模版code。

jsonContent:需要替換的變量的JSON字符串。對于驗證碼來說,String jsonContent = "{\"number\":\"" + randomNum + "\"}";即可。其中randomNum是隨機生成的6位驗證碼。

extendCode:上行短信模板的驗證碼,不需要的話可以忽略

outId:擴展字段,不需要則可以忽略

調(diào)用demo

public String sendMsg() throws LgdServiceException, ClientException {
 String phoneNumber = "18888888888";
 String randomNum = createRandomNum(6);
 String jsonContent = "{\"number\":\"" + randomNum + "\"}";
 Map paramMap = new HashMap<>();
 paramMap.put("phoneNumber", phoneNumber);
 paramMap.put("msgSign", "喝酒不騎馬");
 paramMap.put("templateCode", "xxxxxxxx");
 paramMap.put("jsonContent", jsonContent);
 SendSmsResponse sendSmsResponse = AliyunMessageUtil.sendSms(paramMap);
 if(!(sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK"))) {
  if(sendSmsResponse.getCode() == null) {
   //這里可以拋出自定義異常
  }
  if(!sendSmsResponse.getCode().equals("OK")) {
    //這里可以拋出自定義異常
  }
 }
}
/**
 * 生成隨機數(shù)
 * @param num 位數(shù)
 * @return
 */
public static String createRandomNum(int num){
 String randomNumStr = "";
 for(int i = 0; i < num;i ++){
  int randomNum = (int)(Math.random() * 10);
  randomNumStr += randomNum;
 }
 return randomNumStr;
}

總結(jié)

短信效果如圖所示

Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能 

對于驗證碼的校驗,可參見我的另一篇博文SpringBoot實現(xiàn)短信驗證碼校驗.

以上所述是小編給大家介紹的Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對創(chuàng)新互聯(lián)網(wǎng)站的支持!


網(wǎng)頁名稱:Springboot實現(xiàn)阿里云通信短信服務有關(guān)短信驗證碼的發(fā)送功能
URL鏈接:http://weahome.cn/article/jsspjd.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部