基于 SpringBoot 开发的短信网关服务,提供客户端 SDK,支持阿里云、腾讯云、亿美、合一短信,适用于中小型企业。您的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我的动力!如果您觉得还不错,请点上一颗小星星。
基于 SpringBoot 开发的短信网关服务,提供客户端 SDK,支持阿里云、腾讯云、亿美、合一短信,适用于中小型企业。您的 ⭐️ ⭐️⭐️Star⭐️⭐️ ⭐️,是我的动力!如果您觉得还不错,请点上一颗小星星。
一个简单易用的短信网关服务,提供客户端 SDK ,支持阿里云,腾讯云,亿美短信发送,适用于中小型公司。
功能包含:应用管理、渠道管理、单发短信、延时短信。
客户端和服务端两种发送短信的模式,可以参看这篇文章: Java应用中如何发送短信
核心流程如下:
短信平台服务是 JAVA 应用,所以必须安装 JDK(1.8或更高版本),安装并配置环境变量 JAVA_HOME,然后将包含在 JAVA_HOME 中的 bin 目录追加到 PATH 变量中。
短信平台服务依赖外部 MySQL 和 Redis 两个服务 ,所以在部署之前必须安装好前置数据库。
选择最新的部署包:
创建数据库tech_platform ,执行 doc/sql 目录下的 tech_platform.sql。
执行后效果如下:
从 Release 下载 platform-sms-admin.tar.gz ,解压缩后,进入 conf 目录 。
编辑 application.yml 文件:
进入 bin 目录,启动服务:
bin/startup.sh
服务启动后,访问地址:http://localhost:8089 。
用户名和密码存储在
conf目录的application.yml,默认用户名密码分别是:admin/admin1984 。
应用信息包含应用名称、应用 appKey , 应用秘钥,备注。其中,应用 key 和 密钥在使用客户端 SDK 时需要配置 。
注意:因为腾讯云的 SDK 请求 中需要携带 APPID ,所以 Beta 版中将 appId 存储在附件属性。
在模版管理模块,点击新建模版按钮。
新建模版时,签名名称必须和渠道申请的签名必须一致。
下图展示了笔者的腾讯云申请的签名,笔者创建的模版必须和腾讯云账号的签名保持一致。
创建完模版之后,需要绑定渠道,我们需要在三方渠道先创建短信模版,然后提交绑定。
1、三方渠道先创建短信模版
如上图,笔者创建了编号为 1955325 的短信模版,因为我们需要在绑定界面绑定该渠道的模版,理论上在短信平台创建的模版可以绑定多个渠道。
2、绑定渠道
绑定完成之后,可以在模版管理页面查看模版列表 。
发送短信可以参考 DEMO 模块:
cn.javayong
platform-sms-client
0.6.1
首先在 application.yml 中配置如下:
sms:
smsServerUrl: http://localhost:8089
appKey: qQjEiFzn80v8VM4h
appSecret: 9c465ece754bd26a9be77f3d0e2606bd
然后编写配置类:
…
@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 !";
}
@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,或尚未同步最近议题。