腾讯云短信服务

免费申请200条免费短信流程

1.注册一个个人用的公众号(订阅号)

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

2.腾讯云注册&实名

3.腾讯云短信模块操作

按要求创建签名和创建短信模板
image

4.创建一个应用或者使用默认应用

记住!appid 和appkey
image

5.在pycharm终端安装python sdk2.0版本

python sdk2.0地址:https://cloud.tencent.com/document/product/382/11672

根据该文档进行操作

腾讯短信服务代码封装

第三方的东西放在根目录下的libs包里

在该包里新建一个包,专门放短信的东西

在tex_msg短信包里新建一个setting.py里封装短信的固定配置

# 短信应用 SDK AppID
appid = 1400758937  # SDK AppID 以1400开头
# 短信应用 SDK AppKey
appkey = "df3968500010e1fa12e1f89c8a7ea171"
# 需要发送短信的手机号码
# phone_numbers = ["21212313123", "12345678902", "12345678903"]
# 短信模板ID,需要在短信控制台中申请
template_id = 1592782  # NOTE: 这里的模板 ID`7839` 只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
sms_sign = "路上星光"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请

send.py里封装了发送短信的功能

from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
from . import settings
from luffyapi.utils.logger import log
import random


# 随机生成4位验证码
def get_code():
    code = ''
    for i in range(4):
        code += str(random.randint(0,9))
    return code

def send_message(phone,code):
    ssender = SmsSingleSender(settings.appid, settings.appkey)
    params = [code, '1']  # 当模板没有参数时,`params = []`
    try:
        result = ssender.send_with_param(86, phone,template_id, params, sign=sms_sign, extend="", ext="")
        if result.get('result')==0:
            return True
        else:
            return False
    except Exception as e:
        # 发送出现异常记下日志
        log.error('%s短信发送失败,错误为:%s' % (phone,str(e)))

补充:

# 在包内的init.py里写以下这句好,以后在别的py文件内就可以直接导入这两个函数了,
# 比如from luffyapi.libs.tx_msg import get_code,send_message
from .send import get_code,send_message
posted @ 2022-11-03 14:38  等日落  阅读(175)  评论(0编辑  收藏  举报