springboot整合腾讯云短信开箱即用的示例代码

时间:2022-06-07 11:29:32

引入腾讯云依赖

  1. <!--腾讯云核心API-->
  2. <dependency>
  3. <groupId>com.tencentcloudapi</groupId>
  4. <artifactId>tencentcloud-sdk-java</artifactId>
  5. <version>3.1.111</version>
  6. </dependency>
  7. <dependency>
  8. <groupId>com.github.qcloudsms</groupId>
  9. <artifactId>qcloudsms</artifactId>
  10. <version>1.0.6</version>
  11. </dependency>

其次配置属性类

  1. import lombok.Data;
  2. import org.springframework.boot.context.properties.ConfigurationProperties;
  3.  
  4. /**
  5. * 腾讯云发送短信 配置信息类
  6. */
  7. @Data
  8. @ConfigurationProperties(prefix = "tanhua.txsms") // 读取application中的tanhua.sms的属性
  9. public class TxProperties {
  10. // AppId 1400开头的
  11. private int AppId;
  12. // 短信应用SDK AppKey
  13. private String AppKey;
  14. // 短信模板ID
  15. private int TemplateId;
  16. // 签名
  17. private String signName;
  18.  
  19. }

其次配置工具类

  1. package com.He.commons.templates;
  2.  
  3. import com.He.commons.properties.TxProperties;
  4. import com.alibaba.fastjson.JSONException;
  5. import com.github.qcloudsms.SmsSingleSender;
  6. import com.github.qcloudsms.SmsSingleSenderResult;
  7. import com.github.qcloudsms.httpclient.HTTPException;
  8. import lombok.extern.slf4j.Slf4j;
  9.  
  10. import java.io.IOException;
  11.  
  12. /**
  13. * 腾讯云发送短信模板对象,封装了发送短信的api
  14. */
  15. @Slf4j
  16. public class TxSmsTemplate {
  17.  
  18. private TxProperties txProperties;
  19.  
  20. public TxSmsTemplate(TxProperties txProperties) {
  21. this.txProperties = txProperties;
  22. }
  23.  
  24. /**
  25. * 指定模板ID发送短信
  26. *
  27. * @param number 用户手机号
  28. * @return OK 成功 null 失败
  29. */
  30. public String sendMesModel(String number,String value) {
  31. try {
  32. String[] params = {value};//{参数}
  33. SmsSingleSender ssender = new SmsSingleSender(txProperties.getAppId(), txProperties.getAppKey());
  34. SmsSingleSenderResult result = ssender.sendWithParam("86", number,
  35. txProperties.getTemplateId(), params, txProperties.getSignName(), "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信
  36. System.out.print(result);
  37. return result.errMsg; //OK
  38. } catch (HTTPException e) {
  39. // HTTP响应码错误
  40. log.info("短信发送失败,HTTP响应码错误!!!!!!!!!!!!");
  41. // e.printStackTrace();
  42. } catch (JSONException e) {
  43. // json解析错误
  44. log.info("短信发送失败,json解析错误!!!!!!!!!!!!");
  45. //e.printStackTrace();
  46. } catch (IOException e) {
  47. // 网络IO错误
  48. log.info("短信发送失败,网络IO错误!!!!!!!!!!!!");
  49. // e.printStackTrace();
  50. }
  51. return null;
  52. }
  53. }

注册腾讯云短信到容器中

  1. /**
  2. * 短信模块自动装配类
  3. * 根据springboot自动装备原理
  4. * 将smsTemplate对象注入到容器中
  5. * 要配置META-INF/spring.factories
  6. */
  7. @Configuration
  8. @EnableConfigurationProperties({TxProperties.class})
  9. public class CommonsAutoConfiguration {
  10. /**
  11. * 注册txSmsTemplate到容器中
  12. * @param txProperties
  13. * @return
  14. */
  15. @Bean
  16. public TxSmsTemplate txSmsTemplate(TxProperties txProperties) {
  17. return new TxSmsTemplate(txProperties);
  18. }
  19. }

在resources中配置启动自动装配类

springboot整合腾讯云短信开箱即用的示例代码

  1. org.springframework.boot.autoconfigure.EnableAutoConfiguration=\
  2. com.He.commons.CommonsAutoConfiguration

最后测试一下

  1. import org.junit.Test;
  2. import org.junit.runner.RunWith;
  3. import org.springframework.beans.factory.annotation.Autowired;
  4. import org.springframework.boot.test.context.SpringBootTest;
  5. import org.springframework.test.context.junit4.SpringRunner;
  6.  
  7. @SpringBootTest
  8. @RunWith(SpringRunner.class)
  9. public class TXTest {
  10. @Autowired
  11. private TxSmsTemplate txSmsTemplate;
  12.  
  13. @Test
  14. public void TestTxsms(){
  15. String result = txSmsTemplate.sendMesModel("1511938****", "666666");//第一个参数为手机号,第二个发送短信的内容
  16. System.out.println(result); // result等于OK 就表示发送成功
  17. }
  18. }

返回OK则表示发送成功
springboot整合腾讯云短信开箱即用的示例代码

到此这篇关于springboot整合腾讯云短信开箱即用的文章就介绍到这了,更多相关springboot整合腾讯云短信内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://blog.csdn.net/MTQ851/article/details/115011556