1.请先pom引入阿里云依赖
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
2.新建 sendEmail 此为发送阿里云短信核心代码 其他所需要发送短信时调用此 service里面
sendEmail方法传入 对方手机号码及code 6位随机数最好 发送完成后别忘了将随机数存入redis
package com.keyan.system.modules.system.conf;
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.profile.DefaultProfile;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class SendSms {
/**
* 阿里云短信发送
*/
public boolean sendEmail(String phoneNumbers, String code) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "阿里云控制台获取", "阿里云控制台获取");
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
// 设置短信接收号码,即短信发送目标手机号码。需要注意的是,阿里云短信服务只支持中国境内的手机号码。
request.setPhoneNumbers(phoneNumbers);
// 设置短信签名,即短信发送方名称。需要在阿里云控制台申请短信签名并通过审核后才能使用。
request.setSignName("");
// 设置短信模板编号,即短信模板 ID。需要在阿里云控制台申请短信模板并通过审核后才能使用。
request.setTemplateCode("");
// 设置短信模板参数,以 JSON 格式的字符串表示。短信模板中需要动态替换的变量可以在此处进行设置
request.setTemplateParam("{\"code\": \"" + code + "\"}");
try {
SendSmsResponse response = client.getAcsResponse(request);
}catch (ClientException e) {
}
return true;
}
}
3.需要发送验证码的地方引入 SendSms 方法内 先生成6位随机数,调用发送短信方法传入手机号及验证码,此次可以在增加判断如果返回fales返回什么什么,我没有写。。。。。。有一丢丢懒了,后面存入redis 留着注册时验证,短信验证码。
@Resource
private final SendSms sendSmson;
4.验证短信验证码 上面存入redis的时候key是目标手机号 取出的时候也是通过手机号去取,然后判断,最后删除redis存入的此条数据。