SpringBoot整合阿里云短信服务的方法

目录
  • 一、新建短信微服务
    • 1、在service模块下创建子模块service-msm
    • 3.配置application.properties
    • 4、创建启动类
  • 二、阿里云短信服务
  • 三、编写发送短信接口
    • 1.在service-msm的pom中引入依赖
    • 2.编写controller,根据手机号发送短信
    • 3.编写service

一、新建短信微服务

1、在service模块下创建子模块service-msm

2.创建controller和service代码

3.配置application.properties

# 服务端口
server.port=8006
# 服务名
spring.application.name=service-msm

# mysql数据库连接
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8
spring.datasource.username=root
spring.datasource.password=root

spring.redis.host=192.168.44.131
spring.redis.port=6379
spring.redis.database= 0
spring.redis.timeout=1800000

spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=-1
  #最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0
  #最小空闲

#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8

#配置mapper xml文件的路径
mybatis-plus.mapper-locations=classpath:com/atguigu/cmsservice/mapper/xml/*.xml

#mybatis日志
mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

4、创建启动类

@ComponentScan({"com.south"})
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置
public class ServiceMsmApplication {
	public static void main(String[] args) {
		SpringApplication.run(ServiceMsmApplication.class, args);
	}
}

二、阿里云短信服务

帮助文档:

https://help.aliyun.com/product/44282.html?spm=5176.10629532.0.0.38311cbeYzBm73

三、编写发送短信接口

1.在service-msm的pom中引入依赖

  <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
        </dependency>
    </dependencies>

2.编写controller,根据手机号发送短信

@CrossOrigin //跨域
public class MsmApiController {

    @Autowired
    private MsmService msmService;

    @Autowired
    private RedisTemplate<String, String> redisTemplate;

    @GetMapping(value = "/send/{phone}")
    public R code(@PathVariable String phone) {
        String code = redisTemplate.opsForValue().get(phone);
        if(!StringUtils.isEmpty(code)) return R.ok();

        code = RandomUtil.getFourBitRandom();
        Map<String,Object> param = new HashMap<>();
        param.put("code", code);
        boolean isSend = msmService.send(phone, "SMS_180051135", param);
        if(isSend) {
            redisTemplate.opsForValue().set(phone, code,5,TimeUnit.MINUTES);
            return R.ok();
        } else {
            return R.error().message("发送短信失败");
        }
    }
}

3.编写service

@Service
public class MsmServiceImpl implements MsmService {

    /**
     * 发送短信
     */
    public boolean send(String PhoneNumbers, String templateCode, Map<String,Object> param) {

        if(StringUtils.isEmpty(PhoneNumbers)) return false;

        DefaultProfile profile =
                DefaultProfile.getProfile("default", "LTAIq6nIPY09VROj", "FQ7UcixT9wEqMv9F35nORPqKr8XkTF");
        IAcsClient client = new DefaultAcsClient(profile);

        CommonRequest request = new CommonRequest();
        //request.setProtocol(ProtocolType.HTTPS);
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");

        request.putQueryParameter("PhoneNumbers", PhoneNumbers);
        request.putQueryParameter("SignName", "我的谷粒在线教育网站");
        request.putQueryParameter("TemplateCode", templateCode);
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param));

        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            return response.getHttpResponse().isSuccess();
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return false;
    }
}

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

(0)

相关推荐

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

    前言 短信验证码是通过发送验证码到手机的一种有效的验证码系统.主要用于验证用户手机的合法性及敏感操作的身份验证. 现在市面上的短信服务平台有很多.大家在选择的时候未免会有些不好抉择.本人建议选择短信服务商应遵循以下几点: 服务商知名度高,业务流量大.(这样的平台可信度高) 服务稳定,不能经常宕机.(保证自身业务的流畅运行) 文档全面详细.(没文档怎么玩?) 最近的一个项目中,注册和修改密码时需要用到短信验证码校验手机号的功能.本人也是对比几家后,直接选择阿里云通信的短信服务.(本身项目服务器也是

  • SpringBoot实现阿里云短信接口对接的示例代码

    前言 公司最近项目需要一个手机验证码的功能,任务确定后,倍感亚历山大,以为和第三方对接的都好麻烦,查阿里的API.网上大神写的博客,各种查之后才发现,简单的一塌糊涂,这里想说个问题,不知道其他的攻城狮们是不是和我一样的心里,刚接触个没做过的任务时,会一脸懵里的着急,无从下手的感觉,后来会了,就觉得简单的一*,在这里我说一下自己的体会,遇到任何难点,先理思路.任务拆分.逐个查资料,其实一套下来,就不会那种一脸懵逼的干着急... 所需条件 1.阿里云账户 2.开通云通讯中的短信服务 3.申请短信签名

  • 关于springboot集成阿里云短信的问题

    目录 1.获取签名与模板 2.编写模板与签名的枚举类 3.配置类 4.测试类 ​ 1.获取签名与模板 进入阿里云平台,进入短信服务模块,在以下位置添加签名和模板(格式一定按照要求填写 审批的比较严格) 2.编写模板与签名的枚举类 在上文获取模板与签名成功后,并作为常量放在枚举类中. public enum DySmsEnum { /** * 本类此处需要修改(短信模板编码,签名,参数) */ LOGIN_TEMPLATE_CODE("SMS_187570276", "自定义软

  • SpringBoot整合阿里云短信服务的方法

    目录 一.新建短信微服务 1.在service模块下创建子模块service-msm 3.配置application.properties 4.创建启动类 二.阿里云短信服务 三.编写发送短信接口 1.在service-msm的pom中引入依赖 2.编写controller,根据手机号发送短信 3.编写service 一.新建短信微服务 1.在service模块下创建子模块service-msm 2.创建controller和service代码 3.配置application.propertie

  • 实战分布式医疗挂号系统登录接口整合阿里云短信详情

    目录 步骤1:搭建service-user用户模块 1.启动类&配置网关 步骤2:整合JWT 步骤3: 搭建service-msm短信模块(整合阿里云短信) 1.启动类&配置网关 4.三层调用 步骤4:登录页面前端 1.封装api请求 2.添加登录组件 3.登录全局事件 附加:用户认证与网关整合 1.在服务网关添加fillter 2.调整前端代码 本篇文章完成的需求: 1,登录采取弹出层的形式. 2,登录方式: (1)手机号码+手机验证码 (2)微信扫描(后文完成) 3,无注册界面,第一次

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

    阿里云accessID和secret请自行进入阿里云申请 sms.template.code 请进入阿里云,进行短信服务进行魔板添加 开源代码地址在文章末尾 话不多说,直接上代码: application.properties: server.port=8002 #server.servlet.context-path=/ spring.datasource.url=jdbc:mysql://localhost:3306/ssm_message?useUnicode=true&character

  • springboot整合阿里云oss上传的方法示例

    OSS申请和配置 1. 注册登录 输入网址:https://www.aliyun.com/product/oss 如果没有账号点击免费注册,然后登录. 2.开通以及配置 点击立即开通 进入管理控制台 第一次使用会出现引导,按引导点击"我知道了",然后点击创建Bucket. 如果没有存储包或流量包点击购买. 点击确定,返回主页面,出现该页面,点击我知道了 将EndPoint记录下来,方便后期添加到我们项目的配置文件中 创建 AccessKeyID 和 AccessKeySecret 点击

  • php与阿里云短信接口接入操作案例分析

    本文实例讲述了php与阿里云短信接口接入操作.分享给大家供大家参考,具体如下: 使用阿里云短信API,需要在控制台获取以下必要参数,其中需要自己手机验证+官方审核多次,尤其审核需要保持耐心. 1. accessKeyId  相当于你的个人账户密钥: 2. accessKeySecret 与上是成对的: 3. SignName  个人签名,在发出去的短信中,这个签名会显示在开头,类似 [签名]亲爱的用户...... 这种格式,SignName需要通过提交审核: 4.TemplateCode  模板

  • Java实现阿里云短信接口的示例

    阿里云短信服务接口 阿里云短信服务(Short Message Service)是阿里云为用户提供的一种通信服务的能力. 支持向国内和国际快速发送验证码.短信通知和推广短信,服务范围覆盖全球200多个国家和地区.国内短信支持三网合一专属通道,与工信部携号转网平台实时互联.电信级运维保障,实时监控自动切换,到达率高达99%.完美支撑双11期间20亿短信发送,6亿用户触达. 快速开发 ①开启短信服务 1)登陆阿里云服务平台 2)选择控制台 3)点击左上角下拉按钮选择短信服务 4)开通短信服务 ②实名

  • 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

  • SpringBoot整合阿里云OSS对象存储服务的实现

    今天来整合一下SpringBoot和阿里云OSS对象存储服务. 一.配置OSS服务 先在阿里云开通对象存储服务,拿到AccessKeyId.AccessKeySecret. 创建你的bucket(存储空间),相当于一个一个的文件夹目录.按业务需求分类存储你的文件,图片,音频,app包等等.创建bucket是要选择该bucket的权限,私有,公共读,公共读写,按需求选择.创建bucket时对应的endpoint要记住,上传文件需要用到. 可以配置bucket的生命周期,比如说某些文件有过期时间的,

随机推荐