阿里云短信发送接口实现

2023-11-14

使用阿里云短信接口发送验证码

1. 引入依赖

springboot 工程引入web 引入 lombok
关键代码引入

<!--阿里云短信服务-->
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>dysmsapi20170525</artifactId>
  <version>2.0.23</version>
</dependency>

<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>tea-openapi</artifactId>
  <version>0.2.8</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>tea-console</artifactId>
  <version>0.0.1</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>tea-util</artifactId>
  <version>0.2.16</version>
</dependency>
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>tea</artifactId>
  <version>1.1.14</version>
</dependency>

2.创建配置文件

aliyun.accessKeyId=你的accessKeyId
aliyun.accessKeySecret=你的accessKeySecret
aliyun.securityToken="test";

3. SMSConfig.java

@PropertySource("classpath:aliyun.properties")
//前缀
@ConfigurationProperties(prefix = "aliyun")
@Component
@Data
public class SMSConfig {
    private String accessKeyId;
    private String accessKeySecret;

    private String securityToken ;

    public SMSConfig() {
    }

    /**
     * 使用AK&SK初始化账号Client
     * @return
     * @throws Exception
     */
    @Bean
    @Qualifier("createClient")
    public  Client createClient() throws Exception {
        Config config = new Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(this.accessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(this.accessKeySecret);
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }

    /**
     * 使用STS鉴权方式初始化账号Client,推荐此方式。
     * @return
     * @throws Exception
     */
    @Bean
    @Qualifier("createClientWithSTS")
    public Client createClientWithSTS( ) throws Exception {
        Config config = new Config()
                // 必填,您的 AccessKey ID
                .setAccessKeyId(this.accessKeyId)
                // 必填,您的 AccessKey Secret
                .setAccessKeySecret(this.accessKeySecret)
                // 必填,您的 Security Token
                .setSecurityToken(this.securityToken)
                // 必填,表明使用 STS 方式
                .setType("sts");
        // 访问的域名
        config.endpoint = "dysmsapi.aliyuncs.com";
        return new Client(config);
    }
}

4. 创建控制层

@Autowired
private SMSServie smsServie;
@GetMapping("/sms/send/{mobile}")
public ResultVO send(@PathVariable("mobile") String mobile) throws Exception {
    return smsServie.send(mobile);
}

5. Service层

public interface SMSServie {
    ResultVO send(String mobile) throws Exception;
}

@Service
public class SMSServiceImp implements SMSServie {

    @Autowired
    @Qualifier("createClient")
    private Client client;
    public  ResultVO send(String mobile) throws Exception {

        // 请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID 和 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
        // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378657.html
        SendSmsRequest sendSmsRequest = new SendSmsRequest()
                .setSignName("阿里云短信测试")
                .setTemplateCode("SMS_154950909")
                .setPhoneNumbers(mobile)
                .setTemplateParam("{\"code\":\"123456\"}");
        RuntimeOptions runtime = new RuntimeOptions();
        SendSmsResponse resp = client.sendSmsWithOptions(sendSmsRequest, runtime);
        log(Common.toJSONString(resp));
        return ResultVO.success("短信发送成功");
    }
}


启动项目,访问接口,短信发送成功!
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里云短信发送接口实现 的相关文章

随机推荐

  • 火狐调试接口必备 插件 Firefox httprequester

    太难找 要不是之前电脑保存有 还真用不上了 新版本不支持 自行下载旧版本浏览器 本人用56 0 64位 版本
  • C++中i--与--i的区别

    结论 i i 0 i i 1 i i i 1 i 0 while i 代表着先判断后自减并输出自减的值 include
  • QCC512x/302x笔记(3)-- 只改一行代码,实现串口输出调试log

    哈喽大家好 这是该系列博文的第一篇 篇 lt lt 系列博文索引 快速通道 gt gt 上一篇我们知道了如何安装电脑USB驱动 方便后续的调试和烧录 这一篇我们就来打通串口的调试吧 当然通过MDE里面的pydbg调试也是可以的 串口除了可以
  • python3 中使用 kubernetes模版操纵k8s集群

    本文介绍kubernetes模块在k8s集群中的使用 其实就是将对kube apiserver的http访问封装成python可用的对象 详细文档参考官方链接 https github com kubernetes client pytho
  • png的图片四通道,jpg为三通道

    import cv2 img cv2 imread sample jpg cv2 IMREAD UNCHANGED cv2 imshow jpg img cv2 waitKey 0 print img shape img2 cv2 imre
  • 打造高效企业网站系统,助力业务发展!

    企业网站在今天的商业世界中扮演着至关重要的角色 随着市场竞争的日益激烈 打造一个高效的企业网站系统已经成为了实现业务发展和增长的必要条件 本文将分享一些打造高效企业网站系统的关键步骤和技巧 并结合一个案例为读者深入分析 案例 设计公司打造高
  • Flutter与android之间的通讯

    Platform Channel简介 Flutter引入Platform Channel机制来支持不同平台的API调用 在Flutter中 提供了三种Platform Channel用来支持和平台之间数据的传递 BasicMessageCh
  • java 原生queue_JoyQueue - 高性能、云原生、生产级别的消息传递平台

    JoyQueue JoyQueue A cloud native production ready messaging platform with excellent performance Features High performanc
  • ubuntu解压分卷.zip.001 .zip.002

    1 先用cat命令将分卷的zip合成一个 cat file zip gt file new zip 然后用unzip解压的时候报错 是文件太大了 要用7zip来解压 7z x file new zip 就没问题了
  • hbuilder 格式化时 遇到花括号的代码会换行

    菜单 工具 插件配置 format jsbeautifyrc js 修改brace style 为collapse preserve inline 重启HBuilderX
  • 烟火识别算法技术概述

    烟火识别算法技术是一种基于计算机视觉和图像处理的先进技术 旨在自动识别和分析烟火的特征和属性 随着人们对烟火表演的需求不断增加 烟火识别算法技术的研究和应用也越来越受到关注 烟火识别算法技术主要包括图像预处理 特征提取 分类器训练和目标检测
  • C# 代码规范和质量检查工具 StyleCop.Analyzers

    简介 原来一直用 ReSharper 来进行代码质量检查 不过毕竟是收费的 所以想找个免费的可以推广给公司的同事也一起用 搜索了一下 找到了StyleCop 但是我在 VS 2015里安装 StyleCop 或者通过 Nuget 包安装 S
  • B1031 查验身份证 (15分)【C语言】

    B1031 查验身份证 15分 C语言 原题链接 用flag标记是否所有号码都正常 正常时为1 但凡有一个身份证号出错 就将flag置为0 题目描述 一个合法的身份证号码由17位地区 日期编号和顺序编号加1位校验码组成 校验码的计算规则如下
  • IIS的服务器搭建配置(详细)

    IIS的服务器搭建配置 1 windows服务器配置 1 1打开控制面板 1 2点击next 1 3增加web服务器 注意 这一块是重点 好家伙 我在这一块一开始不重视 浪费了我2个多小时在返工查 1 4点击next进入到Features栏
  • 无人机和乐高编程机器人哪个好

    无人机和乐高编程机器人哪个好 现在是人工智能的社会 越来越多的家长开始重视孩子的科技素质教育 于是很多的家长会给孩子选择一些能够与人工智能有关系的课程 而机器人编程就是其中一种 很多的家长想要孩子去学习机器人编程的课程来说 有的家长对于无人
  • js截取字符串前几位或者截取字符串后几位

    经常会遇到后台反的时间是 2020 02 02 10 00 00 页面上需要只展示年月日或者只展示时分秒 那么最简单的方法就是返回过来的值直接截取一下即可 如何截取前几位 案例如下 var date 1996 10 22 22 55 33
  • TorchServe 详解:5 步将模型部署到生产环境

    内容导读 TorchServe 自 2020 年 4 月推出至今 经历了 2 年多的发展 变得愈发成熟和稳定 本文将对 TorchServe 进行全面介绍 本文首发自微信公众号 PyTorch开发者社区 更多应用 PyTorch 进行实际模
  • 深度学习------神经网络迁移学习

    迁移学习 import tensorflow as tf import IPython display as display import numpy as np import matplotlib pyplot as plt import
  • factoryBean.setTypeAliasesPackage()详解

    示例代码 Bean public SqlSessionFactoryBean sqlSessionFactory DataSource dataSource SqlSessionFactoryBean factoryBean new Sql
  • 阿里云短信发送接口实现

    使用阿里云短信接口发送验证码 1 引入依赖 springboot 工程引入web 引入 lombok 关键代码引入