开通阿里云短信服务

开通阿里云短信服务阿里云短信服务1,阿里云用户权限操作1.1、找到后台放在个人头像上面选择AccessKey管理1.2、选择子用户1.3、创建用户组1.4、给用户组添加权限然后就可以看到你的权限里面多了一个sms的短信权限1.5、创建用户注意!注意!注意点击确认后只可以看到一次密码返回就看不到了注意!注意!注意点击确认后只可以看到一次密码返回就看不到了注意!注意!注意点击确认后只可以看到一次密码返回就看不到了1.6、把用户加入到用户组2、开通阿里云短信服务

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

阿里云短信服务

1,阿里云用户权限操作

1.1、找到后台放在个人头像上面 选择 AccessKey 管理

请添加图片描述

1.2、选择 子用户

请添加图片描述

1.3、创建用户组

请添加图片描述
在这里插入图片描述

1.4、给用户组添加权限

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

然后就可以看到你的权限里面多了一个sms的短信权限

1.5、创建用户

在这里插入图片描述
在这里插入图片描述

注意!注意!注意点击确认后只可以看到一次密码返回就看不到了

注意!注意!注意点击确认后只可以看到一次密码返回就看不到了

注意!注意!注意点击确认后只可以看到一次密码返回就看不到了

在这里插入图片描述

在这里插入图片描述

1.6、把用户加入到用户组

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2、开通阿里云短信服务

2.1、搜索短信服务

在这里插入图片描述

2.1、添加模板

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

2.3、添加签名

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3、编写代码

3.1、创建一个springboot项目

3.2、导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.76</version>
</dependency>

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>aliyun-java-sdk-core</artifactId>
    <version>4.5.10</version>
</dependency>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

Jetbrains全家桶1年46,售后保障稳定

3.3、model

package org.kang.aliyundxfw.model;

import lombok.Data;

import java.util.Map;

/** * @author 康康 * @create 2021-10-30 14:42 * @explain */
@Data
public class SendSms { 
   

    /** * 手机号 */
    private String PhoneNumbers;

    /** *模板 */
    private final String templateCode="SMS_227260007";

    /** * 签名 */
    private final String SignName="康康科技";

    /** * 验证码 */
    private Map<String,Object> code;

}

3.4、Service

package org.kang.aliyundxfw.service;

import org.kang.aliyundxfw.model.SendSms;

/** * @author 康康 * @create 2021-10-30 14:39 * @explain */

public interface SendSmsService { 
   
    boolean send(SendSms sendSms);
}

3.4.1、impl

package org.kang.aliyundxfw.service.impl;
import com.alibaba.fastjson.JSON;
import com.aliyuncs.CommonRequest;
import com.aliyuncs.CommonResponse;
import com.aliyuncs.DefaultAcsClient;
import com.aliyuncs.IAcsClient;
import com.aliyuncs.exceptions.ClientException;
import com.aliyuncs.exceptions.ServerException;
import com.aliyuncs.http.MethodType;
import com.aliyuncs.profile.DefaultProfile;
import org.kang.aliyundxfw.model.SendSms;
import org.kang.aliyundxfw.service.SendSmsService;
import org.springframework.stereotype.Service;
/** * @author 康康 * @create 2021-10-30 15:07 * @explain */
@Service
public class SendSmsServiceImpl implements SendSmsService { 

@Override
public boolean send(SendSms sendSms) { 

//连接阿里云 第二个参数是 AccessKey的id 第三个参数是 AccessKey的密码
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "LTAI5tQHFJoDijGxRYgoDZYM", "LRn4x2XHvwuOCNn6lYWrZxYPROmXsh");
//构建请求
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",sendSms.getPhoneNumbers());
request.putQueryParameter("TemplateCode",sendSms.getTemplateCode());
request.putQueryParameter("TemplateParam", JSON.toJSONString(sendSms.getCode()));
try { 

CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
//返回成功还是失败
return response.getHttpResponse().isSuccess();
} catch (ServerException e) { 

e.printStackTrace();
} catch (ClientException e) { 

e.printStackTrace();
}
return false;
}
}

3.5、contrlloer

package org.kang.aliyundxfw.contrlloer;
import io.netty.util.internal.StringUtil;
import org.kang.aliyundxfw.model.SendSms;
import org.kang.aliyundxfw.service.SendSmsService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
/** * @author 康康 * @create 2021-10-30 15:16 * @explain */
@RestController
@CrossOrigin //跨域支持
public class SendSmsContrlloer { 

@Autowired
private SendSmsService sendSmsService;
@Autowired
private RedisTemplate<String, String> redisTemplate;
@GetMapping("/send")
public String code(SendSms sendSms) { 

//根据手机号到redis里面查看有没有这个手机号
String code = redisTemplate.opsForValue().get(sendSms.getPhoneNumbers());
if (!StringUtil.isNullOrEmpty(code)) { 

return sendSms.getPhoneNumbers() + ":" + sendSms.getCode() + "已存在,还没有过期";
}
//随机生成四位数的验证码
code = UUID.randomUUID().toString().substring(0, 4);
Map<String,Object> map=new HashMap<>();
map.put("code",code);
sendSms.setCode(map);
//调用Service的方法
boolean isSend = sendSmsService.send(sendSms);
if(isSend){ 

//成功就把手机号放到redis里面 设置5分钟过期
redisTemplate.opsForValue().set(sendSms.getPhoneNumbers(),code,5, TimeUnit.SECONDS);
return sendSms.getPhoneNumbers() + ":" + sendSms.getCode() + "发送成功";
}else { 

return "发送失败";
}
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/219118.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • docker 修改容器时间_jenkins docker持续集成

    docker 修改容器时间_jenkins docker持续集成前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

  • gltranslatef函数_sql translate函数怎么用

    gltranslatef函数_sql translate函数怎么用TranslateMessage(&amp;msg);TranslateMessage是用来把快捷键消息转换为字符消息,并将转换后的新消息投递到调用线程的消息队列中。由于Windows对所有键盘编码都是采用虚拟键的定义,这样当按键按下时,并不得字符消息,需要键盘映射转换为字符的消息。字符消息被投递到调用线程的消息队列中,当下一次调用GetMessage函数时被取出。当我们敲击键盘上的某个字符键时,…

  • 漫谈原生JS添加元素的两种方法

    漫谈原生JS添加元素的两种方法漫谈原生JS添加元素常规方法常规方法是首先创建一个目标元素并赋值给某个变量,但是元素里面内容较多,需要innerHTML赋值,将含有内容的变量赋值给目标元素的变量,最后,将这个目标元素的变量通过appendChild把节点放到指定位置。varli=document.createElement(“li”);varspan=document.createElement(“span”);li.appendChild(span);varelement=document.querySe

  • Oracle PL/SQL编程详解之七:程序包的创建与应用

    Oracle PL/SQL编程详解之七:程序包的创建与应用Oracle PL/SQL编程详解之七:程序包的创建与应用(聪明在于学习,天才在于积累!) 本篇主要内容如下:第七章  程序包的创建和应用7.1  程序包简介7.2  程序包的定义7.3  包的开发步骤7.4  包定义的说明7.5  子程序重载7.6  加密实用程序7.7  删除包7.8  包的管理  7.1  程序包简介    程序

  • VS2013注册码_vs激活码怎么用

    VS2013注册码_vs激活码怎么用vs2012注册码YKCW6-BPFPF-BT8C9-7DCTH-QXGWCRBCXF-CVBGR-382MK-DFHJ4-C69G8MMVJ9-FKY74-W449Y-RB79G-8GJGJ4D974-9QX42-9Y43G-YJ7JG-JDYBPYCFHQ-9DWCY-DKV88-T2TMH-G7BHP亲测有效!

  • invalid python sdk怎么办_pycharm一直创建虚拟环境

    invalid python sdk怎么办_pycharm一直创建虚拟环境解决pycharm创建虚拟环境时出现的invalidpythonSDK问题

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号