Java對接阿里云短信服務(wù)保姆級教程(新手秒會)
一,阿里云部分
登錄阿里云搜索短信服務(wù)進(jìn)入控制臺,進(jìn)行下面五個步驟的申請(默認(rèn)已開通服務(wù))
1. 申請資質(zhì)
資質(zhì)是申請簽名的實名化信息,需要提供企業(yè)的信息和個人信息
2. 申請簽名
簽名就是短信的標(biāo)題,如下圖中的【飛書】
要注意,每個帶星號的參數(shù)都要慎重填寫,注意關(guān)鍵信息節(jié)點(diǎn)(這里踩過坑,由于填信息不仔細(xì),審核不通過很耽誤時間)
3. 申請模版
模板就是短信的內(nèi)容,如下圖
至此,阿里云方面的準(zhǔn)備工作算是基本完成了!
注:
- 短信服務(wù)已開通,套餐要有余量
- 簽名要配置好
- 簽名對應(yīng)的模板配好
- 接下來是寫Java 來對接
二,Java 代碼部分
可以點(diǎn)擊此鏈接進(jìn)入短信接入的文檔 點(diǎn)擊調(diào)試可以生成示例代碼(如下圖)
必填參數(shù)
注:
上面生成的代碼太亂,可以使用我下面的代碼,整合成短信工具類,將需要的信息改為自己的即可
導(dǎo)入依賴
<dependency> <groupId>com.aliyun</groupId> <artifactId>dysmsapi20170525</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.5.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>2.1.0</version> </dependency>
- 工具類
public class SmsUtil { private static final String ACCESS_KEY_ID = "";//AccessKey自己賬號的 private static final String ACCESS_KEY_SECRET = ""; private static final String ENDPOINT = "dysmsapi.aliyuncs.com";//固定死 private static final String SIGNNAME = "";//簽名名稱 private static final String TCODE = "";//模版的編號 public static String sendSms(String phoneNumbers) throws Exception { String code=generateVerificationCode(); Config config = new Config() .setAccessKeyId(ACCESS_KEY_ID) .setAccessKeySecret(ACCESS_KEY_SECRET) .setEndpoint(ENDPOINT); Client client = new Client(config); SendSmsRequest sendSmsRequest = new SendSmsRequest() .setPhoneNumbers(phoneNumbers) .setSignName(SIGNNAME) .setTemplateCode(TCODE) //此處是設(shè)計模版的時候預(yù)留的變量$[code]就驗證碼,用下面的隨機(jī)生成4位數(shù)字傳入 .setTemplateParam(String.format("{\"code\":\"%s\"}", code)); try { SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest); return code; } catch (TeaException error) { return "失敗"; } } /** * 驗證碼隨機(jī)四位 */ private static String generateVerificationCode() { // 生成四位數(shù)字驗證碼 Random random = new Random(); int code = random.nextInt(10000); // 隨機(jī)生成 0 到 9999 的整數(shù) return String.format("%04d", code); // 保證生成的是四位數(shù)字,不足四位時前面補(bǔ)0 } }
- controller調(diào)用
/** * 發(fā)送短信 * @param phone * @return */ @RequestMapping("sendCode") public ResultVO sendMessage(@RequestParam String phone){ try { String code = SmsUtil.sendSms(phone); //使用redis 存起來,過期時間300秒,用于登錄時拿出來驗證 redisTemplate.opsForValue().set("yzm"+phone,code,300, TimeUnit.SECONDS); return ResultUtil.success("驗證碼發(fā)送成功"); } catch (Exception e) { return ResultUtil.error("驗證碼發(fā)送失敗"); } }
完結(jié)?。。?/strong>
總結(jié)
到此這篇關(guān)于Java對接阿里云短信服務(wù)保姆級教程的文章就介紹到這了,更多相關(guān)Java對接阿里云短信服務(wù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于json序列化(javaBean轉(zhuǎn)Json的細(xì)節(jié)處理)
這篇文章主要介紹了關(guān)于json序列化(javaBean轉(zhuǎn)Json的細(xì)節(jié)處理),具有很好的參考價值,希望對大家有所幫助。2022-03-03全網(wǎng)最全最細(xì)的jmeter接口測試教程以及接口測試流程(入門教程)
本文主要介紹了全網(wǎng)最全最細(xì)的jmeter接口測試教程以及接口測試流程,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-11-11SpringBoot項目中Date類型數(shù)據(jù)在接口返回的時間不正確的問題解決
如果接口返回的Date類型時間與數(shù)據(jù)庫中datetime不一致,可能是由于沒有正確配置時區(qū)導(dǎo)致的,解決方法是在yaml配置文件中指定正確的日期格式和時區(qū)配置,修改配置并重啟項目后,可以獲得正確的時間,下面就來介紹一下2024-09-09java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式
這篇文章主要介紹了java編譯后的文件出現(xiàn)xx$1.class的原因及解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12java數(shù)據(jù)結(jié)構(gòu)循環(huán)隊列的空滿判斷及長度計算
這篇文章主要為大家介紹了java數(shù)據(jù)結(jié)構(gòu)循環(huán)隊列的空滿判斷及長度計算,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06SpringBoot thymeleaf eclipse熱部署方案操作步驟
今天小編就為大家分享一篇關(guān)于SpringBoot thymeleaf eclipse熱部署方案操作步驟,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2019-03-03