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

2.3 KiB
Raw Permalink Blame History

短信集成

管理入口:扩展功能 → 短信服务。支持阿里云和腾讯云官方 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} 响应格式。每次只发送给一个号码。

阿里云参数示例:

{"phone":"+8613800138000","params":{"code":"123456"}}

腾讯云参数示例:

{"phone":"+8613800138000","params":["123456","5"]}

参数值必须为字符串;阿里云使用命名对象,腾讯云按模板顺序填写数组。 无参数模板分别传 {} 或 []。手机号使用包含 + 和国家区号的格式。

成功返回 data.requestId 和 data.messageId,表示服务商已受理,不代表手机已收到。 失败返回服务商错误码(例如余额不足、签名未审核、频率限制),不回传原始 SDK 请求或凭证。 网络失败不能保证短信未发送,核对服务商记录后再决定是否重试。

测试按钮会实际发送并可能计费。应用和 SDK 均不自动重试发送请求;腾讯云调用受请求上下文控制,阿里云 SDK 的连接和读取各限制为最多 10 秒。 发送日志隐藏手机号及模板参数,操作审计保留操作者和接口信息。真实发送需要自行配置云账户凭证、审核通过的签名及模板。

此集成提供模板短信发送能力,不包含验证码生成、校验或登录流程。