目录

一、登陆阿里云,开通短信服务(收费的,需要充值,1元能发20条左右),并获取AccessKeyId和AccessKeySecret

二、创建短信模板与签名

三、引入依赖

四、准备工作已完成,编码环节开始,为了让代码简单直接,抛弃了开发规范~~

五、如何学习阿里短信API


本篇文章为记录自己学习发送短信验证码小功能的过程,所有的调用三方接口的功能都如出一辙,在学习一个调用三方接口的过程中总结经验,再学习其他的,思路就会很清晰,就像我刚学完发送邮件(上一篇博客有总结),现在学发短信,很清楚自己该干什么。

一、登陆阿里云,开通短信服务(收费的,需要充值,1元能发20条左右),并获取AccessKeyId和AccessKeySecret

AccessKeyId,用阿里云官网的话说,是访问阿里云API的密钥,一个用户可以有多个,每次向阿里云服务发送请求,需要带着AccessKeyId,阿里云接收到请求以后需要验证这个AccessKeyId-AccessKeySecret,验证通过才可进行访问,获取方法如下:

  1、开通短信服务

登陆以后,在搜索框直接搜索短信服务 控制台,进入控制台,未开通的会提示开通,直接开通即可

  2、进入AccessKey管理界面

进入控制台后,鼠标放到右上角自己头像,会看到有个  管理AccessKeyId  选项

  3、点击创建,发送验证码验证即可创建成功

二、创建短信模板与签名

  1、创建短信模板,创建完模板后有个模板CODE,java代码需要用到

    2、创建签名

验证码类型不需要上传什么证明

三、引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>
<-- 阿里依赖 -->
<dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId><version>4.5.3</version>
</dependency>
<-- 由于SpringBoot自带的jackson的API不如fastjson好用,所以又引入了依赖>
<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.62</version>
</dependency>

四、准备工作已完成,编码环节开始,为了让代码简单直接,抛弃了开发规范~~

1、代码,注意,参数的属性名必须跟我的保持一致,例如设置短信签名request.putQueryParameter("SignName", signName),属性名必须为SignName,错一个字母就会报错

@RestController
@RequestMapping("/sms/test")
public class SmsTestController {// 阿里云获取的访问API密钥private static final String accessKeyId = "自己的accessKeyId";private static final String accessKeySecret = "自己的accessKeySecret";//短信签名,即最前面在【】这个中的文字,可以打开手机随便看一条商业短信,例:【淘宝】亲爱的用户.....private static final String signName = "自己的签名";// 短信模板,即在阿里云短信服务中自己创建的短信模板IDprivate static final String templateCode = "自己的模板ID";@RequestMapping(value = "/send", method = RequestMethod.POST)public ResultVO sendSms(String phone) throws ClientException {// 初始化acsClient,需要填写自己的accessKeyId和accessSecret// regionId只有一个杭州,不支持其他地区DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", accessKeyId, accessKeySecret);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", phone);// 短信签名request.putQueryParameter("SignName", signName);// 模板IDrequest.putQueryParameter("TemplateCode", templateCode);// 构建短信模板参数替换,要求格式为json// 如果你的短信模板为:验证码为:${code},那么你的json为:{"code": "2345"}Map<String, String> jsonParam = new HashMap<>();jsonParam.put("code", "2345");//此处我用的json格式化的依赖是fastjson,SpringBoot自带的是jacksonrequest.putQueryParameter("TemplateParam", JSON.toJSONString(jsonParam));// 发送请求并获取响应,判断是否成功CommonResponse response = client.getCommonResponse(request);if (response.getHttpResponse().isSuccess()) {return ResultVO.success();}return ResultVO.fail();}
}

2、代码解释

1)accessKeyId和accessKeySecret是本篇文章第一节说的,不多说了

2)signName短信签名,需要跟阿里云短信服务里自己创建并审核通过的签名保持一致,需要注意的是自己不需要加【】,阿里会自动给你的签名匹配上这个中文的中括号

3)templateCode

五、如何学习阿里短信API

在阿里短信服务控制台可以看到一个快速学习,点进去,然后选择查看 API Demo

如下图:

这里有个比较详细的案例,有兴趣的小伙伴可以去看看,API文档每一个都介绍了是干嘛用的,是否必填,而且在中间那参数栏填了参数,最右侧的代码示例就会增加代码

SpringBoot+阿里云短信服务实现发送短信验证码功能相关推荐

  1. 使用阿里云容器监控服务与第三方监控框架集成搭建自己的容器看板

    一.概述 阿里云容器监控服务日前正式上线,容器监控服务提供了非常简单快速地与第三方开源监控方案集成的能力.本篇文章就带领大家一起试用阿里云容器监控服务,并使用目前比较流行的第三方开源监控框架做集成,搭 ...

  2. SpringBoot 阿里云短信功能使用

    SpringBoot 阿里云短信功能使用 Jar包引用 上工具类 Jar包引用 <!-- 阿里云核心包 --><dependency><groupId>com.al ...

  3. 使用阿里云短信服务API实现短信验证码以及短信服务通知

    使用阿里云短信服务API实现短信验证码以及短信服务通知 前言 一 .短信调用简要说明 二 .官方不带签名原生态测试demo 调用结果如下 三 .以上为不带模板和签名的API调用结果 下面加入签名和模板 ...

  4. TP5调用阿里云短信接口实现发送短信功能

    TP5调用阿里云短信接口实现发送短信功能 工作需要,对接阿里云的短信服务,借此记录一下(网站 www.lelee.top) 主要分为两个部分,一是下载官方的Demo事例,这个不需要多说,自己去下载就行 ...

  5. Java调用阿里云短信接口,发送短信

    Java调用阿里云短信接口,发送短信 1.短信服务这个很简单,只需要知道accessKeyId(AK).accessKeySecret(SK).短信签名.短信模板即可. 2.域名和产品名称是固定的,使 ...

  6. 普歌-腾讯云短信+使用node发送短信(3种方法API、SDK)、封装工具、搭建web服务、写接口、调用接口发送短信、时效性判断、验证验证码的正确性(下)

    普歌-结合腾讯云短信服务+node搭建一个简单的发送短信web小项目 涉及技术: 腾讯云服务 后端服务:node+express 前端搭建:html+js 前言:本来这篇博客应该很早就发了,中间有一些 ...

  7. 解忧云SMS短信服务平台系统 短信发送系统源码 全解密随时可以二开无后门

    解忧云SMS短信服务平台系统 短信发送系统 全解密完美版 经过一系列修复现在程序已经可以完全使用. 并且是全解密随时可以二开.无后门. 一些bug已经完全修复 安装教程 数据库配置文件路径 .env ...

  8. 解忧云SMS短信服务平台系统 短信发送系统 全解密完美版

    简介: 全网首发 解忧云SMS短信服务平台系统 短信发送系统 全解密完美版 经过一系列修复现在程序已经可以完全使用. 并且是全解密随时可以二开.无后门. 一些bug已经完全修复 安装教程 数据库配置文 ...

  9. SpringBoot集成阿里云存储OSS服务

    前言 该文章会先简单的介绍一下阿里云的OSS存储,然后演示如何在SpringBoot项目中集成OSS,每一步都有记录,保证初学者也能看懂. 文章目录 前言 1.阿里云存储OSS是什么? 2.Sprin ...

最新文章

  1. hdu 1881 毕业bg
  2. mysql随机显示记录_MySQL随机读取表中记录
  3. 史上最简单的SpringCloud教程 | 第四篇:断路器(Hystrix)
  4. 7-47 打印选课学生名单 (25 分)(两种做法)(思路加详解+map+vector做法+最后一个点超时解决)+兄弟们冲丫丫
  5. oracle 数据库_操作事项_05
  6. R 学习 - 图形设置中英字体
  7. 信息学奥赛C++语言:新三好学生
  8. 大数据之-Hadoop3.x_MapReduce_二次排序案例---大数据之hadoop3.x工作笔记0116
  9. Oracle数据库在.net连接问题总结
  10. 《OpenGL编程指南(原书第9版)》——第1章 1.0OpenGL概述
  11. python源码剖析_Python源码剖析的作品目录
  12. android 功能防抖,Android RxJava 实战系列:功能防抖
  13. Rational Team Concert 的使用
  14. 电脑开机显示器黑屏是什么原因,电脑显示器黑屏怎么办
  15. 解决IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter
  16. Visual C++实现黑白棋游戏项目实战二:界面的设计与实现(附源码和资源 超详细)
  17. 第六章—身份认证、第七章—控制访问
  18. RTX2070s和RTX2060s显卡差距大吗?
  19. Filament学习笔记——ComponentManager
  20. 分布式事务解决方案及实现

热门文章

  1. 2021年4月总结5月计划
  2. 关于TTS SpeechVoiceSpeakFlags几个值的中文意思?
  3. windows与mac文件夹共享
  4. Python破解滑动验证码(极验/无背景图)
  5. 开学季——想打好数学基础?这些经典教材你最需要!
  6. 计算机网络 第四章 答案(更正版)(谢希仁 第七版)
  7. 可解释性神经网络——3.一种新的可解释性神经网络GAMI-Net
  8. Saturday morning
  9. C语言·sqrt()的用法
  10. c++中sqrt函数的使用