Springboot實(shí)現(xiàn)Java阿里短信發(fā)送代碼實(shí)例
阿里云短信服務(wù)還是非常好的,接口穩(wěn)定,同時(shí)還提供SDK,使得企業(yè)的接入該服務(wù)更加方便。下面來看看阿里云提供的發(fā)短信的java實(shí)例代碼吧
1.接口TestController
import java.util.Random;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.http.MethodType;import com.aliyuncs.profile.DefaultProfile;import com.aliyuncs.profile.IClientProfile;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class TestController { @RequestMapping(value = '/test') public void sendCode() throws ClientException { //返回碼 String code = getCode(); //設(shè)置超時(shí)時(shí)間-可自行調(diào)整 System.setProperty('sun.net.client.defaultConnectTimeout', '20000'); System.setProperty('sun.net.client.defaultReadTimeout', '20000'); //初始化ascClient需要的幾個(gè)參數(shù) final String product = 'Dysmsapi';//短信API產(chǎn)品名稱(短信產(chǎn)品名固定,無需修改) final String domain = 'dysmsapi.aliyuncs.com';//短信API產(chǎn)品域名(接口地址固定,無需修改) //替換成你的AK final String accessKeyId = '';//你的accessKeyId,參考本文檔步驟2 final String accessKeySecret = '';//你的accessKeySecret,參考本文檔步驟2 //初始化ascClient,暫時(shí)不支持多region(請(qǐng)勿修改) IClientProfile profile = DefaultProfile.getProfile('cn-hangzhou', accessKeyId,accessKeySecret); SendSmsResponse sendSmsResponse = null; DefaultProfile.addEndpoint('cn-hangzhou', 'cn-hangzhou', product, domain); IAcsClient acsClient = new DefaultAcsClient(profile); //組裝請(qǐng)求對(duì)象 SendSmsRequest request = new SendSmsRequest(); //使用post提交 request.setMethod(MethodType.POST); //必填:待發(fā)送手機(jī)號(hào)。支持以逗號(hào)分隔的形式進(jìn)行批量調(diào)用,批量上限為1000個(gè)手機(jī)號(hào)碼,批量調(diào)用相對(duì)于單條調(diào)用及時(shí)性稍有延遲,驗(yàn)證碼類型的短信推薦使用單條調(diào)用的方式;發(fā)送國際/港澳臺(tái)消息時(shí),接收號(hào)碼格式為00+國際區(qū)號(hào)+號(hào)碼,如“0085200000000” request.setPhoneNumbers('15252095326'); //必填:短信簽名-可在短信控制臺(tái)中找到 request.setSignName('單點(diǎn)登錄'); //必填:短信模板-可在短信控制臺(tái)中找到,發(fā)送國際/港澳臺(tái)消息時(shí),請(qǐng)使用國際/港澳臺(tái)短信模版 request.setTemplateCode('SMS_xxxxxxxx'); //可選:模板中的變量替換JSON串,如模板內(nèi)容為'親愛的${name},您的驗(yàn)證碼為$[code]'時(shí),此處的值為 //友情提示:如果JSON中需要帶換行符,請(qǐng)參照標(biāo)準(zhǔn)的JSON協(xié)議對(duì)換行符的要求,比如短信內(nèi)容中包含rn的情況在JSON中需要表示成rn,否則會(huì)導(dǎo)致JSON在服務(wù)端解析失敗 request.setTemplateParam('{'code':'' + code + ''}'); //可選-上行短信擴(kuò)展碼(擴(kuò)展碼字段控制在7位或以下,無特殊需求用戶請(qǐng)忽略此字段) request.setSmsUpExtendCode('90997'); //可選:outId為提供給業(yè)務(wù)方擴(kuò)展字段,最終在短信回執(zhí)消息中將此值帶回給調(diào)用者 request.setOutId('yourOutId'); //請(qǐng)求失敗這里會(huì)拋ClientException異常 sendSmsResponse = acsClient.getAcsResponse(request); System.out.println(sendSmsResponse.getCode()); if (sendSmsResponse.getCode() != null && sendSmsResponse.getCode().equals('OK')) { //請(qǐng)求成功 System.out.println('請(qǐng)求成功!'); } else { System.out.println('請(qǐng)求失敗!'); } } /** * @return 隨機(jī)生成的6位驗(yàn)證碼 */ public static String getCode() { StringBuilder sb = new StringBuilder(); for (int i = 0; sb.length() < 6; i++) { int num = new Random().nextInt(10); sb.append(num); } return sb.toString(); }}
2.啟動(dòng)類
import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;@SpringBootApplication(exclude= {DataSourceAutoConfiguration.class})public class SSOApplication { public static void main(String[] args){ SpringApplication.run(SSOApplication.class,args); }}
3.pom.xml
<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <groupId>sso-test</groupId> <artifactId>sso-test</artifactId> <version>1.0-SNAPSHOT</version> <url>http://maven.apache.org</url> <!-- 父級(jí)項(xiàng)目 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.0.RELEASE</version> <relativePath /> <!-- lookup parent from repository --> </parent> <dependencies> <!-- 測試 --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <!-- springmvc --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- jpa(持久層) --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3</version> </dependency> <!-- https://mvnrepository.com/artifact/commons-io/commons-io --> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> <version>2.6</version> </dependency> <!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-core-asl --> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-core-asl</artifactId> <version>1.9.13</version> </dependency> <!-- 發(fā)送短信所需要的jar包 --> <!-- https://mvnrepository.com/artifact/com.aliyun/aliyun-java-sdk-core --> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.0.8</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.1.0</version> </dependency> <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson --> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.4</version> </dependency> </dependencies> <!-- 編譯 --> <build> <!-- 插件 --> <plugins> <!-- maven插件 --> <plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Python獲取抖音關(guān)注列表封號(hào)賬號(hào)的實(shí)現(xiàn)代碼2. ajax請(qǐng)求添加自定義header參數(shù)代碼3. Python數(shù)據(jù)分析之pandas函數(shù)詳解4. 解決Python 進(jìn)程池Pool中一些坑5. php測試程序運(yùn)行速度和頁面執(zhí)行速度的代碼6. 無線標(biāo)記語言(WML)基礎(chǔ)之WMLScript 基礎(chǔ)第1/2頁7. 三個(gè)不常見的 HTML5 實(shí)用新特性簡介8. 使用.net core 自帶DI框架實(shí)現(xiàn)延遲加載功能9. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究10. Warning: require(): open_basedir restriction in effect,目錄配置open_basedir報(bào)錯(cuò)問題分析
