java使用阿里云发送短信验证码(随机生成验证码)
在使用前先要开通阿里云的短信服务功能,并且申请通过短信模板和短信签名(重要)!
需要的依赖:
<dependency><groupId>com.aliyungroupId><artifactId>dysmsapi20170525artifactId><version>2.0.9version>
dependency>
<dependency><groupId>cn.hutoolgroupId><artifactId>hutool-allartifactId><version>5.8.15version>
dependency>
功能的实现:
package com.qian.chatgpt.util;import cn.hutool.core.util.RandomUtil;
import com.aliyun.dysmsapi20170525.Client;
import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
import com.aliyun.teaopenapi.models.Config;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;/*** @author gqs* @date 2023/6/7 17:27* @description 短信工具类*/
@Component
@Data
/***从yml配置文件中读取
*/
@ConfigurationProperties("sms")
public class SMSUtil {/*** 获取你的accessKeyId*/private String accessKeyId;/*** 获取你的accessKeySecret*/private String accessKeySecret;/*** 获取你的短信模板CODE*/private String TemplateCode;/*** 获取你的短信签名名称*/private String SignName;/**** @param accessKeyId* @param accessKeySecret* @return Client* @throws Exception*/public com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {Config config = new Config()// 您的AccessKey ID.setAccessKeyId(accessKeyId)// 您的AccessKey Secret.setAccessKeySecret(accessKeySecret);// 访问的域名config.endpoint = "dysmsapi.aliyuncs.com";return new com.aliyun.dysmsapi20170525.Client(config);}public void send(String codeParam, String PhoneNumbers) throws Exception {Client client = this.createClient(accessKeyId, accessKeySecret);SendSmsRequest sendSmsRequest = new SendSmsRequest().setPhoneNumbers(PhoneNumbers).setSignName(SignName).setTemplateCode(TemplateCode).setTemplateParam("{\"code\":" + codeParam+ "}");// 复制代码运行请自行打印 API 的返回值client.sendSms(sendSmsRequest);}/*** @return 返回4位随机生成的验证码*/public String Random4() {int code = RandomUtil.randomInt(1000, 9999);return String.valueOf(code);}/*** @return 返回6位随机生成的验证码*/public String Random6() {int code = RandomUtil.randomInt(100000, 999999);return String.valueOf(code);}}
在配置文件yml中加
sms:accessKeyId: LT**************KPonaccessKeySecret: PyT******************fnvTemplateCode: SMS_******574SignName: 东************室
测试:
import com.qian.chatgpt.util.SMSUtil;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;@SpringBootTest
class MySecurityApplicationTests {@Autowiredprivate SMSUtil smsUtil;@Testvoid sms() throws Exception {String code = smsUtil.Random6();System.out.println(code);smsUtil.send(code,"17339811151");}
}
发送成功!
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
