【Python】腾讯云短信验证码接入完整教程,从申请模板到发送只需10分钟

📅 2026/7/15 1:52:25 👁️ 阅读次数 📝 编程学习
【Python】腾讯云短信验证码接入完整教程,从申请模板到发送只需10分钟

腾讯云短信验证

  • 1. 注册腾讯云&开通云短信
    • 1.1 注册并认证
    • 1.2 开通云短信
  • 2. 创建应用
  • 3. 创建签名
    • 3.1 申请微信订阅号
    • 3.2 创建签名
  • 4. 创建模板
  • 5. 发送短信
  • 6. 关于频率限制

1. 注册腾讯云&开通云短信

1.1 注册并认证

注册一个腾讯云账户,腾讯云中提供了很多功能:云服务器、云储存器、云直播、云短信等很多功能。

注册地址:https://cloud.tencent.com/
根据提示一步步进行注册即可,
实名注册时,什么行业、通讯等信息,按照自己的的实际情况填写即可,实在不知道的可以随便填。

1.2 开通云短信

腾讯云注册成功之后,登录腾讯云并去开通 云短信服务,开通短信服务后才能发短信。

开通地址:https://console.cloud.tencent.com/smsv2

根据流程进行开通之后,就可以进入云短信控制台。

2. 创建应用

创建应用并将应用中生成的SDK AppIDApp Key复制下来,之后通过python发送短信时需要用到。

3. 创建签名

在腾讯云短信签名时需要认证,认证需要填写签名类型:网站、APP、小程序、公众号,前三种需要提供企业资质等复杂的东西,个人公众号认证会比较便捷,所以推荐个人开发的话使用 公众号 进行签名。

so,咱们需要先 申请一个公众号 然后 创建签名 。

3.1 申请微信订阅号

注册地址:https://mp.weixin.qq.com/

3.2 创建签名

根据自己的需求选择 国内短信/国际短信 中的签名管理,进行创建签名。

切记:签名类型选择 公众号 ,并根据提示上传相关数据即可。

签名创建并审核通过后,把你提交的签名内容值保存下来,之后Python发送短信用。

提醒:签名创建完成之后,需要等待腾讯进行审核,也可以联系他们客服QQ加速审核

4. 创建模板

根据自己需求创建短信模板,以后根据模板进行发送短信,例如:您的注册验证码:{1},如非本人操作,请忽略本短信!

模板创建并审核通过之后,把模板ID保存下来,之后Python发送短信用

5. 发送短信

上述的准备工作做完中我们开通相关服务并获取到如下几个值:

  • 创建应用,获取到 appid 和 appkey
  • 创建签名,获取 签名内容
  • 创建模板,获取 模板ID

接下来开始使用Python发送短信。

第一步:安装SDK

pip install qcloudsms_py

第二步:基于SDK发送短信

#!/usr/bin/env python# -*- coding:utf-8 -*-importssl# ssl._create_default_https_context = ssl._create_unverified_contextfromqcloudsms_pyimportSmsMultiSender,SmsSingleSenderfromqcloudsms_py.httpclientimportHTTPErrordefsend_sms_single(phone_num,template_id,template_param_list):""" 单条发送短信 :param phone_num: 手机号 :param template_id: 腾讯云短信模板ID :param template_param_list: 短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板 :return: """appid=自己应用ID# 自己应用IDappkey="自己应用Key"# 自己应用Keysms_sign="公众号全称"# 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)sender=SmsSingleSender(appid,appkey)try:response=sender.send_with_param(86,phone_num,template_id,template_param_list,sign=sms_sign)exceptHTTPErrorase:response={'result':1000,'errmsg':"网络异常发送失败"}returnresponsedefsend_sms_multi(phone_num_list,template_id,param_list):""" 批量发送短信 :param phone_num_list:手机号列表 :param template_id:腾讯云短信模板ID :param param_list:短信模板所需参数列表,例如:【验证码:{1},描述:{2}】,则传递参数 [888,666]按顺序去格式化模板 :return: """appid=自己应用ID appkey="自己应用Key"sms_sign="公众号全称"sender=SmsMultiSender(appid,appkey)try:response=sender.send_with_param(86,phone_num_list,template_id,param_list,sign=sms_sign)exceptHTTPErrorase:response={'result':1000,'errmsg':"网络异常发送失败"}returnresponse

6. 关于频率限制

腾讯云短信后台可以进行 短信频率 的限制。

但是,由于我们是免费用户所以无法进行设置,只能使用默认的配置(30秒发1条/1小时发5条/1天发10条)