一:在我们的生活场景中大家一定遇到过短信服务
例如大家登录某个app时,需要进行验证码的校验(进行身份校验,保证账号安全性)
1)相对安全一些
2)用户登录方便
3)收集用户信息----> 可能进行推广广告,感知账号爱好
二:短信发送有谁控制
发短信是有电信运行商(移动、电信、联通)统一管理, 发短信必须交钱的
三:短信发送准备工作
1)开通
2)申请签名(个人用户现在无法申请)
3)添加模板
4)设置Accesskey
注意: 创建子用户成功后,一定要复制保存AccessKey,这个很重要,涉及到账号的扣费
5)设置授权
把这两个权限添加上就可以了
注意:自己的AccessKey一定自己保存好,不要泄露,否则有被盗用的风险!
完成以上设置基本在页面的操作也就完成了,后面只需要我们在代码中进行调用阿里云提供好的SDK就可以了
代码中的应用:
1)使用工具类发送短信
<!--阿里云短信服务-->
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.5.16</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-dysmsapi</artifactId>
<version>2.1.0</version>
</dependency>
测试代码
/**
* access-key-id和access-key-secret的作用:阿里云底层会根据这个key-id和key-secret判断是哪个用户发送的短
* 信,来扣除这个用户的钱
* signName 签名: 就是发短信时公司的标识, 使用是测试功能的话签名必须是 "阿里云短信测试"
* TemplateCode 模板: 使用是测试功能的话模板必须是SMS_154980808
* PhoneNumbers 手机号: 使用是测试功能的话, 只能使用绑定的手机号
* TemplateParam 验证码: 用户收到的验证码
*/
public static void main(String[] args) {
DefaultProfile profile = DefaultProfile.getProfile("cn-hangzhou", "<access-key-id>",
"<access-key-secret>");
IAcsClient client = new DefaultAcsClient(profile);
SendSmsRequest request = new SendSmsRequest();
request.setSignName("阿里云短信测试");
request.setTemplateCode("SMS_154980808");
request.setPhoneNumbers("12345678912");
request.setTemplateParam("{\"code\":\"1234\"}");
try {
SendSmsResponse response = client.getAcsResponse(request);
System.out.println(new Gson().toJson(response));
} catch (ServerException e) {
e.printStackTrace();
} catch (ClientException e) {
System.out.println("ErrCode:" + e.getErrCode());
System.out.println("ErrMsg:" + e.getErrMsg());
System.out.println("RequestId:" + e.getRequestId());
}
}
我们执行这段代码,我们就可以神奇的发现我们测试的手机收到了一条阿里云发来的短信啦!!!
感觉有用的话,感谢一键三连!