application.yml:
Ali cloud messaging services to their own application modules
accessKeyId:
accessKeySecret:
Write configuration class reads the configuration file
@ConfigurationProperties(prefix = "ximen.sms") @Component public class SmsProperties { private String accessKeyId; private String accessKeySecret; private String signName; private String verifyCodeTemplate; public String getAccessKeyId() { return accessKeyId; } public void setAccessKeyId(String accessKeyId) { this.accessKeyId = accessKeyId; } public String getAccessKeySecret() { return accessKeySecret; } public void setAccessKeySecret(String accessKeySecret) { this.accessKeySecret = accessKeySecret; } public String getSignName() { return signName; } public void setSignName(String signName) { this.signName = signName; } public String getVerifyCodeTemplate() { return verifyCodeTemplate; } public void setVerifyCodeTemplate(String verifyCodeTemplate) { this.verifyCodeTemplate = verifyCodeTemplate; } }
Send SMS tools:
/ ** * @Feature: Short Message Service Tools * / @Component public class SmsUtils { @Autowired Private SmsProperties the Properties; / ** * Name: Cloud Communications SMS API product, developers do not need to replace * / static Final String = Product " Dysmsapi " ; / ** * product domain, developers do not need to replace * / static Final String domain =" dysmsapi.aliyuncs.com " ; static Final Logger Logger = LoggerFactory.getLogger (SmsUtils. class ); public SendSmsResponse sendSms (String Phone, code String, String signName, String Template) throws{ClientException // can be self-adjusted timeout System.setProperty ( "sun.net.client.defaultConnectTimeout", "10000" ); System.setProperty ( "sun.net.client.defaultReadTimeout", "10000" ); // initialize acsClient, does not support region of IClientProfile Profile = DefaultProfile.getProfile ( "CN-Hangzhou" , properties.getAccessKeyId (), properties.getAccessKeySecret ()); DefaultProfile.addEndpoint ( "CN-Hangzhou", "CN-Hangzhou" , Product , Domain); IAcsClient acsClient = new new DefaultAcsClient (Profile); // assembly request object - particularly described Console - part document SendSmsRequest = Request new newSendSmsRequest (); request.setMethod (MethodType.POST); // Required: phone number to be sent request.setPhoneNumbers (Phone); // Required: SMS signature - can be found in the SMS console request.setSignName (signName); // required: SMS templates - can be found in the SMS console request.setTemplateCode (template); // optional: template variable substitution JSON string, such as the template reads "Dear $ {name}, your verification code to $ {code} ", the value herein request.setTemplateParam (" {\ "code \": \ "" + + code "\"} " ); // oPTIONAL - uplink spread code message (no specific Please ignore the needs of users in this field) // request.setSmsUpExtendCode ( "90997"); // optional: outId is provided to the business side extension field, culminating in an SMS message receipt this value back to the caller request.setOutId ( "123456"); //Here hint may throw exceptions, noted that the catch SendSmsResponse sendSmsResponse = acsClient.getAcsResponse (Request); return sendSmsResponse; } }
rely:
<dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.1.0</version> </dependency> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-dysmsapi</artifactId> <version>1.1.0</version> </dependency>