【Java阿里云短信验证码实现】

article/2025/8/19 18:06:13

阿里云新版SDK的基础使用

前言:最近在做开发中因为需要用到短信验证,在进行选择后选择了阿里云的短信验证平台(付费:简短普通短信价格在0.04元一条)。由于官网的帮助文档过于详细无法快速找到重点内容,并且SDK新旧版有较大区别,自己走了很多弯路,借此机会写一份完整的操作步骤以便于没有使用的的新手也可以快速上手。

1.进入阿里云短信服务
首先搜索阿里云官网进入开发者社区,直接搜索“短信服务控制器”。
在这里插入图片描述
2.数据准备工作(先冲1块,没钱的话运行会报错)
进入控制台主页后我们点击右侧AccessKey在这里插入图片描述
点击创建AccessKey得到自己的Id和密码(后面要用到,切记不要泄露)

在这里插入图片描述

        返回到主页选择左侧的国内消息,对我们的短信格式进行设置,审核一般要半个小时还是比较久的,所以尽量一次把格式完成。
        签名管理就是我们收到验证短信开头常见的【xx平台】,不能取名过于广泛例如:【短信验证】,【验证测试】这种都同过不了审核。可以借鉴已有的平台取名:【么得钱花】,【啊外云】。
        模板管理就是短信的具体内容,签名和模板添加的时候他都会描述的非常详细。
在这里插入图片描述
在这里插入图片描述
3.Jar包的下载及导入
点击控制器主页左侧的帮助文档我们可以进入短信服务帮助文档的主页。最左侧我们就可以看到SDK参考(新版)。官方手册中提供两种方式引入Jar:

  1. 通过Maven添加依赖(推荐)

  2. 导入Jar包

通过Maven比较简单我们直接复制文档中的依赖就可以了,这里详细说一下都需要导入哪些Jar包。

在这里插入图片描述
aliyu-java-sdk-core 这仅仅是核心库,如果我们只导入这一个包就去撸代码的话最后你会发现报错java.lang.NoClassDefFoundError: com/google/gson/JsonParser 找不到com.google.gson.JsonParser类- -由于会用到Json的解析,我们还需要下载导入一个google的gson包。
4.话不多说开始搞代码(画重点)
先创建工程,导入了上述的两个包。
以下是我的代码给大家看下了解下哪里需要改,注意这里的代码都不需要自己手写:

在这里插入图片描述
        20-27行是生成6位数验证码的方法,最后拼接成JSON数据的形式存放到TemplateParam中,文中代码最后就形成了{“code”:“xxxxxx”}的形式,在短信中以${code}取出。样例模板内容:
在这里插入图片描述
前面说了这些代码不需要去手写,那么代码是怎么来的呢?这也是新版SDK最强大的地方!
        在控制台主页右上角,有一个OpenAPI Explorer,点击进去我们就可以看到阿里云提供给我们的一个编译环境。我们只需要在中间的表单中填写相应数据,就会自动生成对应代码,我们唯一需要做的就是生成短信中的动态内容,例如上文所述的随机6位数验证码。

在这里插入图片描述
在这里插入图片描述
        我们在使用AccessKey的时候他会提醒你直接使用自己的不安全,建议你去创建RAM用户。也就是虚拟用户,你可以通过虚拟用户创建对应的AccessKey来使用相对安全。并且数据中的电话号码我们也是从页面接收过来并非写死的,最后我把一份样板代码贴在下面给大家复制用。

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;public class SendSms{public static void main(String[] args) {//随机生成六位随机数StringBuffer stringBuffer=new StringBuffer();for (int x=0;x<=5;x++) {int random = (int) (Math.random() * (10 - 1));stringBuffer.append(random);}String string = stringBuffer.toString();int i = Integer.parseInt(string);DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "你的AccessKeyId", "你的AccessKey的密码");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("RegionId", "cn-hangzhou");request.putQueryParameter("PhoneNumbers", "要发送验证码的手机号");request.putQueryParameter("SignName", "签名名称");request.putQueryParameter("TemplateCode", "模板CODE");request.putQueryParameter("TemplateParam", "{\"code\":" + i + "}");try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}}}
  • 希望本篇文章对大家有帮助,有问题的话欢迎指出和评论探讨!

http://chatgpt.dhexx.cn/article/qPBFNYOh.shtml

相关文章

springboot 手机发送阿里云短信验证码

1.请先pom引入阿里云依赖 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.16</version></dependency><dependency><groupId>com.aliyun</groupId>&…

springboot 使用shiro集成阿里云短信验证码

目录 1.阿里云短信验证码服务 2.发送短信验证码 3.shiro配置多个realm 4.验证短信验证码 5.一些修改思路 引言&#xff1a;短信验证码是通过发送验证码到手机的一种有效的验证码系统&#xff0c;主要用于验证用户手机的合法性及敏感操作的身份验证。在注册和修改密码时需要…

thinkphp6 +阿里云短信验证码

一、登录阿里云开通短信验证码 1、正常添加&#xff0c;等待审核成功&#xff0c;获取自己的账号的access_key 以及access_secret 进到下边界面创建就行&#xff0c;保存好 二、下载阿里云SDK包 composer require alibabacloud/sdk 三、thinkphp6 基本操作 1、三个文件 第一…

阿里云短信验证码发送

1&#xff0c;下载sdk composer require alibabacloud/dysmsapi-20170525 2.0.9 2&#xff0c;封装短信发送类 <?phpnamespace App\Http\business; use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi; use Darabonba\OpenApi\Models\Config; use AlibabaCloud\SDK\Dysm…

JAVA实现阿里云短信验证码发送

详情可参考阿里云官方文档&#xff1a; 开始使用 - 阿里云SDK - 阿里云 首先进入阿里云开通短信服务 并且申请阿里云签名和模板 redis安装详见 centos redis安装及相关命令_lanan_dream的博客-CSDN博客_centos redis 安装 1、配置类中引入redis配置&#xff1a;固定写法&#…

新版阿里云发送短信验证码详解

一、申请短信服务步骤 首先进入阿里云控制台&#xff0c;点击左侧产品与服务&#xff0c;找到短信服务。 第一次进入会有新手引导&#xff0c;这里主要介绍一下大致步骤和易错点 申请短信签名和模板 短信签名一般是企业或者组织名的简写&#xff0c;主要是告知收信人自己是谁…

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

目录 一、用户注册登录流程 二、使用阿里云发送短信验证码 ⭐生成密钥 ⭐将密钥配置到项目中 ⚪新建properties文件并填入相应信息 ⚪pom配置 ​⚪ 测试代码 ⚪添加签名 ​⚪添加短信发送的模板 &#x1f4a7;验证码防盗刷监控 一、用户注册登录流程 二、使用阿里…

通用阿里云的短信验证码(详细)

阿里云手机短信验证码 第一步 登录阿里云开放平台 1、进入阿里云开放平台---->点击控制台 2、点击AccessKey管理 3、点击之后会弹出提示&#xff0c;选择开始使用子用户 4、新建一个用户组&#xff0c;然后按要求填写即可 5、创建一个用户&#xff0c;按要求填写内容&…

《设计模式系列》- 代理模式

有情怀&#xff0c;有干货&#xff0c;微信搜索【三太子敖丙】关注这个有一点点东西的程序员。 本文 GitHub https://github.com/JavaFamily 已收录&#xff0c;有一线大厂面试完整考点、资料以及我的系列文章。 设计模式已经跟大家分享很多了常见的模式了&#xff0c;感兴趣的…

Nginx代理tomcat

为什么需要为tomcat配置nginx反向代理&#xff1f; 1.当服务器上同时拥有nginx与tomcat时&#xff0c;tomcat修改8080端口为80会冲突 2.tomcat不更改监听端口8080即可使用nginx的80端口 3.Nginx对于静态的请求速度上要优于Tomcat&#xff0c;Tomcat不擅长做高并发的静态文件请…

GPU虚拟化

GPU 虚拟化技术 须知: 文章内容大程度参考B站王利明老师对《GPU虚拟化技术分享》的主题演讲 视频链接: https://b23.tv/uQKBpcK 1 GPU 和软件架构 GPU可以用于图形渲染&#xff0c;GPU 作为加速图形绘制的芯片时&#xff0c;它主要面向的产品主要是会集中在 PC 和游戏两个市场…

代理模式(四):代理模式效果与适用场景

15.7 代理模式效果与适用场景 代理模式是常用的结构型设计模式之一&#xff0c;它为对象的间接访问提供了一个解决方案&#xff0c;可以对对象的访问进行控制。代理模式类型较多&#xff0c;其中远程代理、虚拟代理、保护代理等在软件开发中应用非常广泛。 15.7.1 模式优点 代理…

Nginx 反向代理、负载均衡、虚拟主机

文章目录 一、反向代理1、代理原理2、正/反向代理的区别&#xff08;1&#xff09;正向代理&#xff08;2&#xff09;反向代理 3、配置Nginx-Proxy&#xff08;1&#xff09;代理模块&#xff08;2&#xff09;代理配置&#xff08;3&#xff09; proxy 代理实例 二、负载均衡…

设计模式之代理模式

定义 代理模式又叫委托模式&#xff0c;是为某个对象提供一个代理对象&#xff0c;并且由代理对象控制对原对象的访问。代理模式通俗来讲就是我们生活中常见的中介。 我们使用代理对象来代替对真实对象(real object)的访问&#xff0c;这样就可以在不修改原真实对象的前提下&a…

java设计模式9:Proxy(3)虚拟代理

加载延迟可以提高软件的友好程度。 当一个真实的主题对象的加载需要耗费资源时&#xff0c;一个虚拟代理对象可以代替真实对象接受请求。一旦接到请求&#xff0c;代理对象马上打出一段“正在加载”的信息&#xff0c;并在适当的时候加载真实主题对象&#xff0c;也就是模块或…

设计模式:(代理模式)

1.定义 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。 在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。 简单来说&#xff1a;代理模式为其他对象提…

Nginx 虚拟主机与反向代理

一、虚拟主机 虚拟主机使用的是特殊的软硬件技术&#xff0c;它把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机&#xff0c;每台虚拟主机都可以是一个独立的网站&#xff0c;可以具有独立的域名&#xff0c;具有完整的Intemet服务器功能&#xff08;WWW、FTP、Emai…

【设计模式】学习笔记16:代理模式之虚拟代理(实现CD封面加载器)

本文出自 http://blog.csdn.net/shuangde800 在上篇中&#xff0c;我们学习了代理模式&#xff0c;并用Java RMI实现了一个最简单的远程代理。 实际上代理模式并不仅仅应用与远程代理&#xff0c;还有很多其他的应用。 比如&#xff1a;虚拟代理。 代理模式可以以很多形式出现…

代理模式(三):远程代理,虚拟代理,缓冲代理

15.4 远程代理 远程代理(Remote Proxy)是一种常用的代理模式&#xff0c;它使得客户端程序可以访问在远程主机上的对象&#xff0c;远程主机可能具有更好的计算性能与处理速度&#xff0c;可以快速响应并处理客户端的请求。远程代理可以将网络的细节隐藏起来&#xff0c;使得客…

虚拟机 全局代理 主机代理_比较虚拟代理与真实代理的性能

云计算的关键基础是虚拟化。 面向云的设计人员&#xff0c;开发人员和管理员需要问自己的一个问题是&#xff1a;“虚拟化组件的性能水平如何与其“真实”物理对应物相提并论&#xff1f;” “如果存在负面差距&#xff0c;我该如何克服呢&#xff1f;” 本文介绍了在虚拟机&a…