0
点赞
收藏
分享

微信扫一扫

腾讯云短信的使用

年迈的代码机器 2022-02-02 阅读 104

pythonav资源分享icon-default.png?t=M0H8https://pythonav.com/wiki/detail/10/81/

上述写了完整的注册以及使用

1.setting.py

# 腾讯云短信
TENCENT_SMS_APPID = xx# 自己应用ID
TENCENT_SMS_APPKEY = "xx"  # 自己应用Key
TENCENT_SMS_SIGN = "python后端接口开发"  # 签名管理里面的 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)
# templates 短信

TENCENT_SMS_TEMPLATES = {
    'register': 993292,
    'login': 993155
}

2.封装的函数

# -*- coding:utf-8 -*-

# 腾讯发生短信模块

# pip3 install qcloudsms_py

import ssl
# ssl._create_default_https_context = ssl._create_unverified_context
from qcloudsms_py import SmsMultiSender, SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
from django.conf import settings


def send_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 = settings.TENCENT_SMS_APPID  # 自己应用ID
    appkey = settings.TENCENT_SMS_APPKEY  # 自己应用Key
    sms_sign = settings.TENCENT_SMS_SIGN  # 签名管理里面的 自己腾讯云创建签名时填写的签名内容(使用公众号的话这个值一般是公众号全称或简称)
    sender = SmsSingleSender(appid, appkey)
    try:
        response = sender.send_with_param(86, phone_num, template_id, template_param_list, sign=sms_sign)
    except HTTPError as e:
        response = {'result': 1000, 'errmsg': "网络异常发送失败"}
    return response  # 调用

3.函数调用

def sms_msg(request):
    """发送短信?tpl =register ---15161?tpl = login ---15161"""

    tpl = request.GET.get('tpl')
    templates_id = settings.TENCENT_SMS_TEMPLATES.get(tpl)
    if not templates_id:
        return HttpResponse('请输入正确的模板id')
    code = random.randrange(1000, 9999)
    res = send_sms_single('19803630852', templates_id, [code])
    if res["result"] == 0:
        return HttpResponse('成功')
    return HttpResponse(res['errmsg'])  # settings.py
举报

相关推荐

0 条评论