入门 API自动化PythonNode

🔄使用 API Key 实现自动取号与轮询

用一段 Python / Node 脚本实现「取号 → 定时轮询 → 拿到验证码」的完整自动化,并处理超时与失败重试。

✍️ SimSmsBox 📅 2026年5月25日

手动 curl 适合调试,真实业务需要自动化。本教程给出可直接套用的轮询脚本。

思路

  1. 创建订单,拿到 orderId
  2. 每隔 2~3 秒查询一次状态;
  3. 收到 received 就返回验证码;
  4. 超过最长等待时间则取消订单并重试。

Python 示例

import time, requests

BASE = "https://api.simsmsbox.com"
HEADERS = {"X-API-Key": "psk_xxxxxxxx"}

def get_code(service="telegram", country="US", timeout=180):
    r = requests.post(f"{BASE}/api/sms/orders/purchase",
                      headers=HEADERS,
                      json={"service": service, "country": country, "cardKind": "physical", "rentDays": 30})
    order = r.json()
    oid = order["orderId"]
    deadline = time.time() + timeout
    while time.time() < deadline:
        s = requests.get(f"{BASE}/api/sms/orders/{oid}", headers=HEADERS).json()
        if s.get("latestCode"):
            return s["latestCode"]
        time.sleep(3)
    # 超时则取消(未收码可退款)
    requests.post(f"{BASE}/api/sms/orders/{oid}/cancel", headers=HEADERS)
    raise TimeoutError("验证码超时未到达")

print(get_code())

Node.js 示例

const BASE = "https://api.simsmsbox.com";
const HEADERS = { "X-API-Key": "psk_xxxxxxxx", "Content-Type": "application/json" };
const sleep = (ms) => new Promise((r) => setTimeout(r, ms));

async function getCode(service = "telegram", country = "US", timeout = 180000) {
  const res = await fetch(`${BASE}/api/sms/orders/purchase`, {
    method: "POST", headers: HEADERS,
    body: JSON.stringify({ service, country, cardKind: "physical", rentDays: 30 }),
  });
  const { orderId } = await res.json();
  const deadline = Date.now() + timeout;
  while (Date.now() < deadline) {
    const s = await (await fetch(`${BASE}/api/sms/orders/${orderId}`, { headers: HEADERS })).json();
    if (s.latestCode) return s.latestCode;
    await sleep(3000);
  }
  await fetch(`${BASE}/api/sms/orders/${orderId}/cancel`, { method: "POST", headers: HEADERS });
  throw new Error("验证码超时未到达");
}

最佳实践

项目建议
轮询间隔2~3 秒,过密会浪费请求
最长等待60~180 秒,按应用调整
失败重试取消旧单后再重新取号
并发用钱包余额与配额控制并发量

验证码异步到达,耐心轮询 + 合理超时是稳定拿码的关键。

← 返回教程列表