ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

短信认证

2019-10-30 12:01:27  阅读:241  来源: 互联网

标签:code 短信 sms 认证 签名 import ID


一 短信认证

https://cloud.tencent.com/document/product/382/11672

1.下载模块

pip install qcloudsms_py

2.面条版

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

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

from qcloudsms_py import SmsSingleSender
from utils.logging import logger

if __name__ == '__main__':

    ssender = SmsSingleSender(appid, appkey)
    # 验证码,和过期时间  短信模板中占位符
    code = get_code()
    print(code)
    params = [code,5]  # 当模板没有参数时,`params = []`
    try:
      result = ssender.send_with_param(86, phone_numbers[0],
          template_id, params, sign=sms_sign, extend="", ext="")
      if result and result['result'] == 0:
          print('发送成功')
    except Exception as e:
      print(e)
      logger.warning(e)
      print('发送短信失败')

3.封装版

libs/txsms/settings.py
# 短信应用 SDK AppID - SDK AppID 以1400开头
APP_ID = ...
# 短信应用 SDK AppKey
APP_KEY = "..."
# 短信模板ID,需要在短信控制台中申请
TEMPLATE_ID = ...
# 签名 - 是`签名内容`,而不是`签名ID`
SMS_SIGN= "..."
# 电话前缀
MOBILE_PREFIX = 86
libs/txsms/sms.py
# 通过MacOS ssl安全认证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context

# 获取验证码的功能
import random
def get_code():
    code = ''
    for i in range(4):
        code += str(random.randint(0, 9))
    return code

# 短信发送者
from qcloudsms_py import SmsSingleSender
from .settings import *
sender = SmsSingleSender(APP_ID, APP_KEY)

# 发送验证码
from utils.logging import logger
# 号码 验证码 超时时间 def send_sms(mobile, code, exp): try: # 发送短信 response = sender.send_with_param(MOBILE_PREFIX, mobile, TEMPLATE_ID, (code, exp), sign=SMS_SIGN, extend="", ext="") # 成功 if response and response['result'] == 0: return True # 失败 logger.warning('%s - %s' % ('短信发送失败', response['result'])) except Exception as e: # 异常 logger.warning('%s - %s' % ('短信发送失败', e)) return False
libs/txsms/__init__.py
# 包对外提供的功能方法
from .sms import get_code, send_sms
测试
from libs import txsms
code = txsms.get_code()
print(code)
print(txsms.send_sms('电话', code, 5))

 

标签:code,短信,sms,认证,签名,import,ID
来源: https://www.cnblogs.com/tfzz/p/11764047.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有