写在最前
如果这个项目让你有所收获,记得 Star 关注哦,这对我是非常不错的鼓励与支持。
源码地址(后端):https://gitee.com/csps/mingyue
源码地址(前端):https://gitee.com/csps/mingyue-ui
文档地址:https://gitee.com/csps/mingyue/wikis
短信服务
短信服务(Short Message Service,简称SMS)是一种基于移动电话网络的通信方式,用于在移动设备之间传递短文本消息。这些消息通常被限制在一定的字符数内,通常为160个字符,尽管一些系统支持连接多条短信以形成较长的消息。短信服务是一种简便、广泛应用的通信手段,可用于个人、商业和技术领域。
以下是关于短信服务的一些关键特点:
- 文本消息: 短信是以纯文本形式发送的消息,通常不包含图像、音频或视频。它们主要用于传递简短的信息。
- 字符限制: 传统的SMS消息限制为160个字符,这是因为短信协议最初是为了适应电话信令系统而设计的。但是,通过技术手段,可以连接多条消息来传递更长的文本。
- 全球覆盖: 短信服务在全球范围内可用,只要设备连接到移动电话网络,就可以发送和接收短信。
- 可靠性: 短信通常被认为是一种相对可靠的通信方式,因为它们不依赖于互联网连接,而是使用移动电话网络基础设施。
- 用途广泛: 短信服务的用途多种多样,包括个人通信、商业用途、应用程序通知、验证码发送、紧急通知等。
- 商业应用: 许多企业使用短信服务向客户发送营销信息、交易通知和提醒。
- 技术整合: 开发人员可以使用短信服务的API将短信功能集成到他们的应用程序中,以便发送自动化消息。
国内常用短信服务商
有许多短信服务商为个人、企业和开发者提供短信发送和接收的服务。以下是一些在国内常用的短信服务商:
- 阿里云(Aliyun): 阿里云是阿里巴巴集团的云计算分支,提供各种云服务,包括短信服务。阿里云短信服务被广泛用于企业的营销、通知、验证等方面。
- 腾讯云(Tencent Cloud): 腾讯云是腾讯公司的云服务平台,也提供短信服务。腾讯云的短信服务适用于各种场景,包括用户验证、营销推广等。
- 容联云通讯(云片网): 容联云通讯(现在更多被称为云片网)是一家专注于短信服务的公司,提供丰富的短信发送和接收解决方案。
- 华信智原(253云通讯): 华信智原(现在更多被称为253云通讯)是国内领先的互联网通信服务提供商,为企业和开发者提供短信、语音、验证码等服务。
- 漫道云通讯: 漫道云通讯是一家提供全球范围内短信服务的公司,为企业和开发者提供可靠的通信解决方案。
- 百度云: 百度云也提供短信服务,供企业使用,帮助他们与用户保持联系、发送通知等。
短信服务
MingYue 短信服务将接入 阿里云(Aliyun)、腾讯云(Tencent Cloud)作为短信服务商!!!
新建短信服务
mingyue ->
new module
-> mingyue-sms
mingyue
└── mingyue-sms
├── mingyue-sms-api
└── mingyue-sms-biz
└── MingYueSmsApplication (短信服务启动类)
mingyue-sms-biz 添加依赖
<dependencies>
<!-- SpringCloud Alibaba Nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<!-- SpringCloud Alibaba Nacos Config -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
</dependency>
<!-- web容器 -->
<dependency>
<groupId>com.csp.mingyue</groupId>
<artifactId>mingyue-common-web</artifactId>
</dependency>
<!-- 接口文档 -->
<dependency>
<groupId>com.csp.mingyue</groupId>
<artifactId>mingyue-common-doc</artifactId>
</dependency>
<!-- 认证工具类 -->
<dependency>
<groupId>com.csp.mingyue</groupId>
<artifactId>mingyue-common-security</artifactId>
</dependency>
</dependencies>
添加发送短信接口
添加一个测试接口
com.csp.mingyue.sms.controller.SmsController
/**
* 短信服务模块
* @author Strive
* @date 2023/8/24 14:59
*/
@Slf4j
@Tag(name = "短信服务模块")
@Validated
@RestController
@RequestMapping("/sms")
@RequiredArgsConstructor
public class SmsController {
/**
* 短信验证码
*
* @param phone 用户手机号
*/
@GetMapping("/code")
@Operation(summary = "短信验证码",
parameters = { @Parameter(name = "phone", description = "手机号", required = true) })
public R<Void> smsCaptcha(@NotBlank(message = "手机号不能为空") String phone) {
String code = "4321";
log.info("手机[{}] 验证码短信发送 => {}", phone, code);
return R.ok();
}
}
Nacos 添加 mingyue-sms-biz.yml 配置文件
# 短信服务配置
Nacos 添加接口文档配置
# swagger配置
swagger:
services:
## 配置开启的接口服务
mingyue-sms-biz: sms
Nacos 添加网关转发配置
# 短信服务
- id: mingyue-sms-biz
uri: lb://mingyue-sms-biz
predicates:
- Path=/sms/**
filters:
- StripPrefix=1
启动测试
http://mingyue-gateway:9100/v3/api-docs/sms 接口文档数据展示如下即可:
{
"openapi": "3.0.1",
"info": {
"title": "MingYue 基础服务中心_接口文档",
"description": "基础服务中心",
"contact": {
"name": "Strive",
"url": "https://gitee.com/csps/mingyue",
"email": "732171109@qq.com"
},
"version": "1.0.0"
},
"servers": [
{
"url": "http://mingyue-gateway:9100/sms"
}
],
"paths": {
"/sms/code": {
"get": {
"tags": [
"短信服务模块"
],
"summary": "短信验证码",
"operationId": "smsCaptcha",
"parameters": [
{
"name": "phone",
"in": "query",
"description": "手机号",
"required": true,
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "OK",
"content": {
"*/*": {
"schema": {
"$ref": "#/components/schemas/RVoid"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"RVoid": {
"type": "object",
"properties": {
"code": {
"type": "integer",
"format": "int32"
},
"msg": {
"type": "string"
},
"data": {
"type": "object"
}
},
"description": "响应信息主体"
}
},
"securitySchemes": {
"apiKey": {
"type": "apiKey",
"name": "Authorization",
"in": "header"
}
}
}
}
小结
短信服务模块已经添加完成,后续将依次接入阿里云与腾讯云的短信服务,等接入短信服务后实现发送短信验证码登录!具体流程如下图: