API 文档

快速接入短信发送服务,支持 GET 和 POST 两种请求方式,分钟级完成集成

Base URL /api/
请求方式 GET POST
Content-Type application/json
POST GET

发送短信

向指定手机号发送短信,按实际计费条数扣除余额。

V2 接口已开始推送上线,如无 BUG,V1 接口将于 2026 年底正式下线。请尽快迁移至 V2 加密接口
接口地址
POST / GET /api/send.php

请求参数

参数名类型必填说明
AppKey string 你的 API 密钥,注册后获取
phone string 目标手机号
content string 短信内容(签名自备)

请求示例

cURL / Browser
// 浏览器 / curl 直接请求
/api/send.php?AppKey=你的AppKey&phone=13800138000&content=您的验证码是123456

响应示例

成功响应
{ "code": 1, "msg": "发送成功" }
余额不足
{ "code": 0, "msg": "Insufficient balance" }
AppKey 无效
{ "code": 0, "msg": "AppKey not found or invalid" }
GET

查询余额

查询指定 AppKey 的剩余短信条数。

接口地址
GET /api/balance.php?AppKey=你的AppKey

请求参数

参数名类型必填说明
AppKey string 你的 API 密钥

响应示例

成功响应
{ "code": 1, "msg": "ok", "balance": 100 }
POST

发送短信 (V2 加密)

安全

使用 AES-256-GCM 端到端加密发送短信,防止中间人窃听和篡改。建议正式环境使用 V2 接口。

接口地址
POST /api_v2/send.php
注意:V2 要求加密密钥(Encrypt Key),请在控制台的"API设置"页面获取。每次请求需生成随机 IV(12 字节)。

请求参数

参数名类型必填说明
AppKey string 你的 API 密钥
payload string AES-256-GCM 加密后的密文(Base64)
iv string 加密使用的随机 IV(Base64,12 字节)
tag string GCM 认证标签(Base64,16 字节)
timestamp int Unix 时间戳,±5分钟内有效

加密 payload 内容

加密前的明文 JSON 需包含以下字段:

字段说明
phone目标手机号
content短信内容(含签名)

加密流程

1. 获取 Encrypt Key(64 位十六进制)→ 转为 32 字节二进制密钥

2. 生成 12 字节随机 IV

3. 将 {"phone":"138...","content":"..."}AES-256-GCM 加密

4. 取出 ciphertexttag(GCM 自动生成)

5. 将所有字段 Base64 编码,连同 AppKey 和 timestamp 发送到 V2 接口

请求示例

JSON
POST /api_v2/send.php
Content-Type: application/json

{
    "AppKey":    "你的AppKey",
    "payload":   "xK9mR3vW...base64密文...",
    "iv":        "7nFqL2pX...base64...",
    "tag":       "9tR4sM8w...base64...",
    "timestamp": 1750000000
}

响应示例

成功响应
{ "code": 1, "msg": "发送成功" }
解密失败
{ "code": 0, "msg": "Decryption failed" }
时间戳过期
{ "code": 0, "msg": "Timestamp expired" }

PHP 客户端加密代码参考

PHP
// 1. 加密
$encryptKey = hex2bin('你的64位加密密钥');
$iv = random_bytes(12);
$plaintext = json_encode(['phone' => '13800138000', 'content' => '您的验证码是123456']);
$tag = '';
$ciphertext = openssl_encrypt($plaintext, 'aes-256-gcm', $encryptKey, OPENSSL_RAW_DATA, $iv, $tag);

// 2. 请求
$data = [
    'AppKey'    => '你的AppKey',
    'payload'   => base64_encode($ciphertext),
    'iv'        => base64_encode($iv),
    'tag'       => base64_encode($tag),
    'timestamp' => time()
];
$ch = curl_init('https://sms.1wnt.cn/api_v2/send.php');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);

echo $result;