springboot2.x 接入阿里云市场短信发送的实现
作者:9540王楠楠 发布时间:2023-09-20 23:03:57
标签:springboot,阿里云,短信,发送
1.短信平台购买次数地址
https://market.aliyun.com/products/57000002/cmapi00046920.html
提供测试模板、免审核、测试成本更低
2.测试学习使用的话,3块钱75多次够用了
3.购买后在跳转成功页面记录
AppSecret、key、code
4.记录模板ID
5.上代码环节
@Configuration
public class RestTemplateConfig {
@Bean
public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory){
return new RestTemplate(requestFactory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setReadTimeout(10000);
factory.setConnectTimeout(10000);
return factory;
}
}
增加配置
@ConfigurationProperties(prefix = "sms")
@Configuration
@Data
public class SmsConfig {
private String templateId;
private String appCode;
}
application.yml
发送类
@Component
@Slf4j
public class SmsComponent {
/**
* 发送地址
*/
private static final String URL_TEMPLATE = "https://jmsms.market.alicloudapi.com/sms/send?mobile=%s&templateId=%s&value=%s";
@Autowired
private RestTemplate restTemplate;
@Autowired
private SmsConfig smsConfig;
/**
* 发送短信验证码
* @param to
* @param templateId
* @param value
*/
public void send(String to,String templateId,String value){
String url = String.format(URL_TEMPLATE,to,templateId,value);
HttpHeaders headers = new HttpHeaders();
headers.set("Authorization","APPCODE "+smsConfig.getAppCode());
HttpEntity entity = new HttpEntity<>(headers);
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class);
log.info("url={},body={}",url,response.getBody());
if(response.getStatusCode().is2xxSuccessful()){
log.info("发送短信验证码成功");
}else {
log.error("发送短信验证码失败:{}",response.getBody());
}
}
}
测试类验证
@RunWith(SpringRunner.class)
@SpringBootTest(classes = AccountApplication.class)
@Slf4j
public class SmsTest {
@Autowired
private SmsComponent smsComponent;
@Autowired
private SmsConfig smsConfig;
@Test
public void testSendSms(){
smsComponent.send("138XXXXXXX",smsConfig.getTemplateId(),"666888");
}
}
发送成功咯
来源:https://blog.csdn.net/wnn654321/article/details/121578434


猜你喜欢
- SpringBoot项目中新增脱敏功能项目背景目前正在开发一个SpringBoot项目,此项目有Web端和微信小程序端。web端提供给工作人
- 只是为了研究下idea这款编译器怎么使用。开门见山,说下如何配置这款编译器,不配置也能用,但是强迫症表示不服。下面直入正题:下载与安装就不说
- SpringBoot访问html和js等静态资源配置把静态资源放到resources/static下,这是springboot静态资源默认访
- 本文介绍了两种密码加密的方法,这两种很常见可以再百度随意找到。1.摩斯密码;说道密码加密不得不提的方法。很是经典。首先说一下他的对照表,直接
- 项目中最近用到各种图表,本来打算用第三方的,例如MPAndroid,这是一个十分强大的图表库,应用起来十分方便,但是最终发现和设计不太一样,
- 背景最近再做一个需求,就是对站点的一些事件进行埋点,说白了就是记录用户的访问行为。那么这些数据怎么保存呢,人家点一下保存一下?显然不合适,肯
- 游标查询(scroll)简介scroll 查询 可以用来对 Elasticsearch 有效地执行大批量的文档查询,而又不用付出深度分页那种
- 二叉排序树,又称为二叉查找树。它或者是一颗空树,或者是具有下列性质的二叉树:若它的左子树不为空。则左子树上所有的结点的值均小于跟的结点值若它
- 以Java web的方式显示图片到浏览器以Java web的方式下载服务器文件到浏览器以Spring Boot的方式显示图片或下载文件到浏览
- 如果有人对程序的崩溃原因做下统计的话,那么由于对象为空,但是又访问了对象的某个属性而导致的崩溃,也许会是程序崩溃的第一大原因了。比如我们在使
- renameTo方法public boolean renameTo(File dest),File类中的renameTo方法可以操作文件或目
- Android中RecyclerView点击item展开列表详细内容效果如下:依然是xml文件的设计,使用了两个RelativeLayout
- 本文实例讲述了java GUI编程之监听操作。分享给大家供大家参考,具体如下:当点击Frame中的component组件时,会产生相应的效果
- 本文实例完成人机猜拳互动游戏的开发,供大家参考,具体内容如下阶段一:实验——分析业务,创建用户类1.分析业务,抽象出类、类的特征和行为2.创
- 更新了AS 3.1.2之后,发现新建Kotlin类,类注释依然木有,没办法只有自己动手了。方法很简单,编辑File Header就可以啦。只
- 下载地址:https://www.jb51.net/database/588158.html?_=1522396455592运行程序,关闭工
- 本文实例为大家分享了android自定义View实现五子棋的具体代码,供大家参考,具体内容如下先说一下吧,android的自定义View就是
- 1.由于springboot集成了tomcat,所以打包的时候不再使用war,而是使用jar <groupId>cn&
- 本文实例讲述了C#清除字符串内空格的方法,分享给大家供大家参考。具体如下:关键代码如下:/// <summary>/// 清除字
- 目录概述代码实现完整代码概述在PC端用.NET开发一个蓝牙下载的程序。实现在PC上查找周围的蓝牙设备(主要是手机),并将PC上的文件通过蓝牙