ApiBoot 整合阿里云国际短信服务

ApiBoot的短信服务模块是由阿里云的国际短信服务提供的,支持国内和国际快速发送验证码、短信通知和推广短信。

前提:需要到阿里云控制台申请开通短信服务。

引入ApiBoot Alibaba Sms

pom.xml配置文件内添加如下:

  1. <!--ApiBoot Alibaba Sms-->
  2. <dependency>
  3. <groupId>org.minbox.framework</groupId>
  4. <artifactId>api-boot-starter-alibaba-sms</artifactId>
  5. </dependency>

注意:如果未添加ApiBoot版本依赖,请访问版本依赖查看添加方式。

配置参数列表

配置参数参数介绍默认值是否必填
api.boot.sms.access-key-idRAM账号的AccessKey ID
api.boot.sms.access-key-secretRAM账号Access Key Secret
api.boot.sms.sign-name短信签名
api.boot.sms.connection-timeout短信发送连接超时时长10000
api.boot.sms.read-timeout短信接收消息连接超时时长10000
api.boot.sms.profile短信区域环境default

发送短信

ApiBoot Alibaba Sms模块内置了ApiBootSmsService接口实现类,通过send方法即可完成短信发送,如下所示:

  1. /**
  2. * logger instance
  3. */
  4. static Logger logger = LoggerFactory.getLogger(ApiBootSmsTest.class);
  5. @Autowired
  6. private ApiBootSmsService apiBootSmsService;
  7. @Test
  8. public void sendSms() {
  9. // 参数
  10. ApiBootSmsRequestParam param = new ApiBootSmsRequestParam();
  11. param.put("code", "192369");
  12. // 请求对象
  13. ApiBootSmsRequest request = ApiBootSmsRequest.builder().phone("171xxxxx").templateCode("SMS_150761253").param(param).build();
  14. // 发送短信
  15. ApiBootSmsResponse response = apiBootSmsService.send(request);
  16. logger.info("短信发送反馈,是否成功:{}", response.isSuccess());
  17. }

短信模板code自行从阿里云控制台获取。

如果在阿里云控制台定义的短信模板存在多个参数,可以通过ApiBootSmsRequestParam#put方法来进行挨个添加,该方法返回值为ApiBootSmsRequestParam本对象。

多参数

多参数调用如下所示:

  1. // 参数
  2. ApiBootSmsRequestParam param = new ApiBootSmsRequestParam();
  3. param.put("code", "192369").put("name", "测试名称");

发送结果反馈

执行短信发送后会返回ApiBootSmsResponse实例,通过该实例即可判断短信是否发送成功。