阿里云短信服务

本文介绍了如何开通和使用阿里云短信服务。首先,通过管理控制台开通服务并申请签名和模板。接着,在项目中引入相关依赖,并在Controller中生成验证码并存储到Redis。最后,编写Service实现短信发送,参考官方Demo进行实现。
摘要由CSDN通过智能技术生成

1 开通阿里云短信服务 进入管理控制台
在这里插入图片描述
2 点开国内消息 申请签名,模板。
在这里插入图片描述
3 引入pom

  <dependencies>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.28</version>
        </dependency>
        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.3.3</version>
        </dependency>
    </dependencies>

4 编写controller 生成验证码并且存入redis,再发短信

@GetMapping("send/{phone}")
    public R sendMsm(@PathVariable String phone){

        String code = redisTemplate.opsForValue().get(phone);
        if (!StringUtils.isEmpty(code)){
            return R.ok();
        }else {

            //生成随机验证码值
            String sixBitRandom = RandomUtil.getSixBitRandom();
            Map<String, Object> param = new HashMap<>();
            param.put("code", sixBitRandom);
            Boolean isSend = msmService.send(param, phone);
            if (isSend) {
                redisTemplate.opsForValue().set(phone, sixBitRandom, 5, TimeUnit.MINUTES);
                return R.ok();
            } else {
                return R.error().message("短信发送失败");
            }
        }

5 编写service,发送短信 可参考Demo
在这里插入图片描述

 public Boolean send(Map<String, Object> param, String phone) {
            DefaultProfile profile = DefaultProfile.getProfile("default", "LTAI4G9bA2AYLZGkjUu2hqaA", "5xzmpKAAE5HEmvZq6Q68VpEsVg3iT0");
            IAcsClient client = new DefaultAcsClient(profile);
            CommonRequest request = new CommonRequest();
            //固定的不能改
            request.setSysMethod(MethodType.POST);
            request.setSysDomain("dysmsapi.aliyuncs.com");
            request.setSysVersion("2017-05-25");
            request.setSysAction("SendSms");

            request.putQueryParameter("PhoneNumbers", phone);
            //签名名字
            request.putQueryParameter("SignName", "QGB在线教育网站");
            //模版CODE
            request.putQueryParameter("TemplateCode", "SMS_196652644");
            request.putQueryParameter("TemplateParam", JSONObject.toJSONString(param));
            try {
                CommonResponse response = client.getCommonResponse(request);
                System.out.println(response.getData());
                boolean success = response.getHttpResponse().isSuccess();
                return success;
            } catch (ClientException e) {
                e.printStackTrace();
            }
        return false;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值