栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

JAVA 实现阿里云的短信验证码

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JAVA 实现阿里云的短信验证码

调用发送短信代码

1、此处:String template = “SMS_22*****05”;这里修改为你自己的短信模板

    @Autowired
    private SendSmsImpl sendSms;
   
    
    @CrossOrigin
    @PostMapping("/aliyun")
    @ApiOperation(value = "发送阿里云短信验证码",response = R.class)
    public R aliyun(@Validated RequestAliyunNoteEntity requestAliyunNoteEntity) {
        //获取手机号,发送短信验证码
        String account = requestAliyunNoteEntity.getAccount();
        //code模板
        String template = "SMS_22*****05";
        //随机获取验证码-6位
        HashMap mp = new HashMap<>();
        StringBuilder sb = new StringBuilder();
        Random random = new Random();
        for(int i=0;i<6;i++){
            sb.append(random.nextInt(10));
        }
        mp.put("code",sb);
        //如果发送代码成功!那么就存储(替换)验证码到数据库
        boolean send = sendSms.send(account, template, mp);
        if(send){
            Boolean aBoolean = clientCodeService.saveNote(account, sb.toString());
            if(aBoolean){
                return R.ok();
            }else{
                return R.error("出现了点意外!");
            }
        }else{
            return R.error("刚刚发生了什么事儿?");
        }
    }
二、发送短信的主要代码
public interface SendSms {
    boolean send(String phoneNum, String templateCode, Map code);
}

1、此处:DefaultProfile profile = DefaultProfile.getProfile(“cn-hangzhou”, “参数2”, “参数3”); 需要将2、3参数修改为自己的accessKeyId和secret
2、此处:request.putQueryParameter(“SignName”, “参数2”);参数2需要修为自己的前面名称,否则不可用

@Service
public class SendSmsImpl implements SendSms{
    @Override
    public boolean send(String phoneNum, String CODE, Map code) {
        //链接阿里云
        DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "####5tNzdq3Gw8Wh########", "####qRNeKwUrEQjsAwIbIb########");
        //构建成客户端
        IAcsClient client = new DefaultAcsClient(profile);
        //构建请求
        CommonRequest request = new CommonRequest();
        request.setMethod(MethodType.POST);
        request.setDomain("dysmsapi.aliyuncs.com");
        request.setVersion("2017-05-25");
        request.setAction("SendSms");
        //自定义的参数(手机号、验证码、签名、模板)
        request.putQueryParameter("RegionId", "cn-hangzhou");
        request.putQueryParameter("PhoneNumbers", phoneNum);//手机号码
        request.putQueryParameter("SignName", "帮运天下");//签名名称
        request.putQueryParameter("TemplateCode", CODE);//模板的code
        //构建一个短信验证码
        request.putQueryParameter("TemplateParam", JSONObject.toJSONString(code));
        try {
            CommonResponse response = client.getCommonResponse(request);
            System.out.println(response.getData());
            //成功就返回true【response.getHttpResponse().isSuccess()里面默认就带了布尔值】
            return response.getHttpResponse().isSuccess();
        } catch (ServerException e) {
            e.printStackTrace();
        } catch (ClientException e) {
            e.printStackTrace();
        }
        return false;
    }
}

最终效果图:

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/769073.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号