Sms多平台短信服务商系统~完成阿里云短信服务发送可自行配置

news2024/11/27 5:25:40

1.项目中引入Maven

阿里云地址

不同编程语言都有对应的SDK,你们下载自己需要的即可。

在这里插入图片描述
pom.xml中添加maven坐标

    <!--阿里云短信服务-->
    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>alibabacloud-dysmsapi20170525</artifactId>
        <version>2.0.22</version>
    </dependency>

在这里插入图片描述

2.业务代码

接下来的代码不是单纯的使用短信服务商提供的发送代码来完成短信的发送那样子就太简单了,我想你们也不想看这样的文章了CSDN一抓一大把,或者看官方文档即可。为了通用短信服务商,可以是腾讯云,阿里云等提供的短信业务。


        这篇文章已经推迟更新十多天了,都没时间来更新,业务代码和项目已经都是完成了我放在gitee上,到时候仓库我会公共出来,这样你们也可以拉取下来改成对应的短信发送系统。

项目使用

下面就是开始讲下项目需要配置那些数据就可以开箱即用。

系统需求

  • JDK >= 1.8
  • MySQL >= 5.7
  • Maven >= 3.0

必要配置

  • 修改数据库连接,编辑resources目录下的application-dev.yml
# 应用服务 WEB 访问端口
server:
  #应用的端口号
  port: 8080
  servlet:
    #应用的访问路径
    context-path: /

# DataSource Config
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://127.0.0.1:3306/itmei-sms?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
    username: root
    password: root
  • doc目录下有准备好使用的itmei-sms.sql文件,到时候自己创建一个库把sql导入
    在这里插入图片描述
  • 修改短信服务商配置信息,编辑resources目录下的SmsParamsConfig.yml
## 配置短信
itmei-sms-config:
  #是否开启短信发送
  sms_send_or_not: true
  # 对接的短信服务商
  aliyun_sms:
    accessKeyId: xxx
    accessKeySecret: xxx
    signName: xxx
    #场景
    sms_scene:
      #场景类型
      appointment_success: xxx
      will_arrive_store: xxx
      send_it_the_night_before: xxx
      verification_code_sms: xxx
  # 腾讯云服务商
  tencent_sms:
    accessKeyId: #你自己的accessKeyId
    accessKeySecret: #你自己的accessKeySecret
    signName: #你自己的签名
    #场景
    sms_scene:
      #场景类型
      appointment_success: #你自己的短信模板
      will_arrive_store: #你自己的短信模板
      send_it_the_night_before: #你自己的短信模板
      verification_code_sms: #你自己的短信模板
      

注意:
      对接的服务商名称tencent_sms,aliyun_sms可不是乱取的,每个服务商对应一个service,这个service需要实现SmsInterface接口

在这里插入图片描述
已经完成的阿里云短信实现类:

在这里插入图片描述

关于场景类型名称的key需要配置到SmsSceneEnum枚举类中定义。

在这里插入图片描述
      由于会把SmsParamsConfig.yml配置的数据转换成JSONObject对象来使用。这样我们在后续的代码中可以通过对应服务商的特征来使用对应的配置如下图调用。
在这里插入图片描述

SmsSupplierConfig类用于获取我们定义的yml文件并且把数据转成Map<String, Object>在转成JSONObject对象。

短信服务商类

已我已经完成的阿里云短信服务为例:
    在service包下imp创建对应短信发服务类如SmsAliyunServiceImpl后需要实现SmsInterface接口重写里面发方法sendSmsgetDepartmentTemplateParam,对应服务商都会提供示例代码和对应的jar包或者是maven坐标我们引入到系统即可,把示例代码写到sendSms方法中并且创建服务类中的唯一标识并且添加到SmsSupplierEnum短信服务商枚举中
在这里插入图片描述

在这里插入图片描述
按照我写好的阿里云示例代码编写好你们对接的短信服务商后,我们就开始组装需要的参数并且发送信息。

发送短信测试

项目中引入了测试类,我在SmsApplicationTests类中编写了发送测试的代码

    @Test
    void testSmsSend() {
        //配置需要使用的短信服务商信息等
        SmsTemplateConfig config = new SmsTemplateConfig();
        config.setSceneEnum(SmsSceneEnum.APPOINTMENT_SUCCESS.getCode());
        config.setSupplierEnum(SmsSupplierEnum.ALIYUN_SMS.getCode());
        config.setSourceEnum(SmsSendSourceEnum.PC.getCode());
        //自己短信模板的对应参数
        Map<String, Object> templateParam = new HashMap<>();
        templateParam.put("name", "itmei");
        templateParam.put("date_time", DateUtil.now());
        templateParam.put("address", "万达广场");
        templateParam.put("customer_phone", "19999999999");
        templateParam.put("landline", "wxid_itmei");
        config.setTemplateParam(templateParam);
        smsServiec.sendSms("19999999999", config, true);
    }

完成

短信发送成功保存到数据库中。
在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/364698.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

八、CSS新特性二

文章目录一、CSS3多背景和圆角二、怪异盒子模型三、多列属性四、H5多列布局瀑布流五、CSS3线性渐变5.1 线性渐变5.2 径向渐变六、CSS3过渡动画七、CSS3 2D八、CSS3动画一、CSS3多背景和圆角 css3多背景&#xff0c;表示CSS3中可以添加多个背景。 CSS3圆角 border-radius: 0px;…

日本机载激光雷达测深进展(二)机载激光雷达测深经验

日本海岸警卫队海洋情报部&#xff08;JHOD&#xff09;拥有14年的机载激光雷达测深(ALB)经验。由于ALB调查高效率和高分辨率&#xff0c;JHOD已将ALB应用于各种用途&#xff0c;如制图、海啸受灾港口的恢复重建、安全监测和火山活动研究。本文简要描述了JHOD激光雷达测深系统的…

基于Hibernate对数据库表的单表查询

基于Hibernate对数据库表的单表查询 1.依赖 1.1jar包 1.2配置文件。persistence.xml <?xml version"1.0" encoding"UTF-8"?> <persistence version"2.1"xmlns"http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi"…

docker 部署centos7.9并打包成docker

下载centos基础镜像 docker pull centos:centos7 运行镜像 docker run -itd --name centos-test -p 60001:22 --privileged centos:centos7 /usr/sbin/init 进入容器 docker exec -it ebec90068696 /bin/bash 配置容器信息 安装ssh服务和网络必须软件 yum install net-to…

Linux基础命令-pstree树状显示进程信息

Linux基础命令-uname显示系统内核信息 Linux基础命令-lsof查看进程打开的文件 Linux基础命令-uptime查看系统负载 文章目录 前言 一 命令介绍 二 语法及参数 2.1 使用man查看命令语法 2.2 常用参数 三 参考实例 3.1 以树状图的形式显示所有进程 3.2 以树状图显示进程号…

【计算机网络 -- 期末复习】

例题讲解 IP地址&#xff08;必考知识点&#xff09; 子网掩码 子网划分 第一栗&#xff1a; 子网划分题目的答案一般不唯一&#xff0c;我们主要采用下方的写法&#xff1a; 第二栗&#xff1a; 路由跳转 数据传输 CSMA/CD数据传输 2、比特率与波特率转换 四相位表示&am…

一文高端Android性能优化-总结篇

以下从几个方面来总结一下Android的性能优化&#xff1a;1&#xff1a;界面卡顿优化2&#xff1a;内存优化3&#xff1a;App启动优化界面卡顿优化Android的界面为每秒60帧&#xff0c;即必须在16ms内完成1帧的绘制&#xff0c;如果某个方法耗时过程&#xff0c;导致16ms内无法完…

OIDC OAuth2.0 协议及其授权模式详解|认证协议最佳实践系列【1】

OIDC / OAuth2.0 是一种开放的标准&#xff0c;可以帮助应用程序安全地访问用户的资源&#xff0c;而无需将用户的凭据&#xff08;如用户名和密码&#xff09;暴露给应用程序&#xff0c;我们可以通过标准协议&#xff0c;建立集中的用户目录和统一认证中心&#xff0c;将内外…

健身的时候可以戴耳机吗、最适合健身时佩戴的耳机推荐

戴着耳机锻炼&#xff0c;听着动感的音乐&#xff0c;会让你心潮澎湃&#xff0c;瞬间感觉自己力大无穷。那什么样的耳机更适合在健身房锻炼时戴呢&#xff1f;首先稳固性和舒适度一定要比较好&#xff0c;毕竟在运动的过程中老是感觉到不适或者掉落&#xff0c;那真的是很令人…

计算机组成原理:3. 系统总线

更好的阅读体验\huge{\color{red}{更好的阅读体验}}更好的阅读体验 文章目录3.1 总线的基本概念3.1.1 总线的定义3.1.2 总线的分类片内总线系统总线通信总线3.2 总线特性及性能指标3.2.1 总线特性3.2.2 总线性能指标3.2.3 总线标准3.3 总线结构3.3.1 单总线结构3.3.2 多总线结构…

AD域备份和恢复工具

Microsoft的本地Active Directory备份和恢复功能不适用于对象级备份和属性级还原。使用RecoveryManager Plus&#xff0c;您不仅可以备份和还原所有AD对象&#xff0c;还可以备份和还原其他基本AD元素&#xff0c;例如架构属性&#xff0c;组成员身份信息和Exchange属性。此外&…

字符串中<br>处理

需求&#xff1a; 后端返回的字符串中带有br换行符&#xff0c;前端需要处理行内及行尾的换行符。具体需求可分为以下两个&#xff1a; 若是字符串末尾有换行符&#xff0c;需要去掉。若是字符串内有换行符&#xff0c;有两种需求&#xff1a;①将换行符转换成逗号或其它符号&…

年薪30万,我也曾达到人生巅峰,入职字节一个月,却被无情被裁......

今年的金三银四并不像往年那样有铺天盖地的岗位和约不过来的面试机会&#xff0c;再看正在招聘的岗位&#xff0c;动不动就要求代码能力&#xff0c;能开发自动化测试平台&#xff0c;能对已有xxx框架二次开发&#xff0c;还要上机笔试&#xff0c;变态程度不亚于古代皇帝选妃了…

uni-app Some selectors are not allowed in component wxss解决方案

报错信息如下 Some selectors are not allowed in component wxss, including tag name selectors, ID selectors, and attribute selectors. 注意看尾巴&#xff0c; (./uni_modules/uni-load-more/components/uni-load-more/uni-load-more.wxss:65:29) 打开这个组件uni-lo…

工厂在智慧升级过程中,企业需要用到哪些系统呢?

今天我们优先来分析一下流程制造型企业的需求。流程制造行业智能工厂要实现智能化&#xff0c;必须包含生产管理、供应链管理、工艺管理、设备管理、质量管理等全生命周期业务流程&#xff0c;那么这个全生命周期业务流程相对应的平台就会有以下几大平台来分别实现智能化&#…

Linux驱动开发—最详细应用程序调用驱动程序解析

Linux下应用程序调用驱动程序流程 Linux下进行驱动开发,完全将驱动程序与应用程序隔开,中间通过C标准库函数以及系统调用完成驱动层和应用层的数据交换。驱动加载成功以后会在“/dev”目录下生成一个相应的文件,应用程序通过对“/dev/xxx” (xxx 是具体的驱动文件名字) 的文…

深度分析2种最常用待办事项清单法+工具实操

建待办事项清单的方法有很多种&#xff0c;你可能已经熟悉了其中一种&#xff0c;但没有了如指掌&#xff0c;恐怕也没有想过哪种方法最适合自己&#xff0c;给大家整理当下职场最常用的两个代办清单事项方法&#xff0c;只需看这两个就够你用几年了。 一、四象限法 “四象限…

全面分析前端的网络请求方式(对ajax理解的勘误)

文章目录前言AjaxFetchAxios三者关系前言 在掘金看到一篇关于ajax和fetch以及aixos的文章&#xff0c;才发现自己对ajax的理解是错误的&#xff0c;一直以为ajax就是js中xhr对象&#xff0c;把他们两之间画上了等号&#xff0c;殊不知从根本上就理解错了。 这里就不对原生的xh…

疯狂的SOVA:Android银行木马“新标杆”

2021年8月初&#xff0c;一款针对Android银行APP的恶意软件出现在人们的视野中&#xff0c;ThreatFabric 安全研究人员首次发现了这一木马&#xff0c;在其C2服务器的登录面板&#xff0c;研究人员发现&#xff0c;攻击者将其称之为SOVA。 ** SO** ** V** ** A简介** 在俄语中…

Mac Maven环境搭建安装和配置详细步骤

一、Maven简介Maven 是 Apache 软件基金会的一个开源项目,是一个优秀的项目构建工具,它用来帮助开发者管理项目中的 jar,以及 jar 之间的依赖关系、完成项目的编译、测试、打包和发布等工作。二、Mavende优点1、原来的项目中需要的jar包必须手动“复制”、”粘贴” 到WEB-INF/l…