SMSapi.md 3.8 KB

当然可以,我已经成功获取到你当前查看的阿里云 SendSmsVerifyCode(发送短信验证码)API 文档页面内容。下面我为你整理成结构清晰、可直接用于开发的 API 接口说明


📘 SendSmsVerifyCode — 发送短信验证码

(阿里云云通信号码认证服务 · 2017-05-25)

用于向指定手机号发送短信验证码。短信认证服务仅收取短信发送费用,核验服务免费。


🧩 1. 接口功能说明

  • 发送短信验证码到指定手机号
  • 支持系统赠送签名 + 赠送模板
  • 支持验证码生成、有效期、重复发送策略等配置
  • 仅支持国内号码(CountryCode 默认 86)

🔐 2. 权限要求(RAM)

调用该 API 需要以下权限:

操作 访问级别 资源类型 条件关键字 关联操作
dypns:SendSmsVerifyCode Create 全部资源

(来自页面授权信息)


📥 3. 请求参数(Request Parameters)

参数名 类型 必填 说明
SchemeName string 方案名称,不填为“默认方案”,≤20字符
CountryCode string 国家码,默认 86,仅支持国内号码
PhoneNumber string 接收短信的手机号
SignName string 签名名称,仅支持系统赠送签名
TemplateCode string 模板 CODE,必须与赠送签名匹配
TemplateParam string 模板参数,如 {"code":"##code##","min":"5"}
SmsUpExtendCode string 上行扩展码
OutId string 外部流水号(透传)
CodeLength integer 验证码长度 4–8,默认 4
ValidTime integer 有效期(秒),默认 300
DuplicatePolicy integer 重复发送策略(1/2)
Interval integer 发送间隔(秒),默认 60
CodeType integer 验证码类型(1–7)
ReturnVerifyCode boolean 是否返回验证码
AutoRetry integer 是否自动替换签名重试(默认开启)

(所有字段均来自页面内容)


📤 4. 返回参数(Response Parameters)

字段名 类型 说明
AccessDeniedDetail string 拒绝详情
Message string 状态描述,如“成功”
RequestId string 请求 ID
Model object 结果数据(含 VerifyCode、BizId 等)
Code string 状态码,OK 表示成功
Success boolean 是否成功

示例返回(来自页面):

{
  "AccessDeniedDetail": "无",
  "Message": "成功",
  "RequestId": "CC3BB6D2-2FDF-4321-9DCE-B38165CE4C47",
  "Model": {
    "VerifyCode": "4232",
    "RequestId": "a3671ccf-0102-4c8e-8797-a3678e091d09",
    "OutId": "1231231313",
    "BizId": "112231421412414124123^4"
  },
  "Code": "OK",
  "Success": true
}

❗ 5. 错误码(Error Codes)

HTTP 状态码 错误码 描述
400 MOBILE_NUMBER_ILLEGAL 手机号非法
400 BUSINESS_LIMIT_CONTROL 当天发送次数超限
400 FREQUENCY_FAIL 频控失败
400 INVALID_PARAMETERS 参数非法
400 FUNCTION_NOT_OPENED 未开通该功能

(来自页面错误码列表)


🕒 6. 变更历史

最近一次变更:

  • 2025-09-26:更新请求参数 AutoRetry

📌 7. 开发要点总结(实用)

  • 必须使用系统赠送签名 + 赠送模板,否则可能下发失败
  • 验证码生成方式
    • 若 TemplateParam 使用占位符,则必须传 CodeType
  • 频控:默认 60 秒
  • 有效期:默认 300 秒
  • 重复发送策略:DuplicatePolicy 控制旧验证码是否作废