开通用户权限
- 登陆阿里云开启子用户
- 创建用户组,并设置对应的权限(SmsFullAccess、SmsReadOnlyAccess)
- 在该用户组下添加用户,用于操作短信API,需要开启用户的API访问权限
- 用户添加完成,保存用户的AccessKey ID/AcessKey Secret(只在创建窗口展示,关闭窗口就查询不到了,需要保存,切记谨防泄漏)
开通阿里云短信服务
- 在阿里云平台搜索短信业务并开通
- 在[国内消息设置]进行设置,保护短信安全
- 在[国内消息]进行短信服务的签名、模版进行设置
- 根据要求填写短信模版
- 根据要求申请签名
编写短信代码
- 导入阿里云升级版SDK的依赖(
com.aliyun:ecs20140526:3.1.12) - 导入阿里云短信SDK的依赖(
implementation 'com.aliyun:alibabacloud-dysmsapi20170525:2.0.23') - 可能需要导入(
implementation 'pull-parser:pull-parser:2.1.10'),以修复无法启动的问题(org.xml.sax.SAXNotSupportedException: not supported setting property <http://xml.org/sax/properties/lexical-handler>) - 验证码建议使用 sendSms接口(也支持多条发送,但效率低参考API文档
- 批量发送相同内容建议使用 sendBatchSms参考API文档
- 以上是不安全的短信代码,建议使用更安全的STS方式,但需要额外的代码配置
优化方案
- 可以把验证码放在redis中,验证码过期再重新发送短信