腾讯云短信接口完成验证码功能

如何快速开通腾讯云短信服务:https://cloud.tencent.com/document/product/382/37745

使用python进行配置的间接:https://cloud.tencent.com/document/product/382/11672

个人使用心得(下面的例子是我个人项目中使用的)

封装成一个包

 

 settings.py

# 短信应用 SDK AppID
APPID = 1400009099  # SDK AppID 以1400开头
# 短信应用 SDK AppKey
APPKEY = "9ff91d87c2cd7cd0ea762f141975d1df37481d48700d70ac37470aefc60f9bad"
# 短信模板ID,需要在短信控制台中申请
TEMPLATE_ID= 7839  # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
SMS_SIGN = "腾讯云"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请

sms.py

from qcloudsms_py import SmsSingleSender
from .settings import *
from luffyapi.utils.logging import logger
import random
#mac系统的ssl安全验证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context


sender = SmsSingleSender(APPID,APPKEY)
class Send_sms:

    def __init__(self,mobile,exp):
        self.mobile = mobile
        self.code = self.get_code()
        self.exp = exp
    
    #  短信发送模块
    def send_sms(self):
        try:
            response = sender.send_with_param(86, self.mobile, TEMPLATE_ID, (self.code, self.exp), sign=SMS_SIGN, extend="", ext="")
        except Exception as e:
            logger.error('sms error: %s' % e)
            return False
        if response and response['result'] == 0:
            return True
        logger.error('sms error:%s' % response['errmsg'])
        return False
    
    #  随机验证码生成模块
    def get_code(self):
        self.code = ''
        for i in range(4):
            self.code += str(random.randint(0, 9))
        return self.code

__init__.py

from .sms import Send_sms

提醒:

qcloudsms_py模块别忘记安装了,指令如下

pip install qcloudsms_py

 

posted @ 2019-10-30 22:17  云上fly  阅读(1165)  评论(0编辑  收藏  举报