springboot2.x 接入阿里云市场短信发送的实现

作者:9540王楠楠 时间:2023-09-20 23:03:57 

1.短信平台购买次数地址

https://market.aliyun.com/products/57000002/cmapi00046920.html

提供测试模板、免审核、测试成本更低

2.测试学习使用的话,3块钱75多次够用了

springboot2.x 接入阿里云市场短信发送的实现

3.购买后在跳转成功页面记录

AppSecret、key、code

springboot2.x 接入阿里云市场短信发送的实现

 4.记录模板ID

springboot2.x 接入阿里云市场短信发送的实现

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

springboot2.x 接入阿里云市场短信发送的实现

发送类


@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");
   }
}

发送成功咯

springboot2.x 接入阿里云市场短信发送的实现

来源:https://blog.csdn.net/wnn654321/article/details/121578434

标签:springboot,阿里云,短信,发送
0
投稿

猜你喜欢

  • C#实现的Socket服务器端、客户端代码分享

    2021-09-29 00:22:28
  • C#使用ICSharpCode.SharpZipLib.dll进行文件的压缩与解压功能

    2022-01-09 15:30:45
  • Mybatis延迟加载的实现方式

    2023-08-19 11:07:32
  • Mybatis关联查询结果集对象嵌套的具体使用

    2021-07-12 22:09:18
  • C#语言中字符类char的使用方法(总结)

    2022-09-04 17:25:43
  • Android自带emoji表情的使用方法详解

    2021-11-25 09:28:22
  • C#操作session的类实例

    2023-07-17 13:57:19
  • C#检查指定对象是否存在于ArrayList集合中的方法

    2023-07-28 00:45:17
  • Android开发SavedState Jetpack状态保存利器

    2023-02-12 19:49:49
  • springboot如何读取自定义properties并注入到bean中

    2022-12-16 22:22:09
  • java基础之包装类的介绍及使用

    2023-01-10 17:45:29
  • 使用Files.walkFileTree遍历目录文件

    2021-09-27 06:12:40
  • C#中[]的几种用法示例代码

    2022-03-20 05:50:46
  • springboot集成elasticsearch7的图文方法

    2022-05-15 19:46:11
  • Java 中的 String对象为什么是不可变的

    2023-08-04 03:24:32
  • android canvas使用line画半圆

    2022-01-05 17:58:57
  • 详解Android Studio安装ButterKnife插件(手动安装)

    2023-07-06 13:59:32
  • SpringBoot项目从搭建到发布一条龙

    2023-11-21 09:28:44
  • springboot实现配置两个parent的方法

    2022-04-05 07:54:43
  • 简单易懂的java8新特性之lambda表达式知识总结

    2023-04-14 23:44:42
  • asp之家 软件编程 m.aspxhome.com