智慧云信

使用Python调用短信接口发送验证码短信教程

Python语言对接验证码短信接口DEMO示例

圆点

使用Python调用短信接口发送验证码短信教程(图1)

Web 应用里,验证码短信是常用功能,用户注册、密码找回都会用到。这篇文章讲怎么用 Python 调用短信接口,发送验证码短信。接口选用 https://api.3yit.com/api/send-sms-single,支持 POST 请求,数据格式为 application/x-www-form-urlencoded

准备工作

  • 获取接口文档:到智慧云信官网下载接口文档,找到自己的 sp_idpassword(或签名算法)等关键信息。
  • Python 环境:确认电脑上装好了 Python。
  • 请求库:发 HTTP 请求需要 requests 库,没装的话用 pip 安装:pip install requests

获取接口参数

登录智慧云信官网,选择对应的产品(如【验证码】),在上方选项卡中点击【开发者】→【HTTP开发文档】,就能看到具体的 API 方法名称,以及各参数的 key 和对应值,通常包括 sp_idmobilecontentpassword 等。各参数含义如下:

  • sp_id:产品编号,全局唯一,一般由 6 位数字组成。
  • mobile:接收短信的手机号码。
  • content:短信内容,包含签名和正文。例如“【智慧云信】您的验证码是456790,请妥善保管”,其中【智慧云信】是签名,需在签名报备中申请;后面的提示语是短信模板,需在模板报备中申请,审核通过后才能发送。
  • password:用 SP_ID 密码经 MD5 加密后生成的接口密码(非登录密码),由 32 位随机字符串组成。

编写代码

下面是一个简单的 Python 脚本,用来调用短信接口发送验证码短信:

import requests
import hashlib
import hmac
import base64
# 接口配置
api_url = 'https://api.3yit.com/api/send-sms-single'
sp_id = '5xxxxx'  # 从接口文档中获取
password = 'xxxxxxxxxxx'  # 32位md5处理后的密码,从接口文档中获取
# 待发送的手机号和短信内容(假设验证码为123456)
mobile = '176xxxxxxxx'
content = '【签名】验证码:123456'
# 构建请求参数
params = {
'sp_id': sp_id,
'mobile': mobile,
'content': content,
# 如果使用签名方式,则需要计算签名并添加到params中
# 这里以密码方式为例,所以不使用签名
'password': password,
# 扩展号(可选)
'ext': '123'
}
# 发送POST请求
response = requests.post(api_url, data=params)
# 解析响应内容
result = response.json()
# 输出结果
print(result)
# 检查响应状态
if result['code'] == 0:
print('验证码发送成功,msg_id:', result['msg_id'])
else:
print('发送失败:', result['msg'])

注意事项

  • 密码、签名属于敏感信息,不要硬编码在代码里,建议放到配置或环境变量中。
  • 示例只处理了返回码为 0 的情况,实际项目建议把网络错误、请求超时等各类错误都处理到。
  • 如果服务商提供签名算法且选用签名方式,要按算法要求计算签名,再把它加到请求参数里。
  • 建议记录发送日志,包括发送时间、手机号、验证码、响应结果,方便排查问题。
  • 正式上线前,对发送功能做充分测试,确认功能正常稳定。

按上面几步走,用 Python 调短信接口发验证码就不成问题。

其他语言教程:PHP · Java · ASP · ASP.NET(C#) · JSP · Node.js · Delphi · Go · Ruby · Shell · VB · C++ · C。更多信息见短信API接入指南

代码里的 API 地址、账号和密码替换成你自己的就能跑通。如果还没有账号,去智慧云信官网注册一个,注册就能免费测试,验证码、通知、营销短信都支持。

内容可信度说明

作者:智慧云信通信技术团队

技术审核:国际短信与号码检测产品组

最后更新:2026-08-13

适用范围:国际短信、国际验证码短信、国际语音筛单、空号检测、号码实时检测等出海通信与号码检测场景。

本文结合智慧云信平台产品能力、客户接入问题和通道运营经验整理。不同国家/地区的 Sender ID、模板审核、计费方式和合规要求可能变化,实际发送前建议以当前通道审核与项目沟通结果为准。