Files
kra-new/docs/SMS_INTEGRATION.md
2026-09-29 18:15:35 +08:00

43 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 短信集成
管理入口:**扩展功能 → 短信服务**。支持阿里云和腾讯云官方 Go SDK。
配置保存在现有集成配置表中,保存后立即生效,服务重启后自动恢复。
新安装自动创建菜单;已有安装启动时通过 `202609290001_sms_admin_surface` 迁移补上菜单和超级管理员发送权限。
其他角色需要分配短信菜单、集成配置读写权限及短信发送权限。
## 配置
- 阿里云:AccessKey ID、AccessKey Secret、审核通过的短信签名、模板 CODE。当前接入中国大陆 `SendSms` 接口。
- 腾讯云:Secret ID、Secret Key、短信应用 SDK App ID、地域(默认 `ap-guangzhou`)、签名、模板 ID。
- 保存并启用后才能发送。保留密钥的 `******` 占位符表示沿用原值;不在配置文件中存储凭证。
- 每个服务商当前配置一个签名及模板。切换模板需修改配置。
## 发送
`POST /integration/sms/:provider/send`,`:provider` 为 `aliyun` 或 `tencent`。
接口位于现有鉴权和权限控制中,遵循 `{code,data,msg}` 响应格式。每次只发送给一个号码。
阿里云参数示例:
```json
{"phone":"+8613800138000","params":{"code":"123456"}}
```
腾讯云参数示例:
```json
{"phone":"+8613800138000","params":["123456","5"]}
```
参数值必须为字符串;阿里云使用命名对象,腾讯云按模板顺序填写数组。
无参数模板分别传 `{}` 或 `[]`。手机号使用包含 `+` 和国家区号的格式。
成功返回 `data.requestId` 和 `data.messageId`,表示服务商已受理,不代表手机已收到。
失败返回服务商错误码(例如余额不足、签名未审核、频率限制),不回传原始 SDK 请求或凭证。
网络失败不能保证短信未发送,核对服务商记录后再决定是否重试。
测试按钮会实际发送并可能计费。应用和 SDK 均不自动重试发送请求;腾讯云调用受请求上下文控制,阿里云 SDK 的连接和读取各限制为最多 10 秒。
发送日志隐藏手机号及模板参数,操作审计保留操作者和接口信息。真实发送需要自行配置云账户凭证、审核通过的签名及模板。
此集成提供模板短信发送能力,不包含验证码生成、校验或登录流程。