springboot 手机发送阿里云短信验证码

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", "LTAI5tGudtRZoN1Zh1DfVL6M", "wkp6SEA9jMzRae20UOsOrscFlsgk65");
        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存入的此条数据。

猜你喜欢

转载自blog.csdn.net/m0_62248493/article/details/129708885