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

网友投稿 283 2022-10-31


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

引入腾讯云依赖

com.tencentcloudapi

tencentcloud-sdk-java

3.1.111

com.github.qcloudsms

qcloudsms

1.0.6

其次配置属性类

import lombok.Data;

import org.springframework.boot.context.properties.ConfigurationProperties;

/**

* 腾讯云发送短信 配置信息类

*/

@Data

@ConfigurationProperties(prefix = "tanhua.txsms") // 读取aphttp://plication中的tanhua.sms的属性

public class TxProperties {

// AppId 1400开头的

private int AppId;

// 短信应用SDK AppKey

private String AppKey;

// 短信模板ID

private int TemplateId;

// 签名

private String signName;

}

其次配置工具类

package com.He.commons.templates;

import com.He.commons.properties.TxProperties;

import com.alibaba.fastjson.JSONException;

import com.github.qcloudsms.SmsSingleSender;

import com.github.qcloudsms.SmsSingleSenderResult;

import com.github.qcloudsms.httpclient.HTTPException;

import lombok.extern.slf4j.Slf4j;

import java.io.IOException;

/**

* 腾讯云发送短信模板对象,封装了发送短信的api

*/

@Slf4j

public class TxSmsTemplate {

private TxProperties txProperties;

public TxSmsTemplate(TxProperties txProperties) {

this.txProperties = txProperties;

}

/**

* 指定模板ID发送短信

*

* @param number 用户手机号

* @return OK 成功 null 失败

*/

public String sendMesModel(String number,String value) {

try {

String[] params = {value};//{参数}

SmsSingleSender ssender = new SmsSingleSender(txProperties.getAppId(), txProperties.getAppKey());

SmsSingleSenderResult result = ssender.sendWithParam("86", number,

txProperties.getTemplateId(), params, txProperties.getSignName(), "", ""); // 签名参数未提供或者为空时,会使用默认签名发送短信

System.out.print(result);

return result.errMsg; //OK

} catch (HTTPException e) {

// HTTP响应码错误

log.info("短信发送失败,HTTP响应码错误!!!!!!!!!!!!");

// e.printStackTrace();

} catch (JSONException e) {

// json解析错误

log.info("短信发送失败,json解析错误!!!!!!!!!!!!");

//e.printStackTrace();

} catch (IOException e) {

// 网络IO错误

log.info("短信发送失败,网络IO错误!!!!!!!!!!!!");

// e.printStackTrace();

}

return null;

}

}

注册腾讯云短信到容器中

/**

* 短信模块自动装配类

* 根据springboot自动装备原理

* 将smsTemplate对象注入到容器中

* 要配置META-INF/spring.factories

*/

@Configuration

@EnableConfigurationProperties({TxProperties.class})

public class CommonsAutoConfiguration {

/**

* 注册txSmsTemplate到容器中

* @param txProperties

* @return

*/

@Bean

public TxSmsTemplate txSmsTemplate(TxPropePVXBxVrties txProperties) {

return new TxSmsTemplate(txProperties);

}

}

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

org.springframework.boot.autoconfigure.EnableAutoConfiguration=\

com.He.commons.CommonsAutoConfiguration

最后测试一下

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import org.springframework.test.context.junit4.SpringRunner;

@SpringBootTest

@RunWith(SpringRunner.class)

public class TXTest {

@Autowired

private TxSmsTemplate txSmsTemplate;

@Test

public void TestTxsms(){

String result = txSmsTemplate.sendMesModel("1511938****", "666666");//第一个参数为手机号,第二个发送短信的内容

Systhttp://em.out.println(result); // result等于OK 就表示发送成功

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:接口在线测试(接口测试)
下一篇:mock(mocking是什么意思)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~