Java实现短信验证码(阿里云)附短信SDK demo下载
隨著互聯(lián)網(wǎng)的興起,各行各業(yè)的需求都在不斷的增加。隨著業(yè)務(wù)的擴(kuò)大,企業(yè)給用戶發(fā)送短信驗(yàn)證碼的業(yè)務(wù),也是如火如荼。在這里,calvin給各位開(kāi)發(fā)者推薦阿里云短信平臺(tái)。原因有二:1.接入較簡(jiǎn)單,開(kāi)發(fā)成本低 2.非常穩(wěn)定,短信可達(dá)率99%。
???????OK,那么接下來(lái)我們就可以開(kāi)發(fā)阿里短信接口吧。主要包括兩個(gè)步驟,第一個(gè)是前期準(zhǔn)備,包括注冊(cè)阿里云賬號(hào),獲得access_key和access_secret,并且申請(qǐng)短信簽名和短信模板。第二個(gè)步驟則是引入阿里短信服務(wù)的SDK,并正式開(kāi)發(fā)。
一、前期準(zhǔn)備
1.注冊(cè)阿里云賬號(hào)
進(jìn)入網(wǎng)址 https://www.aliyun.com/ 點(diǎn)擊免費(fèi)注冊(cè),輸入相關(guān)信息,則成為阿里云用戶。
2.獲取Access_key和Access_secret
3.簽名管理與模板管理
首先點(diǎn)擊產(chǎn)品與服務(wù),選擇短信服務(wù)。
我們需要關(guān)心的是應(yīng)用開(kāi)發(fā)這塊。
分別申請(qǐng)簽名管理和模板管理。
注意,如果是個(gè)人學(xué)習(xí)使用,盡量
二、開(kāi)發(fā)步驟
前面的準(zhǔn)備工作都做完并且都申請(qǐng)通過(guò)后,我們可以正式進(jìn)入我們的開(kāi)發(fā)工作。
可以先在IDEA中新建一個(gè)Maven工程。通過(guò)依賴(lài)阿里短信服務(wù)的SDK或者在pom文件中添加相關(guān)依賴(lài)。
SDK及Demo下載地址為:
https://help.aliyun.com/document_detail/101874.html?source=5176.11533457&type=copy
這里建議使用在pom文件中添加相關(guān)依賴(lài),這樣比較方便。
了解一下入?yún)⑴c出參
根據(jù)官方給出的demo,我們新建類(lèi)AliDayunSms,在主方法中寫(xiě)入發(fā)送短信驗(yàn)證碼的邏輯。代碼如下:
1 import com.aliyuncs.DefaultAcsClient;2 import com.aliyuncs.IAcsClient;3 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsRequest;4 import com.aliyuncs.dysmsapi.model.v20170525.SendSmsResponse;5 import com.aliyuncs.exceptions.ClientException;6 import com.aliyuncs.http.MethodType;7 import com.aliyuncs.profile.DefaultProfile;8 import com.aliyuncs.profile.IClientProfile;9 10 11 public class AliDayunSms { 12 13 public static void main(String[] args) throws ClientException { 14 //設(shè)置超時(shí)時(shí)間-可自行調(diào)整 15 System.setProperty("sun.net.client.defaultConnectTimeout", "10000"); 16 System.setProperty("sun.net.client.defaultReadTimeout", "10000"); 17 //初始化ascClient需要的幾個(gè)參數(shù) 18 final String product = "Dysmsapi";//短信API產(chǎn)品名稱(chēng)(短信產(chǎn)品名固定,無(wú)需修改) 19 final String domain = "dysmsapi.aliyuncs.com";//短信API產(chǎn)品域名(接口地址固定,無(wú)需修改) 20 //替換成你的AK 21 final String accessKeyId = "your accessKeyId";//你的accessKeyId 22 final String accessKeySecret = "your accessKeySecret";//你的accessKeySecret 23 //初始化ascClient,暫時(shí)不支持多region(請(qǐng)勿修改) 24 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret); 25 DefaultProfile.addEndpoint("cn-hangzhou", "cn-hangzhou", product, domain); 26 IAcsClient acsClient = new DefaultAcsClient(profile); 27 //組裝請(qǐng)求對(duì)象 28 SendSmsRequest request = new SendSmsRequest(); 29 //使用post提交 30 request.setMethod(MethodType.POST); 31 //必填:待發(fā)送手機(jī)號(hào)。支持以逗號(hào)分隔的形式進(jìn)行批量調(diào)用,批量上限為1000個(gè)手機(jī)號(hào)碼,批量調(diào)用相對(duì)于單條調(diào)用及時(shí)性稍有延遲,驗(yàn)證碼類(lèi)型的短信推薦使用單條調(diào)用的方式;發(fā)送國(guó)際/港澳臺(tái)消息時(shí),接收號(hào)碼格式為00+國(guó)際區(qū)號(hào)+號(hào)碼,如“0085200000000” 32 request.setPhoneNumbers("your phoneNumber"); 33 //必填:短信簽名-可在短信控制臺(tái)中找到 34 request.setSignName("your signName"); 35 //必填:短信模板-可在短信控制臺(tái)中找到,發(fā)送國(guó)際/港澳臺(tái)消息時(shí),請(qǐng)使用國(guó)際/港澳臺(tái)短信模版 36 request.setTemplateCode("your templateCode"); 37 //可選:模板中的變量替換JSON串,如模板內(nèi)容為"親愛(ài)的${name},您的驗(yàn)證碼為${code}"時(shí),此處的值為 38 //友情提示:如果JSON中需要帶換行符,請(qǐng)參照標(biāo)準(zhǔn)的JSON協(xié)議對(duì)換行符的要求,比如短信內(nèi)容中包含\r\n的情況在JSON中需要表示成\\r\\n,否則會(huì)導(dǎo)致JSON在服務(wù)端解析失敗 39 //request.setTemplateParam("{\"code\":\"988756\"}"); 40 String msgCode = getMsgCode(); 41 request.setTemplateParam("{\"code\":\"" + msgCode + "\"}"); 42 //請(qǐng)求失敗這里會(huì)拋ClientException異常 43 SendSmsResponse sendSmsResponse = acsClient.getAcsResponse(request); 44 if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals("OK")) { 45 //請(qǐng)求成功 46 System.out.println("=====success===="); 47 } else { 48 System.out.println("=====fail======="); 49 } 50 } 51 52 /** 53 * 生成隨機(jī)的6位數(shù),短信驗(yàn)證碼 54 * @return 55 */ 56 private static String getMsgCode() { 57 int n = 6; 58 StringBuilder code = new StringBuilder(); 59 Random ran = new Random(); 60 for (int i = 0; i < n; i++) { 61 code.append(Integer.valueOf(ran.nextInt(10)).toString()); 62 } 63 return code.toString(); 64 } 65 }將代碼中的your accessKeyId和your accessKeySecret替換成你剛才申請(qǐng)或者已有的access_key和access_secret;your phoneNumber替換成你想要接收短信的那個(gè)手機(jī)號(hào)碼;your signName替換之前申請(qǐng)到的簽名名稱(chēng);your templateCode也替換成控制臺(tái)上面顯示的那個(gè)code。代碼中,短信驗(yàn)證碼code為變量,里面的值可以自己定義規(guī)則生成并替換,可以是隨機(jī)生成的的6位或者其他位的數(shù)字或者字母。
Gitee碼云:https://gitee.com/lyc96/projects
原文地址:http://tencent.yundashi168.com/630.html (訪問(wèn)原文可以完整查看失效的圖片和內(nèi)容)
總結(jié)
以上是生活随笔為你收集整理的Java实现短信验证码(阿里云)附短信SDK demo下载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 图片、图标、代码资源网站
- 下一篇: CAD切换工作窗口快捷键