欢乐狗 发表于 2024-10-7 18:29:52

阿里云短佩服务---测试模板实现

2023年阿里云短佩服务个人申请模板已经申请不到了,现在使用测试模板实现发送短信功能
但你手机上吸收到的是模板字符串,具体验证码可以自行存到Redis大概输出到控制台
步调:
平台链接:
https://dysms.console.aliyun.com/quickstart
依次点击下面图片的提示
https://i-blog.csdnimg.cn/blog_migrate/a82e2ef591ad797bbd8dd6b2b9bcf357.png
设置测试模板参数
 https://i-blog.csdnimg.cn/blog_migrate/5ff410db13070d12a657c7d47a0a38fa.png
 
代码实现:
 controller层
       //发送短信的方法
    @GetMapping("send/{phone}")
    public R sendSms(@PathVariable String phone){

      //1、从redis获取验证码,如果获取到直接返回
      String code = redisTemplate.opsForValue().get(phone);

      if (!StringUtils.isEmpty(code)) {
            return R.ok().message("短信已发送");
      }

      //2 如果redis获取 不到,进行阿里云发送
      //生成随机值,传递阿里云进行发送
      code = RandomUtil.getFourBitRandom();

      Map<String,Object> param = new HashMap<>();
      param.put("code", code);
      boolean isSend = smsService.send(phone, "SMS_154950909", param);

      if(isSend) {
            //保存到Redis
            redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);
            return R.ok().message("发送短信成功");
      } else {
            return R.error().message("发送短信失败");
      }

    }
} service接口
    
boolean send(String phone, String sms_154950909, Map<String, Object> param); service实现
   @Override
public boolean send(String phone, String templateCode, Map<String, Object> param) {
    DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id>", "<your-access-key-secret>");

    IAcsClient client = new DefaultAcsClient(profile);


    SendSmsRequest request = new SendSmsRequest();
    request.setSignName("阿里云短信测试");
    request.setTemplateCode("SMS_154950909");
    request.setPhoneNumbers("***********");
    request.setTemplateParam("{\"code\":\"1234\"}");

    try {
      SendSmsResponse response = client.getAcsResponse(request);
      System.out.println(new Gson().toJson(response));
      //获得响应状态码,返回true
      return response.getCode().equals("OK");
    } catch (ServerException e) {
      e.printStackTrace();
    } catch (ClientException e) {
      System.out.println("ErrCode:" + e.getErrCode());
      System.out.println("ErrMsg:" + e.getErrMsg());
      System.out.println("RequestId:" + e.getRequestId());
    }
    return false;
}这样你的手机就能吸收到短信了~~~~~~~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 阿里云短佩服务---测试模板实现