Python调用腾讯云短信接口发送验证码

橘子海
橘子海
发布时间:2026-10-12 | 2人浏览过
原创

本文演示如何使用Python结合第三方库调用腾讯云短信接口,自动下发包含6位随机数的手机验证码。内容详细记录控制台应用开通、签名与模板配置流程、核心凭证获取路径及完整代码示例。该方案可稳定嵌入运维监控或业务通知脚本,满足各类自动化消息触达需求。

准备条件与控制台配置

在编写调用代码前,需确保已开通腾讯云短信服务并完成基础资源申请。短信接口调用依赖三个核心凭证:SDK AppID、App Key以及经过审核的短信签名与模板ID。

第1步:安装依赖库

使用官方推荐的第三方客户端库简化HTTP请求封装:

pip install qcloudsms_py

第2步:创建应用并获取凭证

登录腾讯云控制台,在左侧导航栏进入「短信」模块。点击「添加应用」后保存生成的 SDK AppID 与 App Key,后续代码中需严格对应填入。

腾讯云短信控制台添加应用界面示意
核对截图中的应用名称与所属地域,确认应用已成功创建。

在应用详情页右侧或顶部可看到完整的 SDK AppID 与 App Key,复制至本地配置文件或代码中。

腾讯云应用凭证查看页面
此处显示的 AppID 为整型,App Key 为字符串,勿漏掉末尾特殊字符。

第3步:申请签名与模板

短信下发必须符合监管要求,需提前在控制台提交签名与模板内容。签名用于标识发送主体(如公众号名、企业名),模板用于定义验证码文案结构。常规审核效率较快,通常在1~2小时内生效。

腾讯云短信签名与模板管理入口
模板变量需用双大括号包裹(例如 {{1}}),后续代码传参顺序需与变量位置一致。

注:云厂商计费策略与免密额度可能随产品迭代调整,正式投产前请以控制台账单页与实际扣费规则为准。

Python代码实现流程

第4步:配置凭证与发送逻辑

以下代码基于 `qcloudsms_py` 封装单发场景。初始化类时需传入目标手机号,内部自动生成6位随机数并通过 `send_with_param` 发起请求。请将 `appid`、`appkey` 与 `TEMPLATE_ID` 替换为控制台实际值。

# -*- coding: utf-8 -*-
import random
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError

class QCloudSmsSender:
    def __init__(self, phone_num):
        # 请将下方占位符替换为控制台实际获取的凭证
        self.appid = 1400xxxxxx       # SDK AppID,类型为 int
        self.appkey = "your_app_key"  # App Key,类型为 str
        self.phone_num = phone_num
        self.sign = "rzbbzr公众号"    # 已审核通过的签名名称
        self.template_id = "YOUR_TEMPLATE_ID" # 短信模板ID

    def make_code(self):
        """生成6位纯数字随机验证码"""
        return "".join(str(random.randint(0, 9)) for _ in range(6))

    def send_msg(self):
        ssender = SmsSingleSender(self.appid, self.appkey)
        try:
            # param 参数必须为列表类型,长度需与模板变量数量一致
            resp = ssender.send_with_param(
                86,                       # 国家代码
                self.phone_num,
                self.template_id,
                [self.make_code()],       # 模板变量值列表
                sign=self.sign,
                extend="", ext=""
            )
            print(resp)
        except HTTPError as http_err:
            print("网络或协议错误:", http_err)
        except Exception as e:
            print("发送异常:", e)

if __name__ == "__main__":
    # 测试号码列表,实际使用时替换为真实业务号码
    test_phones = ["188xxxxxxxx", "185xxxxxxxx", "176xxxxxxxx"]
    target_phone = random.choice(test_phones)
    sms_task = QCloudSmsSender(target_phone)
    sms_task.send_msg()

第5步:运行验证与返回检查

执行脚本后,终端将打印接口返回的 JSON 结构对象。重点关注 `result` 字段,值为 `0` 表示发送成功;非零值代表业务侧拦截或余额不足。可通过腾讯云文档中心对照错误码进行排查。

腾讯云开发者文档中心导航页
文档内包含完整的 API 签名规范与 Python/Java/PHP 多语言 SDK 示例。

完成判断与常见排错

  • 终端输出 `result: 0` 且未抛出异常,即视为流程打通。
  • 收到 `error message: 模板变量数量不匹配`:检查 `send_with_param` 中 list 长度是否与模板定义的变量数一致。
  • 收到 `error message: 签名未审核通过`:前往控制台确认签名状态,或重新提交合规文本。
  • 收到 `error message: 账户余额不足`:联系管理员充值或切换预付费套餐。

简要总结

借助 `qcloudsms_py` 库,Python 开发者可快速构建稳定的短信下发通道。合理配置签名模板并绑定自动化触发器(如定时任务、事件监听),即可实现系统告警、事务确认、进度追踪等场景的消息推送。如需深入对接多语言客户端或自定义回调地址,可直接参考平台官方技术文档。

以上就是Python调用腾讯云短信接口发送验证码的详细内容,更多关于Python通过qcloudsms库发送手机短信的实用资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表