一.开通腾讯云短信

SDK 文档 :https://cloud.tencent.com/document/product/382/11672

1、官网注册实名账号:https://cloud.tencent.com
2、选取短信服务创建短信应用
3、申请签名与短信模板 - 通过微信公众号申请

  

# 可以作为我们的测试脚本文件

import os
import django
import sys sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "luffyapi.settings.dev")
django.setup() # 导包
# from django.conf import settings
#
# print(settings) # <Settings "luffyapi.settings.dev"> 当前的开发环境 from utils.loggings import logger logger.critical('测试logger') # 短信验证 参数的配置
# 短信应用 SDK AppID
appid = 1400278004 # SDK AppID 以1400开头
# 短信应用 SDK AppKey
appkey = "2addd431cd782a9afb75e9c85df66028" # 需要发送短信的手机号码
phone_numbers = [""]
# 短信模板ID,需要在短信控制台中申请
template_id = 457157 # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
# 签名
sms_sign = "AlieeMye的技术栈" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请 # 指定id 单发短信
# 随机验证码
from utils.loggings import logger
from qcloudsms_py import SmsSingleSender
from qcloudsms_py.httpclient import HTTPError
import random
def get_code():
code = ""
for i in range(5):
num = str(random.randint(0,9)) code += num
return code 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="")
print(result)
if result and result['result'] == 0:
print('短信发送成功')
except HTTPError as e:
print(e)
except Exception as e:
print(e)
# 日志记录错误信息 logger.warning(e)
print('短信发送失败')
# 导包
# from libs import txsms
# code = txsms.get_code()
# print(code)
# print(txsms.send_sms('13122358108', code, 5))

   

  二.腾讯云短信二次封装

  seetings 的配置

# 短信应用 SDK AppID - SDK AppID 以1400开头
# 短信的settings 的配置 短信应用SDK APPID >>>以1400
App_ID = 1400278004
# 短信应用 APPker
APP_KEY = '2addd431cd782a9afb75e9c85df66028' # 短信模板ID 需要在控制台中申请 模块 TEMPLATE_ID = 457157 # 签名内容 SMS_SING = 'AlieeMye的技术栈'
# 电话前缀
MOBILE_PREFIX = 86

  sms 获取验证码

# 通过MacOS ssl安全认证
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
# 获取去短息验证功能 短信发送 # 获取验证号功能
import random def get_code():
code = ""
for i in range(6):
num = str(random.randint(0, 9)) code += num
return code # 短信发送者
from qcloudsms_py import SmsSingleSender
from . import setttings
from .setttings import * ssender = SmsSingleSender(setttings.App_ID, setttings.APP_KEY) # 发送验证码
from utils.loggings import logger def send_sms(mobile, code, exp):
try:
response = ssender.send_with_param(MOBILE_PREFIX, mobile, TEMPLATE_ID, (code, exp), sign=SMS_SING, 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

  test.py

# 导包
# from libs import txsms
# code = txsms.get_code()
# print(code)
# print(txsms.send_sms('13122358108', code, 5))

luffyapi项目 --短信认证的基本操作的更多相关文章

  1. [权限管理系统(四)]-spring boot +spring security短信认证+redis整合

    [权限管理系统]spring boot +spring security短信认证+redis整合   现在主流的登录方式主要有 3 种:账号密码登录.短信验证码登录和第三方授权登录,前面一节Sprin ...

  2. 全新升级的WiFi无线上网短信认证系统,适用于咖啡厅、足浴等公共场所,提高门门店营业收入

    WiFi无线上网短信认证系统经历从1.0到1.88的升级,都是用户在使用过程中,提出宝贵的意见,一直修复至今,有着非常稳定的版本. 这个软件有什么作用?WiFi为什么要认证呢? 其实这个只是获取用户联 ...

  3. iOS之短信认证

    短信验证 现在很多的短信验证平台,我们比较常用的有移动开发者服务平台 根据短信验证文档来集成 1. 找到iOS短信验证的集成开发文档 2. 下载SDK和Demo目录结构  3. 运行Demo 4. 写 ...

  4. Android项目——短信发送器

    因为应用要使用手机的短信服务,所以要在清单文件AndroidManifest.xml中添加短信服务权限: <?xml version="1.0" encoding=" ...

  5. github二次认证接收短信的问题

    这两天登陆github都被提示说我账号的密码已经被归类,提醒我修改密码. 改密码的时候发现GitHub有个二次认证的功能,分别是app和sms短信认证.app这里就不讲了,我们讲一下github的短信 ...

  6. SpringBoot + Spring Security 学习笔记(五)实现短信验证码+登录功能

    在 Spring Security 中基于表单的认证模式,默认就是密码帐号登录认证,那么对于短信验证码+登录的方式,Spring Security 没有现成的接口可以使用,所以需要自己的封装一个类似的 ...

  7. quartz-job实现实时或定时发送短信任务

    存放调度器(Job 和 Trigger)信息的xml配置文件: 这是某个指定的要实现的定时任务: <!-- 每天给项目经理发送短信避免短信服务挂了 定时每天08:30执行--> <j ...

  8. day80_10_29git冲突解决与短信服务redis

    一.开发中的操作. 在项目开发中,在工作区进行开发,开发结束后提交到本地版本库. 再拉取远程仓库,具体如下: """ 1.开发前,拉一次远程仓库 2.工作区进行开发 3. ...

  9. django 之(五) --- 验证码|富文本|邮箱短信

    验证码 在用户登录,注册以及一些敏感操作的时候,我们为了防止服务器被暴力请求,或爬虫爬取,我们可以使用验证码进行过滤,减轻服务器的压力. 原生实现: 库名:pip install Pillow     ...

随机推荐

  1. Shell执行脚本

    Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命 ...

  2. JavaScript 普通声明式函数

    1.为什么需要函数 实现代码的复用.存在函数提升,且会在变量提升的上面; 2.函数的创建 js中函数语法: function 函数名(形参){ //函数体 } 调用时:函数名(形参) 注: (1) 形 ...

  3. LeetCode 168. Excel表列名称(Excel Sheet Column Title)

    题目描述 给定一个正整数,返回它在 Excel 表中相对应的列名称. 例如, 1 -> A 2 -> B 3 -> C ... 26 -> Z 27 -> AA 28 - ...

  4. 获取<a>标签值</a>的标签值及更改

    html代码: <a id="catelogue_div1_h5" onclick="catelogue_div1(event)">隐藏</a ...

  5. 【Spark机器学习速成宝典】模型篇05决策树【Decision Tree】(Python版)

    目录 决策树原理 决策树代码(Spark Python) 决策树原理 详见博文:http://www.cnblogs.com/itmorn/p/7918797.html 返回目录 决策树代码(Spar ...

  6. golang reflect 简单使用举例

    golang中的多态,主要由接口interface体现. 接口interface在实现上,包括两部分:动态类型和动态值. golang提供的reflect包可以用来查看这两部分. 动态类型 func ...

  7. 操作MySQL出错提示“BLOB/TEXT column request_data in key specification without a key length”解决办法

    错误原因: 查阅资料后才知道,原来Mysql数据库对于BLOB/TEXT这样类型的数据结构只能索引前N个字符.所以这样的数据类型不能作为主键,也不能是UNIQUE的.所以要换成VARCHAR,但是VA ...

  8. [VBA]去重汇总-2

    代码来源Excelhome,链接:http://club.excelhome.net/thread-1360829-1-1.html 存着,以后借鉴着用^-^ Sub 去重汇总() Dim arr, ...

  9. 阶段3 3.SpringMVC·_02.参数绑定及自定义类型转换_2 请求参数绑定实体类型

    参数封装到javaBean对象中 创建新的包domain.在下面新建Account 实现序列化 的接口,定义几个属性 生成get和set.还有toString的方法 表单 重新发布tomcat jav ...

  10. 四十一:数据库之SQLAlchemy之limlt、、slice、offset及切片

    一:limit:限制每次查询的时候查询数据的条数二:slice:查一个区间的数据,slice(起,止)三:offset:限制查找数据的时候过滤掉前面多少条四:切片:对query对象切实获取想要的数据 ...