发送短信验证码二次封装
2022/4/24 23:13:42
本文主要是介绍发送短信验证码二次封装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
发送短信服务二次封装
在libs文件夹下创建包sms
然后再创建settings.py以及sms_main.py
settings.py
# 短信应用 SDK AppID APPID = 1400669171 # SDK AppID 以1400开头 # 短信应用 SDK AppKey APPKEY = "35374dbccf88d2fab8af32885125af96" # 短信模板ID,需要在短信控制台中申请 TEMPLATE_ID = 1379089 # NOTE: 这里的模板 ID`7839` 只是示例,真实的模板 ID 需要在短信控制台中申请 # 签名 SMS_SIGN = "z姓程序猿公众号" # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
sms_main.py
from qcloudsms_py import SmsSingleSender from utils.log import logger import random from . import settings # 获取验证码(默认为4) def get_code(count=4): code = '' for i in range(count): temp = random.randint(0, 9) code += str(temp) return code # 发送短信 def send_sms(phone, code): ssender = SmsSingleSender(settings.APPID, settings.APPKEY) params = [code, '5'] # 当模板没有参数时,`params = []` try: result = ssender.send_with_param(86, phone, settings.TEMPLATE_ID, params, sign=settings.SMS_SIGN, extend="", ext="") if result.get('result') == 0: return True else: # 发送失败记录日志 因为这个日志配置的是Django框架的参数,其他可能不能用,可以用判断是False在外面记录日志的方法 logger.error('手机号为%s,发送短信失败' % phone) return False except Exception as e: logger.error('手机号为%s发送短信失败,原因为%s' % (phone, str(e))) return False
init.py
from .sms_main import get_code, send_sms
使用
在views.py中
# 发送短信接口 class SendMsgAPIView(ViewSet): @action(methods=['get'], detail=False) def message(self, request): # get请求取出数据 mobile = request.query_params.get('mobile', None) if not mobile: raise APIException('手机号没传') # 获取验证码 code = sms.get_code() # 发送短信 res = sms.send_sms(mobile, code) if res: # 如果是其他框架根据返回值如果是False来记录日志 return APIResponse(msg='短信发送成功') else: return APIResponse(msg='短信发送失败')
这篇关于发送短信验证码二次封装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现
- 2024-06-03为什么以及如何要进行架构设计权衡?
- 2024-05-31全网首发第二弹!软考2024年5月《软件设计师》真题+解析+答案!(11-20题)
- 2024-05-31全网首发!软考2024年5月《软件设计师》真题+解析+答案!(21-30题)
- 2024-05-30【Java】百万数据excel导出功能如何实现
- 2024-05-30我们小公司,哪像华为一样,用得上IPD(集成产品开发)?
- 2024-05-30java excel上传--poi
- 2024-05-30安装笔记本应用商店的pycharm,再安排pandas等模块,说是没有打包工具?
- 2024-05-29java11新特性