Skip to content

短信宝协议接口 ​

短信宝协议兼容短信宝(smsbao)网关的请求格式,使用系统用户名 + SysKey 鉴权,适合对接已支持短信宝通道的第三方系统(如各类建站程序、Discuz、WHMCS 插件等)。

请求方式 ​

  • 支持 GET 和 POST(POST 也支持 JSON 请求体)。
  • 只要请求中同时带有 u、p、m、c 四个参数,即按短信宝协议处理(优先级最高)。

响应格式不同

短信宝协议返回的是 text/plain 纯文本状态码(如 0、30、40),不是 JSON。请勿按 JSON 解析。

请求 URL ​

http
GET /?u=用户名&p=sk_xxx&m=13800138000&c=【签名】您的验证码为123456,请不要告诉其他人哟!

参数说明 ​

参数必填说明
u是系统用户名(登录短信面板的用户名)。
p是该用户的 SysKey(在短信后台获取)。
m是11 位手机号码。
c是带签名的完整短信正文,必须以 【签名】 或 [签名] 开头。支持一次或两次 URL 编码。

正文与模板匹配规则 ​

系统会从正文 c 中解析签名和正文内容,再自动匹配发送模板:

  1. 验证码正文:正文为 您的验证码为{数字},请不要告诉其他人哟! 时,使用系统内置验证码模板(SMS_500650100)发送,无需提前申请模板。
  2. 其他正文:自动与你在后台已审核通过的模板逐一匹配,正文中的变量部分按模板占位符 {变量} 的位置自动还原为模板参数。匹配失败返回 InvalidTemplate。

签名要求 ​

  • 正文开头的 【签名】 必须与解析出的 106 签名完全一致:
    • 会员用户:需与管理员为你配置的签名前缀一致。
    • 免费用户:只能使用系统默认签名,填写其他签名返回 InvalidSignName。

返回码(纯文本) ​

返回值HTTP 状态码说明
0200发送成功。
-1400/403/500参数缺失、IP 不在白名单或服务器内部错误。
30401用户名或 SysKey 错误(鉴权失败)。
40429短信包余额不足。
41429超过速率限制。
43400手机号格式不正确,或被真实性检测/虚拟号段/第三方运营商拦截。
InvalidContent400正文格式错误,缺少 【签名】 前缀。
InvalidSignName400签名与账户允许的签名不一致。
InvalidTemplate400正文无法匹配任何已审核模板。

调用示例 ​

bash
curl "https://smspanel.szczk.top/?u=myuser&p=sk_xxx&m=13800138000&c=$(python3 -c "import urllib.parse;print(urllib.parse.quote('【starcloud】您的验证码为123456,请不要告诉其他人哟!'))")"

提示

c 参数包含中文和特殊符号,务必进行 URL 编码。