百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
P

platform-sms

> 编程语言
开源

基于 SpringBoot 开发的短信网关服务,提供客户端 SDK,支持阿里云、腾讯云、亿美、合一短信,适用于中小型企业。您的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我的动力!如果您觉得还不错,请点上一颗小星星。

383 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

基于 SpringBoot 开发的短信网关服务,提供客户端 SDK,支持阿里云、腾讯云、亿美、合一短信,适用于中小型企业。您的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我的动力!如果您觉得还不错,请点上一颗小星星。

1 简介

一个简单易用的短信网关服务,提供客户端 SDK ,支持阿里云,腾讯云,亿美短信发送,适用于中小型公司。

功能包含:应用管理、渠道管理、单发短信、延时短信。

客户端和服务端两种发送短信的模式,可以参看这篇文章: Java应用中如何发送短信

2 工作原理

核心流程如下:

  1. 前端调用应用服务接口发送短信 ;
  2. 应用服务收到短信请求后,调用 SDK 接口根据模版发送短信;
  3. 短信平台服务收到请求,根据路由算法选择配置的渠道(比如阿里云、腾讯云)发送短信;
  4. 短信成功发送到用户手机。

3 环境准备

短信平台服务是 JAVA 应用,所以必须安装 JDK(1.8或更高版本),安装并配置环境变量 JAVA_HOME,然后将包含在 JAVA_HOME 中的 bin 目录追加到 PATH 变量中。

短信平台服务依赖外部 MySQL 和 Redis 两个服务 ,所以在部署之前必须安装好前置数据库。

4 部署流程

选择最新的部署包:

4.1 创建数据库以及相关表

创建数据库tech_platform ,执行 doc/sql 目录下的 tech_platform.sql。

执行后效果如下:

4.1 修改部署包配置

从 Release 下载 platform-sms-admin.tar.gz ,解压缩后,进入 conf 目录 。

编辑 application.yml 文件:

进入 bin 目录,启动服务:

bin/startup.sh

5 操作流程

5.1 登录页面

服务启动后,访问地址:http://localhost:8089 。

用户名和密码存储在 conf 目录的 application.yml,默认用户名密码分别是:admin/admin1984 。

5.2 新建应用

应用信息包含应用名称、应用 appKey , 应用秘钥,备注。其中,应用 key 和 密钥在使用客户端 SDK 时需要配置 。

5.3 新建渠道

注意:因为腾讯云的 SDK 请求 中需要携带 APPID ,所以 Beta 版中将 appId 存储在附件属性。

5.4 创建模版

在模版管理模块,点击新建模版按钮。

新建模版时,签名名称必须和渠道申请的签名必须一致。

下图展示了笔者的腾讯云申请的签名,笔者创建的模版必须和腾讯云账号的签名保持一致。

创建完模版之后,需要绑定渠道,我们需要在三方渠道先创建短信模版,然后提交绑定。

1、三方渠道先创建短信模版

如上图,笔者创建了编号为 1955325 的短信模版,因为我们需要在绑定界面绑定该渠道的模版,理论上在短信平台创建的模版可以绑定多个渠道。

2、绑定渠道

绑定完成之后,可以在模版管理页面查看模版列表 。

5.5 发送短信

发送短信可以参考 DEMO 模块:

01 添加依赖


    cn.javayong
    platform-sms-client
    0.6.1

02 客户端配置

首先在 application.yml 中配置如下:

sms:
  smsServerUrl: http://localhost:8089
  appKey: qQjEiFzn80v8VM4h
  appSecret: 9c465ece754bd26a9be77f3d0e2606bd

然后编写配置类:

…

03 单发短信

@Autowired
private SmsSenderClient smsSenderClient;

@GetMapping("/test")
public String test() {
    String mobile = "15011319235";
    String templateId = "523419101760679938";
    // 你好,你的信息是:${code}
    Map param = new HashMap();
    param.put("code", "1234");
    SmsSenderResult senderResult = smsSenderClient.sendSmsByTemplateId(mobile, templateId, param);
    System.out.println("senderResult:" + JSON.toJSONString*(senderResult));
    return "hello , first short message !";
}

04 单发延时短信

@Autowired
private SmsSenderClient smsSenderClient;

@GetMapping("/test")
public String test() {
    String mobile = "15011319235";
    String templateId = "523419101760679938";
    // 你好,你的信息是:${code}
    Map param = new HashMap();
    param.put("code", "1234");
    // 1个半小时之后发送
    String attime = String.valueOf(System.currentTimeMillis() + 3600 * 1500L);
    SmsSenderResult senderResult = smsSenderClient.sendSmsByTemplateId(mobile, templateId, attime, param);
    System.out.println("senderResult:" + JSON.toJSONString*(senderResult));
    return "hello , first short message !";
}

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Java

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言