一、整合微服务

创建service-sms微服务

添加依赖:

        <!--阿里云短信--><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId></dependency>

配置yml文件:

server:port: 8120 # 服务端口spring:profiles:active: dev # 环境设置application:name: service-sms # 服务名redis:host: localhostport: 6379database: 0timeout: 3000ms #最大等待时间,超时则抛出异常,否则请求一直等待lettuce:pool:max-active: 20  #最大连接数,负值表示没有限制,默认8max-wait: -1    #最大阻塞等待时间,负值表示没限制,默认-1max-idle: 8     #最大空闲连接,默认8min-idle: 0     #最小空闲连接,默认0#阿里云短信
aliyun:sms:region-id: cn-shenzhenkey-id: 你的key-idkey-secret: 你的key-secrettemplate-code: SMS_154950909sign-name: 阿里云短信测试

编写工具类:获取配置文件的内容

@Data
@Component
@ConfigurationProperties(prefix = "aliyun.sms")
public class SmsProperties implements InitializingBean {private String regionId;private String keyId;private String keySecret;private String templateCode;private String signName;public static String REGION_ID;public static String KEY_ID;public static String KEY_SECRET;public static String TEMPLATE_CODE;public static String SIGN_NAME;@Overridepublic void afterPropertiesSet() throws Exception {System.out.println("当读取完所有属性后");System.out.println(regionId);System.out.println(keyId);System.out.println(keySecret);System.out.println(templateCode);System.out.println(signName);System.out.println("将读取到的属性赋值静态属性");KEY_ID = keyId;REGION_ID = regionId;KEY_SECRET = keySecret;TEMPLATE_CODE = templateCode;SIGN_NAME = signName;}
}

service层:

public interface SmsService {void sendCode(String mobile);
}
@Service
public class SmsServiceImpl implements SmsService {@AutowiredRedisTemplate redisTemplate;@Overridepublic void sendCode(String mobile) {// 校验手机号码boolean b = RegexValidateUtils.checkCellphone(mobile);Assert.isTrue(b, ResponseEnum.MOBILE_ERROR);// 生成验证码String fourBitRandom = RandomUtils.getFourBitRandom();// 调用阿里云api// 公共参数DefaultProfile defaultProfile = DefaultProfile.getProfile(SmsProperties.REGION_ID,SmsProperties.KEY_ID,SmsProperties.KEY_SECRET);// 请求客户端IAcsClient iAcsClient = new DefaultAcsClient(defaultProfile);// 请求参数CommonRequest commonRequest = new CommonRequest();commonRequest.setSysMethod(MethodType.POST);commonRequest.setSysDomain("dysmsapi.aliyuncs.com");commonRequest.setSysAction("SendSms");commonRequest.setSysVersion("2017-05-25");commonRequest.putQueryParameter("PhoneNumbers",mobile);//19967505202commonRequest.putQueryParameter("SignName",SmsProperties.SIGN_NAME);commonRequest.putQueryParameter("TemplateCode",SmsProperties.TEMPLATE_CODE);Map<String,String> map = new HashMap<>();map.put("code",fourBitRandom);commonRequest.putQueryParameter("TemplateParam", JSON.toJSONString(map));// 如果是短信验证码,需要加入参数// 发送请求,返回结果CommonResponse commonResponse = null;try {commonResponse = iAcsClient.getCommonResponse(commonRequest);} catch (ClientException e) {e.printStackTrace();}System.out.println(commonResponse);// 发送给redisString data = commonResponse.getData();Gson gson = new Gson();HashMap<String, String> resultMap = gson.fromJson(data, HashMap.class);String commonResponseCode = resultMap.get("Code");Assert.isTrue((null!=commonResponseCode)&&(commonResponseCode.equals("OK")),ResponseEnum.ERROR);redisTemplate.opsForValue().set("srb:sms:code:" + mobile,fourBitRandom);}
}

controller层:

@RestController
@RequestMapping("/api/sms")
@CrossOrigin
public class ApiSmsController {@AutowiredSmsService smsService;@GetMapping("sendCode/{mobile}")public R sendCode(@PathVariable String mobile){smsService.sendCode(mobile);return R.ok();}
}

二、如何实现使用验证码注册的功能,业务流程?

A 注册登录阿里云,申请签名模板,接口授权,整合(短信)

B 新建sms短信微服务(读取公共参数配置文件),导入sdk,实现短信验证码接口

C 短信注册业务流程:

1 前端输入手机号,点击获取验证码

2 短信服务生成验证码,调用阿里云(sms接口服务),发送验证码

3 验证码发送成功后,将验证码存储到服务器缓存(redis)

4 用户输入验证码,点击注册

5 后端用户服务验证验证码,注册用户

尚融宝——阿里云短信验证功能(sms)相关推荐

  1. 阿里云短信验证解决方案(java版)(redis存储)

    阿里云短信验证解决方案(java版)(redis存储) 参考文章: (1)阿里云短信验证解决方案(java版)(redis存储) (2)https://www.cnblogs.com/Amos-Tur ...

  2. springboot整合阿里云短信验证(无需签名和模板,通过阿里云api测试实现短信验证)

    一.开通阿里云短信服务 开通步骤如下图所示 开通完成后,进入阿里云短信验证首页,点击国内消息 一般来说,在短信验证时需要签名管理和模板管理,但是签名管理需要备案或者上线服务,所以对于没有备案和上线应用 ...

  3. 阿里云短信验证服务详细基础教程

    阿里云短信验证服务 1. 注册一个阿里云的帐号 2. 在搜索栏搜索短信服务 3. 点击免费开通 4.开通之后点击管理控制台 5. 获取AccessKey 6. 创建AccessKey并保存,后面会用到 ...

  4. 阿里云短信验证-PHP

    阿里云短信验证-PHP 场景:平台注册,登陆短信验证 参考阿里官方教程 阿里云短信验证-快速入门 前提条件: 产品->云计算产品->短信服务 开通短信服务 创建AccessKey 申请短信 ...

  5. springboot整合阿里云短信验证服务

    导入上面jar包 <dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sd ...

  6. java实现阿里云短信验证注册--详细教程

    java实现阿里云短信验证注册–详细教程 .项目中先引入依赖 <!--阿里云短信包--><dependency><groupId>com.aliyun</gr ...

  7. 尚医通-阿里云短信服务(二十九)

    目录: (1)前台用户系统-手机登录-阿里云短信服务介绍 (2)手机登录-整合短信服务 (3)整合短信发送服务测试 (1)前台用户系统-手机登录-阿里云短信服务介绍 现在使用阿里云完成短信服务:注册登 ...

  8. node开通阿里云短信验证服务,代码演示 超级详细

    阿里云官网步骤:Node.js SDK (aliyun.com) 首先先搭建一个node项目:app.js const express = require('express'); // 引入 Expr ...

  9. 阿里云短信验证(代码)demo完整教程

    前言: 使用阿里云短信服务的前提你得有阿里云账号(我简直在说废话)没有得话就去注册一个 注册后登陆 教程开始: 阿里云上面有官方得文档以及Demo&SDK,为什么我还要写这篇播客呢,因为上面的 ...

最新文章

  1. 拜访了这位小哥的GitHub后,我失眠了!
  2. python有趣的小项目-有趣的python小项目,自动生成有趣的表情包!
  3. stm32串口学习(一)
  4. PHP面向对象的进阶学习
  5. epic怎么添加本地游戏_游戏日报:原神公测无法上架多家安卓渠道;Epic投资布局游戏UGC平台...
  6. Linux添加网站后无法显示,Linux:SElinux导致网站无法访问
  7. mysql和hdfs性能对比,Hadoop vs Spark性能对比 -数据库-火龙果软件工程
  8. js 数字格式化,只能输入正负整数,小数
  9. 第一节 电 电流 电压 电路 基本电子元件
  10. 一周搜索热点20170528
  11. 计算机电脑怎么开热点,笔记本电脑怎么开热点_教你笔记本电脑开热点的方法...
  12. 搜狐公司副总裁 方刚 先生谈《胜于言传——网站内容制胜宝典》
  13. pycharm设置控制台的解释器_PyCharm设置
  14. 周受资将兼任TikTok CEO;默沙东中国总裁罗万里将出任美国总裁 | 高管变动2021年4月26日-5月2日
  15. 扫地机器人充电红灯闪烁响_智能扫地机器人的充电错误提示与处理
  16. 2022-2028全球轴承润滑油行业调研及趋势分析报告
  17. Vue中文字只显示三行,超过部分收起的实现方法
  18. 重新排序(排序不等式+差分)蓝桥
  19. decorators.xml的用法 (转)
  20. BZOJ4411 - [Usaco2016 Feb]Load balancing

热门文章

  1. 雪浪数制CEO王峰:关于雪浪制造大脑的三大拷问 | 2018雪浪大会
  2. Word控件Spire.Doc 【文本】教程(1) ;C#/VB.NET:从 Word 文档中删除文本或图像水印
  3. mencoder MPlayer 参数详细
  4. iOS逆向-手把手教你写支付宝蚂蚁森林收集能量助手
  5. 优质办公体验,掌上OA一机hold住全场
  6. Api接口的模块化管理
  7. 型のデザインのガイドライン
  8. Hutool - 日期时间工具 - DateUtil
  9. 幻灯片自动播放的实现
  10. 辉芒微FT61F023,FT61F011A