博客
关于我
阿里云短信业务
阅读量:343 次
发布时间:2019-03-04

本文共 2959 字,大约阅读时间需要 9 分钟。

阿里短信验证码

一 开通业务

  • 开通业务

在这里插入图片描述

  • 添加模板审核

在这里插入图片描述

  • 添加签名审核

在这里插入图片描述

  • 添加秘钥

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

提示:请记住密码,密码出现后,不会再出现

二 代码编写

在这里插入图片描述

在这里插入图片描述

  • 依赖
com.aliyun
aliyun-java-sdk-core
4.5.3
com.alibaba
fastjson
1.2.62
  • 工具类编写
package com.shu.uilts;import com.alibaba.fastjson.JSONObject;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 java.util.UUID;public class SendSms {       public static void main(String[] args) {           DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "******", "******");        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");        //随机验证码生成        String result = UUID.randomUUID().toString().replaceAll("-", "").substring(0, 4);        System.out.println(result);        //设置发送相关的参数        request.putQueryParameter("PhoneNumbers","1771x34xxxx"); //手机号        request.putQueryParameter("SignName","小xx工作室");  //申请阿里云 签名名称        request.putQueryParameter("TemplateCode","*****"; //申请阿里云 模板Code        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(result)); //验证码 格式为JSON字符串,{"code":"1234"}        try {               CommonResponse response = client.getCommonResponse(request);            System.out.println(response.getData());        } catch (ServerException e) {               e.printStackTrace();        } catch (ClientException e) {               e.printStackTrace();        }    }}
  • Redis集成
@RestController@RequestMapping("/edumsm/msm")@CrossOriginpublic class MsmController {       @Autowired    private MsmService msmService;    @Autowired    private RedisTemplate
redisTemplate; @GetMapping("send/{phone}") public R sendMsm(@PathVariable String phone){ //1 从redis获取验证码,如果获取到直接返回 String code = redisTemplate.opsForValue().get(phone); if(!StringUtils.isEmpty(code)){ return R.ok(); } //2 如果redis获取不到,进行阿里云发送 //生成随机值,传递阿里云进行发送 code = RandomUtil.getFourBitRandom(); Map
param = new HashMap<>(); param.put("code",code); //调用service发送短信的方法 boolean isSend = msmService.send(param,phone); if(isSend){ //发送成功,把发送成验证码放到Redis中 //设置有效时间 5分钟 redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES); return R.ok(); }else { return R.error().message("短信发送失败"); } }}

转载地址:http://ghbe.baihongyu.com/

你可能感兴趣的文章
Mysql学习总结(57)——MySQL查询当天、本周、本月、上周、本周、上月、距离当前现在6个月数据
查看>>
Mysql学习总结(58)——深入理解Mysql的四种隔离级别
查看>>
Mysql学习总结(59)——数据库分库分表策略总结
查看>>
Mysql学习总结(5)——MySql常用函数大全讲解
查看>>
Mysql学习总结(60)——并发量大、数据量大的互联网业务数据库设计规范总结
查看>>
Mysql学习总结(61)——MySQL优化之DBA级优化整理汇总
查看>>
Mysql学习总结(62)——MySQL连接com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link问题
查看>>
Mysql学习总结(63)——Mysql数据库架构方案选择与分析
查看>>
Mysql学习总结(64)——Mysql配置文件my.cnf各项参数解读
查看>>
Mysql学习总结(65)——项目实战中常用SQL实践总结
查看>>
Mysql学习总结(66)——设置MYSQL数据库编码为UTF-8
查看>>
Mysql学习总结(67)——MYSQL慢查询日志
查看>>
Mysql学习总结(68)——MYSQL统计每天、每周、每月、每年数据 SQL 总结
查看>>
Mysql学习总结(69)——Mysql EXPLAIN 命令使用总结
查看>>
Mysql学习总结(6)——MySql之ALTER命令用法详细解读
查看>>
Mysql学习总结(70)——MySQL 优化实施方案
查看>>
Mysql学习总结(71)——MySQL 重复记录查询与删除总结
查看>>
Mysql学习总结(71)——数据库介绍(MySQL安装 体系结构、基本管理)再回顾
查看>>
Mysql学习总结(72)——MySQL 开发者开发,设计规范再总结
查看>>
Mysql学习总结(73)——MySQL 查询A表存在B表不存在的数据SQL总结
查看>>