短信验证码功能是一个很常用的功能,而且操作也不难,下面实操看看如何进行短信服务实战。
个人只能在阿里云使用一个短信验证的功能,但足够了
- 登录阿里云后,点击头像下的AccessKey 管理
点击后会出现提示信息
这里会有一个所有权限的账户,为了安全我们点击使用子账户 - 创建子账户
选择子账户之后,会来到创建用户的界面
可以根据提示快速创建用户,在选择权限的地方我们选择只有短信服务。然后下载AccessKey
-
创建用户组
就像Linux中的用户组一样,我们可以创建用户组,然后把刚刚创建的用户添加到这个组中,然后给组添加权限
用户的权限是在自身的基础上继承了组的权限。 -
开通阿里云短信服务
直接搜索短信服务就可以看到
然后打开帮助文档
后期的api查询都在这里,我们可以点击快速学习来学习操作。
-
添加模板
-
添加签名
这里个人只能申请一个验证码签名
然后等待审核通过之后就可以使用了。
- 可以测试短信
可以在这里进行测试,使用阿里默认的模板,但是在真实项目中就不能这样。 - Java中使用(在帮助文档中)
先添加依赖
<!--阿里云依赖-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.1.0</version>
</dependency
然后编写测试方法
@Test
void contextLoads() {
ObjectMapper mapper = new ObjectMapper();
// 连接阿里云
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou",
"你的秘钥", "你自己的密码");
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("PhoneNumbers", "电话号码");
request.putQueryParameter("SignName", "微短租学习系统");
request.putQueryParameter("TemplateCode", "你的模板编号");
Map<String, Object> map = new HashMap<>();
// map.put("code",1234);
// String code = mapper.writeValueAsString(map);
String code = "1234";
request.putQueryParameter("TemplateParam","{\"code\":\"" + code + "\"}");
try {
CommonResponse response = client.getCommonResponse(request);
System.out.println(response.getData());
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
e.printStackTrace();
}
}