最近有小伙伴问有没有短信发送比较成熟的框架?

今天就为大家推荐一款可以支持阿里云、腾讯云、百度云、京东云等等多个平台的消息通道,

项目中可以随时增加或者切换,是不是很方便!

guerlab-sms

基于Spring boot的短信服务支持,通过引用不同的Starter启用不同的短信通道支持,支持多通道下的负载均衡,支持同步/异步方式发送。 目前支持类型:阿里云短信、百度云短信、华为云短信、京东云短信、网易云信短信、腾讯云短信、七牛云短信、云片网短信、又拍云短信、移动云模板短信

https://gitee.com/guerlab_net/guerlab-sms

下面说一下接入方法:

首先引入jar包

<!-- 短信模块 https://gitee.com/guerlab_net/guerlab-sms-->
<dependency><groupId>net.guerlab.sms</groupId><artifactId>guerlab-sms-server-starter</artifactId><version>${net.guerlab.sms.version}</version>
</dependency>
<dependency><groupId>net.guerlab.sms</groupId><artifactId>guerlab-sms-qcloud-starter</artifactId><version>${net.guerlab.sms.version}</version>
</dependency>

配置参数

sms:reg: ^1[0-9]{10}$ #手机号码正则表达式,为空则不做验证load-balancer-type: Random #负载均衡类型 可选值: Random、RoundRobin、WeightRandom、WeightRoundRobinweb:enable: false #启用web端点base-path: /commons/sms #访问路径前缀verification-code:code-length: 6 #验证码长度delete-by-verify-fail: false #为true则验证失败后删除验证码delete-by-verify-succeed: true #为true则验证成功后删除验证码  (注意:上线后,改为true)retry-interval-time: 60 #重试间隔时间,单位秒expiration-time: 180 #验证码有效期,单位秒identification-code-length: 3 #识别码长度use-identification-code: false #是否启用识别码qcloud:enable: true #启用腾讯云的短信业务客户端weight: 1 #权重app-id: 190150612 #短信应用SDK AppIDappkey: 65685aaf81654521dce32ae854682 #短信应用SDK AppKeysms-sign: 上市公司 #短信签名templates:VerificationCode: 299586 #验证码业务所使用的短信模板IDtest: 369586 #自定义业务所使用的短信模板IDparams-orders:VerificationCode: #规定验证码业务的参数顺序- code#- identificationCode

实现一个接口,主要是短信的存储操作,可存储到redis,或db中

IVerificationCodeRepository
package net.guerlab.sms.server.repository;import net.guerlab.sms.server.entity.VerificationCode;public interface IVerificationCodeRepository {VerificationCode findOne(String var1, String var2);void save(VerificationCode var1);void delete(String var1, String var2);
}
@Repository
public class VerificationCodeDBRepository implements IVerificationCodeRepository {...
}

调用发送短信接口

 @Autowiredprivate VerificationCodeService verificationCodeService;...@WebLog(notes = "获取验证码")@PostMapping("/sendCode")public ResponseData sendVerificationCode(@RequestBody reg reg) {if (StrUtil.isBlank(reg.getPhone())) {throw new AppException(ExEnum.E20051.getCode(), "手机号验证失败");}// 一分钟之内不能重复发送短信Sms sms = smsService.find(reg.getPhone());if (ObjectUtil.isNotNull(sms) && ((System.currentTimeMillis() - sms.getCreatedAt().getTime()) / 1000) < 1 * 60) {throw new AppException(ExEnum.E20051.getCode(), "短信已发送");}if (ObjectUtil.isNotNull(sms)){smsService.delete(sms.getPhone());}verificationCodeService.send(reg.getPhone());return ResponseData.success("短信发送成功");}

是不是比起挨个去学习某云、某云的短信接口简单多了。

对接多个短信平台,该如何快速完成相关推荐

  1. 对接阿里云短信平台报错

    syntax error, pos 1, line 1, column 2<HTML><HEAD><TITLE>访问禁止</TITLE><STYL ...

  2. java对接阿里云短信平台

    一. 阿里云管理平台部分: 第一步: 注册阿里云账号(钉钉或者支付宝或淘宝都可以登录) 第二步: 开通短信服务 第三步: 申请短信签名(说是要两个小时审核,其实半小时到1小时之间就差不多了.~~阿里效 ...

  3. 通达OA短信平台,通达OA完美对接中国移动MAS短信平台

    <?php$UserName = '******'; //用户账号 $Password = '******'; //密码 $ServiceID = "******"; //业 ...

  4. Java对接阿里云短信平台(快速上手)

    一.首先阿里云管理控制台添加短信服务功能 二.接着在应用开发模块下,配置签名,模版,不清楚的地方可以查看帮助文档 三.下载对应的SDK及其DEMO,我下的Java 四.将api_demo代码导入自己的 ...

  5. JAVA怎么对接第三方短信平台?短信验证码完整API文档

    验证码短信平台的应用场景,一般包括用户注册.登陆账号.忘记密码.登录异常.支付确认等. 一.用户注册 通常我们会在注册时会用到短信验证码,即用户在网站或软件上注册账号时,企业需要通过验证码确认用户身份 ...

  6. 和中国移动对接短信平台

    项目需求 2017年4月12日,正式收到领导通知打算和中国移动对接短信平台,要做的项目当然就是给人发短信,这个短信平台和第三方提供的短信接口不同,这个平台可以二次开发,别人收到短信进行回复的话,我这边 ...

  7. 阿里大于短信平台对接

    阿里大于短信平台(短信平台)对接相关说明 一:api文档链接:https://api.alidayu.com/docs/api.htm?spm=a3142.7395905.4.7.W5QHoB& ...

  8. 低代码对接腾讯云-阿里云短信平台

    一.什么是低代码 "Low-Code"是什么?第一次接触这个名词的还是被面试官问到是否知道低代码的时候,这种场合不知道三个字是绝对不能出现的. 所以我强装镇定回答到:"低 ...

  9. java短信验证码功能发送的验证码如何校验_企业如何选择短信平台才能保障安全和稳定性?...

    现如今互联网不断发展,人们对网络的依赖性越来越大, 伴随而来的网络运营安全问题越来越严重,安全是我们企业都担忧的一个大问题,短信平台的安全性再次被企业所重视起来. 短信验证码日常生活中经常遇到,比如银 ...

最新文章

  1. 高并发的场景下,不能不说的限流算法
  2. 解决windows图片查看器背景色变成米黄色
  3. 20162328蔡文琛 第十周 周五 课上测试
  4. 使用 Eclipse Memory Analyzer 进行堆转储文件分析
  5. 你多久更新一次简历,决定了你的收入多久能提升
  6. centos图形化桌面的文件在哪_CentOS 安装图形桌面
  7. import win32com.client在python中报错及其解决办法
  8. 数据结构之查找-顺序查找,折半查找,分块查找
  9. Java基础IO流(案例源码)【六】
  10. 线段树——I hate it
  11. [Simulink] 从S函数到模块代码生成
  12. [高通MSM8953_64][Android10]移除开机进入充电界面
  13. 4个快速美白牙齿小偏方
  14. 让人变年轻的特效怎么做?教你制作变年轻特效小妙招
  15. Ubuntu中安装Python h5py
  16. 屏幕横竖发生变化时,当前Activity发生的生命周期变化
  17. 如何在CSS中应用多个转换?
  18. 激光焊可以代替氩弧焊吗
  19. Windows Server2016 WSUS服务部署
  20. nvm安装node成功,npm安装失败问题

热门文章

  1. Scrapy使用报错socket.timeout: timed out
  2. BAT:一键切换Windows IP地址
  3. C#zegraph用法
  4. 常用金属材料 钢管材料
  5. 大白NBIOT 移远BC26模块模组OpenCpu开发视频教程(有连接移动、电信平台的opencpu源码)
  6. Java中的命名规范
  7. 华为云计算HCIE学习总结-灾备
  8. SQL基础题型(内含数据库和答案),帮你更加熟练运用SQL
  9. umijs多语言方式
  10. 【MATLAB】Z变换和Z反变换