
spring: cloud: alicloud: access-key: xxx secret-key: xxx
demo类:
@Autowired
private ISmsService smsService ;
/**
* sms
*/
@RequestMapping("/sms")
@RateLimiter(value = "smsCode", param = "#telphone", max = 1, ttl = 60)
public SendSmsResponse sendMessage(String telphone) {
// TODO 定义一个ENUM类(短信类别, 短信模板)
String code = $.random(4, RandomType.INT);
CacheKey key = iCacheKey.getKey("smsCode", telphone);
micaRedisCache.set(key, code);
// 组装请求对象-具体描述见控制台-文档部分内容
SendSmsRequest request = new SendSmsRequest();
// 必填:待发送手机号
request.setPhoneNumbers(telphone);
// 必填:短信签名-可在短信控制台中找到
request.setSignName("xxx");
// 必填:短信模板-可在短信控制台中找到
request.setTemplateCode("SMS_172010502");
// 可选:模板中的变量替换JSON串,如模板内容为"【企业级分布式应用服务】,您的验证码为${code}"时,此处的值为
request.setTemplateParam("{\"code\":\"" + code + "\"}");
SendSmsResponse sendSmsResponse ;
try {
// redi存储telphone:code
sendSmsResponse = smsService.sendSmsRequest(request);
}
catch (ClientException e) {
e.printStackTrace();
sendSmsResponse = new SendSmsResponse();
}
return sendSmsResponse ;
}@RateLimiter注解为mica-plus-redis限流注解。很好用https://gitee.com/596392912/mica
扫一扫访问 Blade技术社区 移动端