开发者文档中心

为开发者提供短信、人机验证、SSL等产品的 API 接入指南与多种开发语言 SDK

短信服务 SDK

Python SDK 接入指南

提供与 Luosimao 短信 API 交互的 Python 客户端。内置了针对网络抖动的自动重试机制以及对错误码的统一封装,支持通过 pip 快速安装。

1. 安装

你可以通过 pip 安装此 SDK,详细信息可访问 PyPI 项目主页 查看:

Terminal
pip install luosimao-sms

2. 快速开始

2.1 初始化客户端

init.py
from luosimao import LuosimaoClient, LuosimaoException, ErrorCode

# 初始化客户端,填入你的 API KEY
# API KEY 包含或不包含 'key-' 前缀均可,SDK 会自动处理
api_key = "你的_API_KEY"

# 推荐使用 context manager,它会自动关闭底层的 requests.Session
with LuosimaoClient(api_key=api_key) as client:
    # 你的业务代码...
    pass

2.2 发送单条短信

send.py
from luosimao import LuosimaoClient, LuosimaoException

with LuosimaoClient(api_key="你的_API_KEY") as client:
    try:
        # 短信内容末尾务必增加签名信息,例如:【公司名称】
        response = client.send_sms(
            mobile="13761428268", 
            message="验证码:321123【铁壳测试】"
        )
        print("发送成功:", response)
    except LuosimaoException as e:
        print(f"发送失败,错误码: {e.code}, 错误信息: {e.message}")
        if e.hit:
            print(f"触发敏感词: {e.hit}")

2.3 批量发送短信

⚠️ 场景建议:批量接口专门用于大量号码的内容群发,不建议发送验证码等有时效性要求的内容。

batch.py
from luosimao import LuosimaoClient

with LuosimaoClient(api_key="你的_API_KEY") as client:
    mobiles = ["13761428268", "18521513391"]
    
    # 也可以指定发送时间:time="2026-04-01 12:30:00"
    response = client.send_batch_sms(
        mobile_list=mobiles, 
        message="提醒:您的账号即将到期,请及时充值【铁壳测试】"
    )
    print("批量发送成功:", response)

2.4 查询账户余额

status.py
from luosimao import LuosimaoClient

with LuosimaoClient(api_key="你的_API_KEY") as client:
    status = client.get_status()
    print(f"当前余额: {status.get('deposit')}")

3. 异常处理与错误码

SDK 提供了一个 ErrorCode 枚举类,包含 Luosimao API 的所有常见错误码。你可以根据这些错误码进行针对性的异常处理:

error_handling.py
from luosimao import LuosimaoClient, LuosimaoException, ErrorCode

try:
    client = LuosimaoClient(api_key="你的_API_KEY")
    client.send_sms(mobile="13712345678", message="不合规内容【公司名称】")
except LuosimaoException as e:
    if e.code == ErrorCode.INSUFFICIENT_BALANCE:
        print("短信余额不足,请充值!")
    elif e.code == ErrorCode.SENSITIVE_WORD:
        print(f"短信内容包含敏感词: {e.hit}")
    elif e.code == ErrorCode.MISSING_SIGNATURE:
        print("短信内容缺少签名信息,请在末尾添加【公司名称】")
    else:
        print(f"其他 API 错误: {e}")