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

打印 上一主题 下一主题

主题 1856|帖子 1856|积分 5568

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
2023年阿里云短佩服务个人申请模板已经申请不到了,现在使用测试模板实现发送短信功能
但你手机上吸收到的是模板字符串,具体验证码可以自行存到Redis大概输出到控制台
步调:
平台链接:
https://dysms.console.aliyun.com/quickstart
依次点击下面图片的提示

设置测试模板参数
 

 
代码实现:
 controller层
  
  1.     //发送短信的方法
  2.     @GetMapping("send/{phone}")
  3.     public R sendSms(@PathVariable String phone){
  4.         //1、从redis获取验证码,如果获取到直接返回
  5.         String code = redisTemplate.opsForValue().get(phone);
  6.         if (!StringUtils.isEmpty(code)) {
  7.             return R.ok().message("短信已发送");
  8.         }
  9.         //2 如果redis获取 不到,进行阿里云发送
  10.         //生成随机值,传递阿里云进行发送
  11.         code = RandomUtil.getFourBitRandom();
  12.         Map<String,Object> param = new HashMap<>();
  13.         param.put("code", code);
  14.         boolean isSend = smsService.send(phone, "SMS_154950909", param);
  15.         if(isSend) {
  16.             //保存到Redis
  17.             redisTemplate.opsForValue().set(phone,code,5, TimeUnit.MINUTES);
  18.             return R.ok().message("发送短信成功");
  19.         } else {
  20.             return R.error().message("发送短信失败");
  21.         }
  22.     }
  23. }
复制代码
 service接口
    
  1. boolean send(String phone, String sms_154950909, Map<String, Object> param);
复制代码
 service实现
  
  1. @Override
  2. public boolean send(String phone, String templateCode, Map<String, Object> param) {
  3.     DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<your-access-key-id>", "<your-access-key-secret>");
  4.     IAcsClient client = new DefaultAcsClient(profile);
  5.     SendSmsRequest request = new SendSmsRequest();
  6.     request.setSignName("阿里云短信测试");
  7.     request.setTemplateCode("SMS_154950909");
  8.     request.setPhoneNumbers("***********");
  9.     request.setTemplateParam("{"code":"1234"}");
  10.     try {
  11.         SendSmsResponse response = client.getAcsResponse(request);
  12.         System.out.println(new Gson().toJson(response));
  13.         //获得响应状态码,返回true
  14.         return response.getCode().equals("OK");
  15.     } catch (ServerException e) {
  16.         e.printStackTrace();
  17.     } catch (ClientException e) {
  18.         System.out.println("ErrCode:" + e.getErrCode());
  19.         System.out.println("ErrMsg:" + e.getErrMsg());
  20.         System.out.println("RequestId:" + e.getRequestId());
  21.     }
  22.     return false;
  23. }
复制代码
这样你的手机就能吸收到短信了~~~~~~~

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

欢乐狗

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表