SpringBoot实现阿里云短信发送的示例代码

下面是详细讲解“SpringBoot实现阿里云短信发送的示例代码”的完整攻略,包含示例说明:

1. 注册阿里云短信服务

  • 首先需要在阿里云官网上注册一个账号,进入控制台后选择开通短信服务。
  • 开通短信服务后,获取AccessKey ID和AccessKey Secret。

2. 添加阿里云短信依赖

在SpringBoot项目中,使用Maven或Gradle添加阿里云短信依赖。以Maven为例,添加如下依赖:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-sms</artifactId>
    <version>1.0.0</version>
</dependency>

3. 配置阿里云短信服务信息

在application.yml或application.properties文件中配置阿里云短信的AccessKey ID和AccessKey Secret等信息。

aliyun:
  access-key-id: 你的AccessKey ID
  access-key-secret: 你的AccessKey Secret
  sms:
    sign-name: 你的短信签名
    template-code: 你的短信模板代码

4. 编写阿里云短信发送服务类

在SpringBoot项目中,创建一个短信发送服务类,用于调用阿里云短信API发送短信。示例代码如下:

@Service
public class SmsService {

    @Value("${aliyun.sms.sign-name}") // 从配置文件中获取短信签名
    private String signName;

    @Value("${aliyun.sms.template-code}") // 从配置文件中获取短信模板代码
    private String templateCode;

    /**
     * 发送短信
     *
     * @param phoneNumbers 手机号码,多个号码用逗号隔开
     * @param params       短信参数,格式为{"key1":"value1","key2":"value2"}
     * @return 发送是否成功
     */
    public boolean sendSms(String phoneNumbers, Map<String, String> params) {
        try {
            // 实例化阿里云短信服务的API请求对象
            DefaultProfile profile = DefaultProfile.getProfile("default", accessKeyId, accessKeySecret);
            IAcsClient client = new DefaultAcsClient(profile);
            CommonRequest request = new CommonRequest();
            request.setMethod(MethodType.POST);
            request.setDomain("dysmsapi.aliyuncs.com");
            request.setVersion("2017-05-25");
            request.setAction("SendSms");
            request.putQueryParameter("PhoneNumbers", phoneNumbers);
            request.putQueryParameter("SignName", signName);
            request.putQueryParameter("TemplateCode", templateCode);
            request.putQueryParameter("TemplateParam", JSON.toJSONString(params));

            // 发送短信
            CommonResponse response = client.getCommonResponse(request);
            return response.getHttpResponse().isSuccess() && response.getData().contains("\"Code\":\"OK\"");
        } catch (Exception e) {
            e.printStackTrace();
        }
        return false;
    }
}

在sendSms方法中,调用阿里云短信API发送短信。其中,phoneNumbers参数表示要发送短信的手机号码,params参数表示短信模板中的参数,格式为JSON字符串。

5. 使用短信发送服务类发送短信

在需要发送短信的地方,注入短信发送服务类,调用sendSms方法发送短信。示例代码如下:

@RestController
public class SmsController {

    @Autowired
    private SmsService smsService;

    @PostMapping("/send/sms")
    public boolean sendSms(@RequestParam("phoneNumbers") String phoneNumbers,
                           @RequestParam("code") String code) {
        Map<String, String> params = new HashMap<>();
        params.put("code", code);
        return smsService.sendSms(phoneNumbers, params);
    }
}

在sendSms方法中,调用smsService.sendSms方法发送短信。其中,phoneNumbers参数表示要发送短信的手机号码,code参数表示短信验证码。

示例说明:

这里给出两个示例,分别是:

  1. 在注册页面中发送短信验证码

在注册页面中,用户输入手机号码后,点击发送验证码按钮,通过调用短信发送服务类发送验证码。前端代码如下:

// 点击发送验证码按钮
$('#sendCode').click(function () {
    // 获取用户输入的手机号码
    var phoneNumber = $('#phoneNumber').val();
    // 向后端API发送请求,调用短信发送服务类发送验证码
    $.post('/send/sms', {phoneNumbers: phoneNumber, code: '123456'}, function (result) {
        if (result) {
            alert('验证码发送成功!');
        } else {
            alert('验证码发送失败!');
        }
    });
});

后端代码如下:

@RestController
public class SmsController {

    @Autowired
    private SmsService smsService;

    @PostMapping("/send/sms")
    public boolean sendSms(@RequestParam("phoneNumbers") String phoneNumbers,
                           @RequestParam("code") String code) {
        Map<String, String> params = new HashMap<>();
        params.put("code", code);
        return smsService.sendSms(phoneNumbers, params);
    }
}
  1. 在找回密码页面中发送短信验证码

在找回密码页面中,用户输入手机号码后,点击发送验证码按钮,通过调用短信发送服务类发送验证码。前端代码如下:

// 点击发送验证码按钮
$('#sendCode').click(function () {
    // 获取用户输入的手机号码
    var phoneNumber = $('#phoneNumber').val();
    // 向后端API发送请求,调用短信发送服务类发送验证码
    $.post('/send/sms', {phoneNumbers: phoneNumber, code: '654321'}, function (result) {
        if (result) {
            alert('验证码发送成功!');
        } else {
            alert('验证码发送失败!');
        }
    });
});

后端代码同上。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:SpringBoot实现阿里云短信发送的示例代码 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • 通过Java组合问题看透回溯法

    通过Java组合问题看透回溯法的完整攻略可以分为以下几个步骤: 1. 确定问题模型 首先,我们需要确定问题模型。以Java组合问题为例,问题模型是在给定的n个数字中,任选k个数字,求它们的组合。 2. 定义回溯函数 接下来,我们需要定义回溯函数。回溯函数是实现回溯功能的主要函数。以Java组合问题为例,回溯函数需要有以下参数:- nums:可选数字的集合- …

    Java 2023年5月19日
    00
  • sourceTree合并一次提交的内容

    sourceTree合并一次提交的内容 在基于git的开发中,经常遇到不同分支需要合并某一次特定的提交的代码,而不是合并整个代码。 场景:A分支是通用分支,B分支是私有化分支,现在A分支修改了一个通用的功能,需要合并到B分支上,功能在一次提交上。B分支只需要这次提交的代码,对A分支上改动的其他代码都不感兴趣。对此,常规的merge已经不能满足我们的需求。 1…

    Java 2023年4月27日
    00
  • java必学必会之线程(2)

    Java必学必会之线程(2)攻略 线程同步 在多线程编程中,线程同步是一个非常重要的问题。如果不加以控制,在多线程同时访问共享资源的情况下,可能会导致数据不一致、死锁等问题。 同步的两种方式 Java 中实现同步的两种方式分别是 synchronized 和 ReentrantLock。 synchronized 关键字是 Java 提供的默认的语言级别的同…

    Java 2023年5月30日
    00
  • C# 邮箱mail 发送类

    C# 发送邮件类使用攻略 1.前言 在 Web 应用程序开发中,邮件功能是非常常见的一个需求。C# 提供了一些内置类库,可以轻松实现邮件的发送和接收。 本文将通过一些示例,带领读者了解 C# 中如何发送邮件。 2.准备工作 在开始之前,我们需要准备以下内容: 一个邮箱账号,用于发送邮件。 SMTP 服务器地址和端口号。SMTP(Simple Mail Tra…

    Java 2023年5月19日
    00
  • Struts2之Validator验证框架的详细介绍

    Struts2之Validator验证框架详细介绍 Validator是Struts2的核心验证框架之一,它通过在Action中添加验证规则来确认表单数据的有效性。Validator提供了大量的验证方法,比如检查字符串长度、格式、是否为空等等。 常用验证方法 Validator提供了许多常用的验证方法,常用的方法如下: required:检查字段必填 str…

    Java 2023年5月20日
    00
  • Java线程的五种状态介绍

    Java线程的五种状态介绍 Java中的线程生命周期可以分为五个主要状态,这些状态由JVM中的线程调度器控制,包括:新建状态、就绪状态、运行状态、阻塞状态和死亡状态。每个线程可以在此生命周期中进入不同的状态。 新建状态 当新创建一个线程时,该线程还没有开始执行,并且尚未由JVM分配线程所需的所有资源。这个状态下线程的代码并没有开始运行,直到调用start()…

    Java 2023年5月18日
    00
  • java 获取冒号后面的参数(正则)实现代码

    获取冒号后面的参数可以使用正则表达式进行匹配。以下是一个实现代码的完整攻略: 首先,我们需要从文本中匹配出所有的冒号后面的参数,可以使用正则表达式来完成。Java中使用Pattern类和Matcher类来完成正则表达式的匹配。 正则表达式的模式应该为冒号后面的任意字符,可以使用“:.+”表示,其中“:”表示冒号,“.”表示匹配任意字符,“+”表示匹配前面的字…

    Java 2023年6月15日
    00
  • mybatis二级缓存的实现代码

    MyBatis是一款优秀的ORM框架,并支持一级和二级缓存,其中二级缓存存在于SqlSessionFactory的生命周期内,能够提高查询效率,本文将详细讲解MyBatis二级缓存的实现代码攻略。下面分以下几步进行讲解: 一、开启二级缓存 MyBatis默认是关闭二级缓存的,需要手动开启。在MyBatis的配置文件中添加一行配置: <!–开启二级缓存…

    Java 2023年6月1日
    00
合作推广
合作推广
分享本页
返回顶部