SpringBoot整合阿里云短信服务的方法

网友投稿 835 2022-11-29

SpringBoot整合阿里云短信服务的方法

SpringBoot整合阿里云短信服务的方法

目录一、新建短信微服务1、在service模块下创建子模块service-msm3.配置application.properties4、创建启动类二、阿里云短信服务三、编写发送短信接口1.在service-msm的pom中引入依赖2.编写controller,根据手机号发送短信3.编写service

一、新建短信微服务

1、在service模块下创建子模块service-msm

2.创建controller和service代码

3.配置application.properties

# 服务端口

server.port=8006

# 服务名

spring.application.name=service-msm

# mysql数据库连接

spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver

spring.datasource.url=jdbc:mysql://localhost:3306/guli?serverTimezone=GMT%2B8

spring.datasource.username=root

spring.datasource.password=root

spring.redis.host=192.168.44.131

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=-http://1

#最大阻塞等待时间(负数表示没限制)

spring.redis.lettuce.pool.max-idle=5

spring.redis.lettuce.pool.min-idle=0

#最小空闲

#返回json的全局时间格式

spring.jackson.date-format=yyyy-MM-dd HH:mm:ss

spring.jackson.time-zone=GMT+8

#配置mapper xml文件的路径

mybatis-plus.mapper-locations=classpath:com/atguigu/cmsservice/mapper/xml/*.xml

#mybatis日志

mybatis-plus.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl

4、创建启动类

@ComponentScan({"com.south"})

@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)//取消数据源自动配置

public class ServiceMsmApplication {

public static void main(String[] args) {

SpringApplication.run(ServiceMsmApplication.class, args);

}

}

二、阿里云短信服务

帮助文档:

https://help.aliyun.com/product/44282.html?spm=5176.10629532.0.0.38311cbeYzBm73

三、编写发送短信接口

1.在service-msm的pom中引入依赖

com.alibaba

fastjson

com.aliyun

2.编写controller,根据手机号发送短信

@CrossOrigin //跨域

public class MsmApiController {

@Autowired

private MsmService msmService;

@Autowired

private RedisTemplate redisTemplate;

@GetMapping(value = "/send/{phone}")

public R code(@PathVariable String phone) {

String code = redisTemplate.opsForValue().get(phone);

if(!StringUtils.isEmpty(code)) return R.okOCjXwjJAx();

code = RandomUtil.getFourBitRandom();

Map param = new HashMap<>();

param.put("code", code);

boolean isSend = msmService.send(phone, "SMS_180051135", param);

if(isSend) {

redisTemplate.opsForValue().set(phone, code,5,TimeUnit.MINUTES);

return R.ok();

} else {

return R.error().message("发送短信失败");

}

}

}

3.编写service

@Service

public class MsmServiceImpl implements MsmService {

/**

* 发送短信

*/

public boolean send(String PhoneNumbers, String templateCode, Map param) {

if(StringUtils.isEmpty(PhoneNumbers)) return false;

DefaultProfile profile =

DefaultProfile.getProfile("default", "LTAIq6nIPY09VROj", "FQ7UcixT9wEqMv9F35nORPqKr8XkTF");

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.putQueryParameter("PhoneNumbers", PhoneNumbers);

request.putQueryParameter("SignName", "我的谷粒在线教育网站");

request.putQueryParameter("TemplateCode", templateCode);

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;

}

}

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

上一篇:windows环境安装Kafka
下一篇:Go 聚合类型 结构体 struct 定义 声明 初始化 嵌入
相关文章

 发表评论

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