引入短信服务

news2024/9/19 11:17:04

一、阿里云短信服务

进入阿里云平台,然后选择短信服务,通过API发送短信(需要充值金额,几块钱就可以,我们仅仅是小规模项目)

找到openAPI

可以看到Java语言的代码模板,这个就是Java SendSMS短信服务的代码

创建Accesskey

 创建完成后

创建用户

添加权限

添加签名和模板

二、后端代码部分

pom.xml文件中下载依赖

<!--        阿里云第三方依赖-->
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.5.0</version>
        </dependency>

配置文件中配置参数

aliyun.accessKeyID=用自己的!!!
aliyun.accessSecret=用自己的!!!

SendSMS工具类

package com.like.utils;

import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
//import com.google.gson.Gson;
//import java.util.*;
//import com.aliyuncs.dysmsapi.model.v20170525.*;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/*
pom.xml
<dependency>
  <groupId>com.aliyun</groupId>
  <artifactId>aliyun-java-sdk-core</artifactId>
  <version>4.6.0</version>
</dependency>
*/

@Component
public class SMSUtils {

    @Value("${aliyun.accessKeyID}")
    private String accessKeyID;
    @Value("${aliyun.accessSecret}")
    private String accessKeySecret;


        public void sendSMS(String mobile,String code){
        // Please ensure that the environment variables ALIBABA_CLOUD_ACCESS_KEY_ID and ALIBABA_CLOUD_ACCESS_KEY_SECRET are set.
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", System.getenv("ALIBABA_CLOUD_ACCESS_KEY_ID"), System.getenv("ALIBABA_CLOUD_ACCESS_KEY_SECRET"));


        IAcsClient client = new DefaultAcsClient(profile);


            CommonRequest request = new CommonRequest();

            request.setSysMethod(MethodType.POST);
            request.setSysDomain("dysmsapi.aliyuncs.com");
            request.setSysVersion("2017-05-25");
            request.setSysAction("SendSms");
            request.putQueryParameter("RegionId", "cn-hangzhou");
            request.putQueryParameter("PhoneNumbers",mobile);
            request.putQueryParameter("SignName","keke");
            request.putQueryParameter("TemplateCode","SMS_288145524");
            request.putQueryParameter("TemplateParam","{\"code\":\"" + code + "\"}");

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

}


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1061666.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电机-电力拖动-振动-应力分析-设备防护知识初步

1.涉及领域和课程&#xff1a; 信号与系统现代自动化原理与应用频谱转换及振动分析材料学基础与应力分析数学建模、仿真与求解工程数学传感器机器学习与模式识别随机信号处理反馈系统文献学DSP应用机器视觉凸优化&#xff0c;数学物理方法 2.教材推荐 豆瓣书单&#xff0c;更…

【云备份项目】【Linux】:环境搭建(g++、json库、bundle库、httplib库)

文章目录 1. g 升级到 7.3 版本2. 安装 jsoncpp 库3. 下载 bundle 数据压缩库4. 下载 httplib 库从 Win 传输文件到 Linux解压缩 1. g 升级到 7.3 版本 &#x1f517;链接跳转 2. 安装 jsoncpp 库 &#x1f517;链接跳转 3. 下载 bundle 数据压缩库 安装 git 工具 sudo yum…

很普通的四非生,保研破局经验贴

推免之路 个人情况简介夏令营深圳大学情况机试面试结果 预推免湖南师范大学面试结果 安徽大学面试结果 北京科技大学笔试面试结果 合肥工业大学南京航空航天大学面试结果 暨南大学东北大学 最终结果一些建议写在后面 个人情况简介 教育水平&#xff1a;某中医药院校的医学信息…

英语——分享篇——每日100词——601-700

disastrous——adj.灾难性的&#xff0c;完全失败的——disast(e)r灾难(熟词)ous藕丝(拼音)——灾难性的地震后大家只能吃藕丝 disorder——n.骚乱&#xff0c;混乱&#xff1b;vt.使失调——dis的士(谐音)order命令(熟词)——的士司机命令我稳住那场骚乱 distract——vt.转移…

C++设计模式-工厂模式(Factory Method)

目录 C设计模式-工厂模式&#xff08;Factory Method&#xff09; 一、意图 二、适用性 三、结构 四、参与者 五、代码 C设计模式-工厂模式&#xff08;Factory Method&#xff09; 一、意图 定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。Factory…

华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制

华为云云耀云服务器L实例评测使用 | 通过程序实现直播流自动分段录制 1. 准备工作2. 环境搭建3. 心得总结 1. 准备工作 随着云计算时代的进一步深入&#xff0c;越来越多的中小企业企业与开发者需要一款简单易用、高能高效的云计算基础设施产品来支撑自身业务运营和创新开发。基…

【java基础-实战1】字符串的驼峰与下划线互转

插&#xff1a; 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家一起学习鸭~~~ 背景 在日常开发过程中&#xff0c;驼峰与下划线的互…

lv7 嵌入式开发-网络编程开发 08 TCP并发功能

目录 1 TCP 多进程并发 1.1 现象&#xff1a; 1.2 多进程并发 2 僵尸进程处理 3 TCP并发多线程 4 练习 1 TCP 多进程并发 1.1 现象&#xff1a; 之前的代码&#xff0c;先关服务端&#xff0c;再次打开会出现错误bind:Address already in use 使用setsockopt 地址快速重…

C++——stack和queue

作者&#xff1a;几冬雪来 时间&#xff1a;2023年10月5日 内容&#xff1a;C——stack和queue内容讲解 目录 前言&#xff1a; 什么是stack和queue&#xff1a; 适配器模式&#xff1a; stack&#xff1a; queue&#xff1a; deque&#xff1a; 相比vector和list&a…

两文学会scala (上)|保姆级别教程(超详细)

目录 一 Scala入门 1.1 概述 1.1.1 为什么学习Scala 1.1.2 Scala发展历史 1.1.3 Scala和Java关系 1.1.4 Scala语言特点 1.2 scala 运行环境准备 二 变量和数据类型 2.1 注释 1&#xff09;基本语法 2&#xff09;案例实操 3&#xff09;代码规范 2.2 变量和常量&a…

基于Java的自习室预订座位管理系统设计与实现(源码+lw+部署文档+讲解等)

文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序&#xff08;小蔡coding&#xff09;有保障的售后福利 代码参考源码获取 前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…

用稳定扩散生成4K PBR纹理【SDXL】

我正在继续去年开始使用 Three.JS 构建 3D 场景和草图的工作。 当时&#xff0c;DALL-E 和 Stable Diffusion 等 AI 图像生成器刚刚真正起飞。 我成功地在本地运行稳定扩散&#xff0c;并使用它为我正在构建的 3D 世界中的地形、建筑物和其他环境生成纹理。 当时我使用的是稳…

sd卡数据异常丢失怎么办?别慌,有这五种应对方法

随着SD卡在我们的生活中越来越广泛地使用&#xff0c;我们很可能会遇到SD卡数据异常丢失的情况。这种情况可能会给我们带来困扰和不便&#xff0c;因为丢失的数据可能包含了我们珍贵的照片、音乐、视频和文件等重要信息。幸运的是&#xff0c;在大多数情况下&#xff0c;我们仍…

多目标跟踪框架boxmot介绍

引言 boxmot由mikel brostrom开发&#xff0c;用于目标检测&#xff0c;分割和姿态估计模型的SOTA&#xff08;state of art&#xff09;跟踪模块&#xff0c;现已加入python第三方库 PYPI&#xff0c;可用pip包管理器进行安装。 boxmot所支持的跟踪器采用外观特征识别方法&am…

一文了解VR全景在城市园区和电子楼书的应用

引言&#xff1a; 虚拟现实&#xff08;VR&#xff09;技术在日常生活中越发普及&#xff0c;已经成为众多行业的宣传工具&#xff0c;房地产行业近些年来热度较低&#xff0c;VR全景为房地产展示带来了新方式&#xff0c;为购房者提供更真实、更直观的体验。 一&#xff0e;…

练[MRCTF2020]Ez_bypass

[MRCTF2020]Ez_bypass 文章目录 [MRCTF2020]Ez_bypass掌握知识解题思路关键paylaod 掌握知识 ​ 代码审计&#xff0c;md5函数绕过&#xff0c;is_numeric函数绕过&#xff0c;弱等于的字符串和数字类型绕过 解题思路 打开题目链接&#xff0c;发现是代码审计题目&#xff0…

基于猫群优化的BP神经网络(分类应用) - 附代码

基于猫群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码 文章目录 基于猫群优化的BP神经网络&#xff08;分类应用&#xff09; - 附代码1.鸢尾花iris数据介绍2.数据集整理3.猫群优化BP神经网络3.1 BP神经网络参数设置3.2 猫群算法应用 4.测试结果&#xff1a;5.M…

buuctf-[BSidesCF 2020]Had a bad day 文件包含

打开环境 就两个按钮&#xff0c;随便按按 url变了 还有 像文件包含&#xff0c;使用php伪协议读取一下&#xff0c;但是发现报错&#xff0c;而且有两个.php,可能是自己会加上php后缀 所以把后缀去掉 /index.php?categoryphp://filter/convert.base64-encode/resourcei…

从0开始深入理解并发、线程与等待通知机制(中)

一&#xff0c;深入学习 Java 的线程 线程的状态/生命周期 Java 中线程的状态分为 6 种&#xff1a; 1. 初始(NEW)&#xff1a;新创建了一个线程对象&#xff0c;但还没有调用 start()方法。 2. 运行(RUNNABLE)&#xff1a;Java 线程中将就绪&#xff08;ready&#xff09;和…

Endnote修改参考文献(References)的期刊全称为缩写

一、准备&#xff08;下载&#xff09;所需要的期刊缩写列表 &#xff08;Term Lists&#xff09; 我已经下载并上传了一份Trem Lists 链接: 在不列颠哥伦比亚大学图书馆网站导出所有期刊名和缩写&#xff0c;大概1W的期刊名字&#xff0c;期刊名字和缩写截至2021.12.03 哥伦…