点击登录阿里云短信服务控制台--->点击  添加签名 

这里需要注意的时,因为现在阿里云管控的比较严格!!!要求申请之前必须有已经注册备案过的域名网站在使用!!!如果没有,就没必要往下面看了。

点击进来以后,按照要求填写:因为一个账号只能选购一种,所以我这里就没法仔细演示了。

添加完成之后,等待审核!!!!一般2个小时就会出来审核结果了,这里我因为注册申请时填写规则有误,足足审核了7次才通过!!!!!

二:模板管理

点击添加模板:

然后点击添加即可,一把2-3个小时就可以申请出结果了。

三:获取用户AccessKey

点击 继续使用AccessKey

 点击完成之后,点击图片中的创建AccessKey 将生成的  AccessKey  保存下来!

四:在项目代码中引入阿里云依赖, 根据你需要的版本不同,自己引入。我这里引入的可以作为参考

1:修配置文件

<dependencies><dependency><groupId>com.aliyun</groupId><artifactId>aliyun-java-sdk-core</artifactId></dependency>
</dependencies>

2、添加配置文件application.properties  将下面的服务地址改为自己对应的地址

# 服务端口
server.port=8204
# 服务名
spring.application.name=service-msm#返回json的全局时间格式
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
spring.jackson.time-zone=GMT+8spring.redis.host=192.168.44.165
spring.redis.port=6379
spring.redis.database= 0
spring.redis.timeout=1800000
spring.redis.lettuce.pool.max-active=20
spring.redis.lettuce.pool.max-wait=-1
#最大阻塞等待时间(负数表示没限制)
spring.redis.lettuce.pool.max-idle=5
spring.redis.lettuce.pool.min-idle=0# nacos服务地址
spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848aliyun.sms.regionId=default
aliyun.sms.accessKeyId=LT6I0Y5633pX89qC
aliyun.sms.secret=jX8D04Dm12I3gGKj345FYSzu0fq8mT

3:创建一个SpringBoot  启动类

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置
@EnableDiscoveryClient
public class ServiceMsmApplication {public static void main(String[] args) {SpringApplication.run(ServiceMsmApplication.class, args);}
}/因为没有在配置文件中配置数据库的信息,害怕报错,所以取消数据源自动自动配置

4:添加一个配置工具类类

@Component
public class ConstantPropertiesUtils implements InitializingBean {//InitializingBean  初始化bean  让spring 容器一初始化就加载@Value("${aliyun.sms.regionId}")private String regionId;@Value("${aliyun.sms.accessKeyId}")private String accessKeyId;@Value("${aliyun.sms.secret}")private String secret;public static String REGION_Id;public static String ACCESS_KEY_ID;public static String SECRECT;@Overridepublic void afterPropertiesSet() throws Exception {REGION_Id=regionId;ACCESS_KEY_ID=accessKeyId;SECRECT=secret;}
}

在项目中编写:

MsmApiController:
package com.hospital.controller;import com.hospital.common.result.Result;
import com.hospital.service.MsmService;
import com.hospital.utils.RandomUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.concurrent.TimeUnit;@RestController
@RequestMapping("/api/msm")
@SuppressWarnings("ALL")
public class MsmApiController {@Autowiredprivate MsmService msmService;@Autowiredprivate RedisTemplate<String,String> redisTemplate;//将手机验证码存放到redis  中,并设置过期时间@ApiOperation(value = "发送手机验证码")@GetMapping("send/{phone}")public Result sendCode(@PathVariable(required = true) String phone){// phone  作为redis  中的key,  code  作为redis  中的value值String code = redisTemplate.opsForValue().get(phone);if (!StringUtils.isEmpty(code)) {//这里为什么从redis 拿取 验证码  我理解的是 ,因为redis 验证码我们给他设置了时间限制,所以在规定时间内,验证码//可以多次使用,一旦时间到期之后,我们就需要从新生成6位数的验证码了。return Result.ok();}//生成六位验证码code = RandomUtil.getSixBitRandom();//调用service 方法,整合阿里云短信服务进行发送Boolean isSend = msmService.send(phone,code);//返回的Boolean 值进行判断 ,如果发送信息成功,即存入到redis 中,如果没有则提示验证码发送失败if (isSend) {//放到redis中规定时间内有效redisTemplate.opsForValue().set(phone,code,2, TimeUnit.MINUTES);return Result.ok();} else {return Result.fail().message("发送短信失败!请重新发送");}}
}
MsmService
@Service
public interface MsmService {Boolean send(String phone, String code);
}
MsmServiceImpl
package com.hospital.service.impl;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 com.hospital.service.MsmService;
import com.hospital.utils.ConstantPropertiesUtils;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;import java.util.HashMap;
import java.util.Map;@Service
public class MsmServiceImpl implements MsmService {//根据手机号,存入验证码@Overridepublic Boolean send(String phone, String code) {//判断手机号是否为空if (StringUtils.isEmpty(phone)) {return false;}//整合阿里云的短信服务DefaultProfile profile = DefaultProfile.getProfile(ConstantPropertiesUtils.REGION_Id,ConstantPropertiesUtils.ACCESS_KEY_ID,ConstantPropertiesUtils.SECRECT);IAcsClient client = new DefaultAcsClient(profile);CommonRequest request = new CommonRequest();//request.setProtocol(ProtocolType.HTTPS);request.setMethod(MethodType.POST);request.setDomain("dysmsapi.aliyuncs.com");request.setVersion("2017-05-25");request.setAction("SendSms");
//        request.setSysAction();//手机号request.putQueryParameter("PhoneNumbers", phone);//签名名称request.putQueryParameter("SignName", "自己申请的短信签名");//模板coderequest.putQueryParameter("TemplateCode", "短信模板CODE");//验证码  使用json格式   {"code":"123456"}Map<String,Object> param = new HashMap();param.put("code",code);request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param));//调用方法进行短信发送try {CommonResponse response = client.getCommonResponse(request);System.out.println(response.getData());return response.getHttpResponse().isSuccess();} catch (ServerException e) {e.printStackTrace();} catch (ClientException e) {e.printStackTrace();}return false;}
}
ConstantPropertiesUtils  工具类
@Component
public class ConstantPropertiesUtils implements InitializingBean {//InitializingBean  初始化bean  让spring 容器一初始化就加载@Value("${aliyun.sms.regionId}")private String regionId;@Value("${aliyun.sms.accessKeyId}")private String accessKeyId;@Value("${aliyun.sms.secret}")private String secret;public static String REGION_Id;public static String ACCESS_KEY_ID;public static String SECRECT;@Overridepublic void afterPropertiesSet() throws Exception {REGION_Id=regionId;ACCESS_KEY_ID=accessKeyId;SECRECT=secret;}
RandomUtil  工具类
public class RandomUtil {private static final Random random = new Random();private static final DecimalFormat fourdf = new DecimalFormat("0000");private static final DecimalFormat sixdf = new DecimalFormat("000000");public static String getFourBitRandom() {return fourdf.format(random.nextInt(10000));}public static String getSixBitRandom() {return sixdf.format(random.nextInt(1000000));}/*** 给定数组,抽取n个数据* @param list* @param n* @return*/public static ArrayList getRandom(List list, int n) {Random random = new Random();HashMap<Object, Object> hashMap = new HashMap<Object, Object>();// 生成随机数字并存入HashMapfor (int i = 0; i < list.size(); i++) {int number = random.nextInt(100) + 1;hashMap.put(number, i);}// 从HashMap导入数组Object[] robjs = hashMap.values().toArray();ArrayList r = new ArrayList();// 遍历数组并打印数据for (int i = 0; i < n; i++) {r.add(list.get((int) robjs[i]));System.out.print(list.get((int) robjs[i]) + "\t");}System.out.print("\n");return r;}
}

开启启动类调接口测试

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置
@EnableDiscoveryClient
@ComponentScan(basePackages = {""})
public class ServiceMsmApplication {public static void main(String[] args) {SpringApplication.run(ServiceMsmApplication.class, args);}
}

2022如何使用个人阿里云短信服务?相关推荐

  1. 如何使用阿里云短信服务实现登录页面,手机验证码登录?

    1:个人如何使用阿里云短信服务? 2022如何使用个人阿里云短信服务?_linxiMY的博客-CSDN博客添加完成之后,等待审核!一般2个小时就会出来审核结果了,这里我因为注册申请时填写规则有误,足足 ...

  2. 单点登录常见解决方式和阿里云短信服务

    1 单点登录(SSO) 三种常见方式: 1.1 第一种:session广播机制实现(已淘汰) 概念:就是session复制,一个模块登录后,该模块session存放用户登录信息,再把该session复 ...

  3. 谷粒学院-阿里云短信服务

    新建短信微服务 1.在service模块下创建子模块service_msm 2.创建controller和service代码 3.配置application.properties # 服务端口 ser ...

  4. 阿里云短信服务接入流程

    背景 在最近的项目需求中, 需要将复用阿里短信能力, 实现用户手机号验证: 如果用户号码验证通过后, 可以让用户上传文件资料并进行打印. 故核心内容就是: 阿里云短信服务接入, 下面我们主要来介绍下阿 ...

  5. 微信小程序云开发,使用阿里云短信服务,搜索员工生日定期发送短信。

    相关API文档地址: 阿里云短信服务API文档地址 小程序云开发云函数正则匹配API文档地址 小程序云开发云函数定时触发器 1.登录阿里云,购买短信服务并添加签名和模板 2., 登录阿里云,鼠标放在右 ...

  6. legend3---PHP使用阿里云短信服务

    legend3---PHP使用阿里云短信服务 一.总结 一句话总结: 使用步骤照官方文档,代码拷贝即可 1.php使用阿里云短信服务的步骤? 入驻阿里云->开通短信服务->获取Access ...

  7. Zabbix 3.4.3 使用阿里云短信服务进行报警

    一.阿里云短信服务 有时候微信报警或者邮寄报警我们可能会有遗忘,今天我主要介绍使用阿里云的短信服务进行短信报警. 1.1.首先开通阿里云短信服务 1.2 创建签名 签名用途选择:公众号或小程序的全称或 ...

  8. SpringBoot-短信验证码-快速入门Demo(含redis)(手把手教你开通阿里云短信服务到写出个最终代码来)

    B站小狂神-此博客的内容就是看了这个视频的总结(博主自己写的哦~并非转载) 视频链接-[狂神说]通俗易懂的阿里云短信业务实战教程(露脸) 您是否还在为别人的项目有短信功能自己的却没有? 您是否还在为自 ...

  9. 阿里云短信服务bug

    接入阿里云短信服务,在springboot中写测试方法,执行到 IClientProfile profile = DefaultProfile.getProfile("cn-hangzhou ...

最新文章

  1. 两机五节点电力系统的潮流仿真计算_南科大杨再跃课题组在电力系统、机器学习等领域取得重要研究成果...
  2. Go的channel与map是否并发安全以及原因
  3. JavaSE——面向对象高级(继承、final关键字、抽象类与接口、多态、Object类、内部类、包装类、可变参数)
  4. Type mismatch: cannot convert from int to Object错误
  5. 美化UI合约区块链学习版系统+交易大厅
  6. Maven - 构建与命令
  7. 【kafka】flink 发送 数据到 kafka 报错 Memory records is not writable
  8. python内置对象是什么_Python的内置对象类型——元组、文件,python
  9. eclipse读取mysql数据乱码_eclipse从数据库获取数据时控制台乱码问题
  10. MUI class=mui-switch开关 JQuery 控制开关
  11. 序列化,pickle,shelve,json,configparser
  12. 愚人节的礼物Java
  13. android平板电脑维修电路图,图解Windows10平板电脑电路原理和维修
  14. Java KeyTool 的使用
  15. mro python_python中的MRO算法[转]
  16. 商业广告的本质在于其商业性 在于激发对品牌的想象
  17. 第四章:Django特级篇
  18. 好嗨呦是谁_抖音好嗨哟原版 《好嗨哟》原唱是谁怎么火起来的
  19. 谈判技巧——执行合同
  20. 计算机及应用成绩表,Excel的基本应用—制作成绩表_计算机软件及应用_IT计.ppt...

热门文章

  1. 生信知识与软件小结:BWA、wtdbg
  2. CPCL/TSPL指令查看仿真
  3. 智慧安防智能化发展趋势及解决方案
  4. C语言的time函数和localtime函数
  5. MongoDB的可视化工具(Studio 3T)
  6. 基础阶段(四)——MDP的动态规划算法
  7. 智力答题查询器,适用于新英雄年代和征途
  8. 鸿蒙手机系统测评,最熟悉的陌生人 HarmonyOS 2系统评测
  9. 【原创】KMP算法详解
  10. 各行各业如何评价iMindMap思维导图