我的编程空间,编程开发者的网络收藏夹
学习永远不晚

SpringBoot整合阿里云开通短信服务详解

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

SpringBoot整合阿里云开通短信服务详解

准备工作

开通短信服务

如果开通不成功,就只能借下别人已经开通好的短信,如果不想重复,可在其下创建一个新的模板管理

这里只是介绍如何使用

导入依赖

com.aliyun aliyun-java-sdk-core 4.5.1 com.aliyun aliyun-java-sdk-dysmsapi 1.1.0 com.alibaba fastjson 1.2.62

发送验证码到手机上,验证码生成工具类(内容较为固定,也可根据需求改)

package com.xsha.msmservice.utils;

import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Random;


public class RandomUtil {

	private static final Random random = new Random();

	private static final DecimalFormat fourdf = new DecimalFormat("0000");

	private static final DecimalFormat sixdf = new DecimalFormat("000000");

	public static String getFourBitRandom() {
		return fourdf.format(random.nextInt(10000));
	}

	public static String getSixBitRandom() {
		return sixdf.format(random.nextInt(1000000));
	}

	
	public static ArrayList getRandom(List list, int n) {

		Random random = new Random();

		HashMap<Object, Object> hashMap = new HashMap<Object, Object>();

		// 生成随机数字并存入HashMap
		for (int i = 0; i < list.size(); i++) {

			int number = random.nextInt(100) + 1;

			hashMap.put(number, i);
		}

		// 从HashMap导入数组
		Object[] robjs = hashMap.values().toArray();

		ArrayList r = new ArrayList();

		// 遍历数组并打印数据
		for (int i = 0; i < n; i++) {
			r.add(list.get((int) robjs[i]));
			System.out.print(list.get((int) robjs[i]) + "\t");
		}
		System.out.print("\n");
		return r;
	}
}

发送验证码,验证码是有有效时间的(时间可以自己设置)

这里可以创建常量类读取配置文件的阿里云密钥等信息

package com.xsha.msmservice.service.impl;

import com.alibaba.fastjson.JSONObject;
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.exceptions.ServerException;
import com.aliyuncs.profile.DefaultProfile;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.xsha.msmservice.service.MsmService;
import com.xsha.msmservice.utils.RandomUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.Map;
import java.util.concurrent.TimeUnit;


@Service
public class MsmServiceImpl implements MsmService {

    // 注入redis缓存对象
    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @Override
    public boolean sendMessage(String phone) {
        if(StringUtils.isEmpty(phone)) return false;
        // 先获取手机号对应的验证码(该验证码没过期)
        String code = redisTemplate.opsForValue().get(phone);
        if(!StringUtils.isEmpty(code)) {
            return true;
        }
        // 过期则生成随机验证码,并在发送之后向redis中存入手机号对应的验证码
        code = RandomUtil.getFourBitRandom();
        Map<String, Object> map = new HashMap<>();
        map.put("code", code);

        // 设置短信配置
        DefaultProfile profile = DefaultProfile.getProfile("your region", "your accessId", "your accessSecret");

        IAcsClient client = new DefaultAcsClient(profile);

        SendSmsRequest request = new SendSmsRequest();
        request.setPhoneNumbers(phone);//接收短信的手机号码
        request.setSignName("your signature name");//短信签名名称
        request.setTemplateCode("your template");//短信模板CODE
        request.setTemplateParam(JSONObject.toJSONString(map));//短信模板变量对应的实际值

        try {
            SendSmsResponse response = client.getAcsResponse(request);
            // 发送短信,尽量打印出来是否发送成功
            new Gson().toJson(response);
            // 将验证码放置在redis缓存中,并设置5分钟有效时间,最后一个参数是单位
            redisTemplate.opsForValue().set(phone, code, 5, TimeUnit.MINUTES);
        } catch (ServerException e) {
            e.printStackTrace();
            return false;
        } catch (ClientException e) {
            e.printStackTrace();
            return false;
        }
        return true;
    }
}

到此这篇关于SpringBoot整合阿里云开通短信服务详解的文章就介绍到这了,更多相关SpringBoot阿里云短信内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

SpringBoot整合阿里云开通短信服务详解

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

阿里云短信服务代理怎么开通

开通流程注册阿里云账号首先,您需要在阿里云官网上注册一个阿里云账号。注册时需要提供一些个人信息,包括姓名、身份证号码等。注册成功后,您需要绑定手机号码和银行卡等信息,以便使用短信服务代理进行短信发送。下载阿里云短信服务代理软件在注册成功后,您需要下载阿里云短信服务代理软件。在官网上可以下载最新版本的软件,下载完成后可以
2023-10-27

Springboot实现阿里云通信短信服务有关短信验证码的发送功能

前言短信验证码是通过发送验证码到手机的一种有效的验证码系统。主要用于验证用户手机的合法性及敏感操作的身份验证。现在市面上的短信服务平台有很多。大家在选择的时候未免会有些不好抉择。本人建议选择短信服务商应遵循以下几点: 服务商知名度高,业务
2023-05-31

详解dedecms使用整合阿里大鱼短信接口进行短信发送的教程

阿里大鱼虽免费,但不足的是内容、签名什么都要进行审核,且短信内容必须以模版方式进行调用,不能根据自己的需求随意发送, 接下介绍下阿里大鱼免费短信具体实现方法,该方法php程序可通用。 首先要去阿里大鱼下载sdk,引用其中5个基础文件即可,然
2022-06-12

阿里云服务器发送短信功能详解

阿里云服务器作为阿里集团提供的云服务产品,具有强大的功能和灵活性。本文将详细介绍阿里云服务器发送短信功能的实现方式和使用方法,帮助用户更好地了解和利用这一功能。正文:一、阿里云服务器发送短信功能简介阿里云服务器发送短信功能是阿里云服务器提供的一个重要功能,可以帮助用户通过服务器向手机、座机等移动设备发送短信。这一
阿里云服务器发送短信功能详解
2023-11-12

阿里云服务器开通流程详解

访问阿里云官网,了解更多阿里云产品及服务信息。点击“注册账号”或“获取礼金”按钮,进入注册页面。输入手机号或邮箱等个人信息,并点击“提交”按钮。在弹出的注册页面中,填写必要的基本信息,包括:a.邮箱地址或手机号码。b.密码。c.选择服务类型,并选择服务器所在地。选择服务器类型及服务费用。输入服务器配置信息,包括:主机IP、云盘容量、数据库类型等。点击“提交”按钮,等待阿里云审核通过。成功开通阿里云服务器...
2023-10-27

如何恢复阿里云服务器到期短信通知

随着云计算技术的不断发展,越来越多的企业和个人开始使用阿里云服务器。然而,有时我们可能会忘记服务器的到期时间,导致错过了到期短信通知。本文将详细介绍如何恢复阿里云服务器到期短信通知。一、阿里云服务器到期短信通知的重要性阿里云服务器到期通知的重要性不容忽视。首先,它是提醒用户及时续费,避免服务器被自动关闭,从而导致
如何恢复阿里云服务器到期短信通知
2023-11-04

阿里云服务器短信群发教程从入门到精通

本文将详细介绍如何在阿里云服务器上进行短信群发。包括选择适合的短信服务、设置短信群发参数、编写短信发送代码等步骤。无论你是初学者还是有一定经验的开发者,都可以从本文中获得帮助。阿里云服务器是阿里云推出的一种云服务器产品,它可以提供弹性的计算、存储、网络、安全、管理等服务。在阿里云服务器上进行短信群发,可以帮助我们
阿里云服务器短信群发教程从入门到精通
2023-12-16

阿里云短信消息服务器错误解析与解决

在使用阿里云短信消息服务器的过程中,可能会遇到各种错误,其中一种常见的错误是“阿里云短信消息服务器错误”。本文将详细解析这种错误,并提供相应的解决方法。阿里云短信消息服务器错误解析:阿里云短信消息服务器错误可能是由于多种原因导致的,如网络问题、服务器问题、API调用错误等。首先,需要检查网络连接是否稳定,是否有防
阿里云短信消息服务器错误解析与解决
2023-10-31

阿里云短信消息服务器错误怎么解决

阿里云短信消息服务是一种常见的用于向用户发送短信的工具,但在使用过程中可能会遇到一些错误。本文将介绍如何解决阿里云短信消息服务器出现的错误。错误原因阿里云短信消息服务器错误的原因可能有很多种。以下是一些常见原因:未开启短信权限:在使用阿里云短信服务之前,需要在应用的权限管理中开启短信权限。短信签名或模板审核未通过:如果
阿里云短信消息服务器错误怎么解决
2023-12-27

阿里云服务器短信收费和安全性解析

本文将探讨阿里云服务器短信服务的收费情况以及其在安全性方面的表现。阿里云作为全球领先的云计算服务提供商,提供了丰富的云计算产品和解决方案,其中包括短信服务。本文将解答一些关于阿里云服务器短信的疑问,并提供相关的实例来说明。1.阿里云服务器短信收费情况阿里云服务器短信服务是按量付费的,即根据实际发送的短信数量进行计
阿里云服务器短信收费和安全性解析
2024-01-17

阿里云服务器告警信息详解阿里云服务器告警信息

阿里云服务器是一种基于云计算技术的服务器产品,它可以帮助企业快速搭建和管理云服务器,提高业务效率。然而,由于各种原因,阿里云服务器可能会出现告警信息,这可能会对业务产生影响。本文将详细解释阿里云服务器告警信息是什么,以及如何处理这些告警信息。阿里云服务器告警信息是指阿里云服务器在运行过程中出现的警告信息。这些警告
阿里云服务器告警信息详解阿里云服务器告警信息
2023-11-01

阿里云服务器欠费来短信提醒如何解决?

阿里云是目前中国最大的云计算服务提供商,许多企业和个人都在使用阿里云的服务器服务。然而,由于各种原因,用户可能会出现服务器欠费的情况。一旦出现这种情况,阿里云就会发送短信提醒用户。这篇文章将详细介绍如何解决阿里云服务器欠费来短信的问题。正文:阿里云服务器欠费来短信提醒,这是一个常见的问题,许多用户可能都会遇到。这
阿里云服务器欠费来短信提醒如何解决?
2023-11-18

阿里云通信服务器高效稳定的通信解决方案

随着互联网的快速发展,通信技术已经成为了我们日常生活和工作中不可或缺的一部分。作为全球领先的云计算服务提供商,阿里云推出了一系列通信服务器,旨在为用户提供高效稳定的通信解决方案。本文将详细介绍阿里云通信服务器的特点和优势。一、阿里云通信服务器的特点高性能:阿里云通信服务器采用最新的处理器和高速缓存技术,能够处理大
阿里云通信服务器高效稳定的通信解决方案
2023-11-01

阿里云服务器时间调整技巧详解

本文将详细解析如何在阿里云服务器上调整时间长度,包括步骤、方法以及注意事项。无论你是初学者还是经验丰富的服务器管理员,都能从中获益。正文:在云计算时代,阿里云服务器作为一种高效的计算资源,已经广泛应用于各个领域。然而,在使用过程中,我们可能会遇到一些问题,如如何调整服务器时间长度。本文将为您详细解答这个问题。步骤
阿里云服务器时间调整技巧详解
2024-01-25

阿里云服务器信用卡支付详解

本文将详细介绍如何通过信用卡支付阿里云服务器费用,包括支付流程、支付注意事项以及常见问题解答。正文:阿里云服务器是阿里云提供的云计算服务,用户可以通过阿里云服务器进行网站部署、应用运行、数据存储等操作。在使用阿里云服务器时,用户需要支付服务器的费用。本文将详细介绍如何通过信用卡支付阿里云服务器费用。一、支付流程首
阿里云服务器信用卡支付详解
2023-11-23

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录