简单接入短信服务

mymx2
mymx2 2019-09-06 11:19
阅读需:0

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

评论
  • 消灭零回复