背景
在日常开发中,我们可能会遇到短信验证之类的需求,这也是我们使用各类app或系统中比较常见的。在对比了各个平台提供的短信服务后,从价格,稳定性,接入便捷性进行考虑,最终选择了阿里云所提供的短信服务,之前在做课设的时候接入过,但是当时没有作总结,此次毕设也有该需求,在完成之后做以下总结。
开通应用
开通阿里云账号,选择短信服务,开通该应用
作为第三方短信服务,阿里云提供了多种语言丰富的sdk支持,能够很方便的帮助我们集成常用的接口,加快开发速度。
选择sdk参考,安装java sdk,阿里云官方推荐通过maven形式引入依赖,仓库坐标如下。(原本官方提供的是4.1.0版本,貌似有bug,在开发中执行 IAcsClient client = new DefaultAcsClient(profile); 会报NotSuchMethodException异常,排查了很久无果,切换成4.0.6版本,成功启动)
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>4.0.6</version>
</dependency>
在安装和使用阿里云Java SDK前,确保已经:
- 安装Java环境。阿里云Java SDK要求使用JDK1.6或更高版本。
- 已经注册阿里云账号并生成访问访问密钥(AccessKey)。
创建AccessKey
阿里云官方对AccessKey的说明,概括起来,就是调用所有 API的凭证/验证信息(比如我们待会要调用的短信服务API)
AccessKey信息可以在安全信息管理控制台看到,这里还提供了一种子账号Accesskey的方式,通过权限管理降低AccessKey泄露的风险
添加短信签名和模板
打开短信服务控制台,选择国内消息,添加短信签名和模板,按照自己业务需求和系统指引填写,审核通过后即可使用
emmm,现在一点半,工作人员应该还没上班,显示待审核
在application.yml中配置服务参数
配置如下:
通过spring ioc将配置装载到spring bean 中去
/**
* 阿里云短信服务配置
*
* @author jiayuan9608@163.com
* 2019-04-01 15:30
* @version 1.0.0
*/
@Data
@Component
@ConfigurationProperties(prefix = "aliyun.msg")
public class AliyunMsgConfig {
/**
* 阿里云短信API 是否开启短信接口,0为开启(收费接口),1为关闭,2为开启模拟短信(免费接口)
*/
private Integer openMsg;
/**