zoukankan      html  css  js  c++  java
  • 发送短信验证码

    借助于第三方短信服务——腾讯云

    腾讯云短信服务

    帮助文档
        -API:一堆web接口,基于API接口来写
        -SDK:软件开发工具包软件,别人基于api接口,用不同语言封装的工具包,我们可以直接调用方法完成某些事
    

    短信验证码接口

    # 生成一个四位随机验证码
    def get_code():
        import random
        s_code=''
        for i in range(4):
            s_code+=str(random.randint(0,9))
        return s_code
    
    
    def send_message(phone,code):
    
        ssender = SmsSingleSender(settings.appid, settings.appkey)
        params = [code, '3']  # 当模板没有参数时,`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:
                return False
        except Exception as e:
            log.error('手机号:%s,短信发送失败,错误为:%s'%(phone,str(e)))
    
    #settings.py
    # 腾讯云SDK文档
    # 短信的配置
    # 短信应用 SDK AppID
    appid = 140039846  # SDK AppID 以1400开头
    # 短信应用 SDK AppKey
    appkey = "fd972f6da15add4de47b50b8dbe930"
    # 短信模板ID,需要在短信控制台中申请
    template_id = 66935  # NOTE: 这里的模板 ID`7839`只是示例,真实的模板 ID 需要在短信控制台中申请
    # 签名
    sms_sign = "小猿取经"  # NOTE: 签名参数使用的是`签名内容`,而不是`签名ID`。这里的签名"腾讯云"只是示例,真实的签名需要在短信控制台中申请
    
    
    
    # views.py
        @action(methods=['GET'], detail=False)
        def send(self,request,*args,**kwargs):
            '''
            发送验证码接口
            :return:
            '''
            import re
            from luffyapi.libs.tx_sms import get_code,send_message
            from django.core.cache import cache
            from django.conf import settings
            telephone = request.query_params.get('telephone')
            if not re.match('^1[3-9][0-9]{9}', telephone):
                return APIResponse(code=0, msg='手机号不合法')
            code=get_code()
            result=send_message(telephone,code)
            # 验证码保存(保存到哪?)
            # sms_cache_%s
            cache.set(settings.PHONE_CACHE_KEY%telephone,code,180)
            if result:
                return APIResponse(code=1,msg='验证码发送成功')
            else:
                return APIResponse(code=0, msg='验证码发送失败')
    
  • 相关阅读:
    数据绑定表达式语法(Eval,Bind区别)
    使用博客园的第一件事 自定义主题
    sql2000 跨服务器复制表数据
    使用UpdatePanel 局部刷新出现中文乱码的解决方法!!
    MMC不能打开文件MSC文件
    sql 日期 、时间相关
    loaded AS2 swf call function in AS3 holder
    Rewrite the master page form action attribute in asp.net 2.0
    100万个不重复的8位的随机数
    flash 中实现斜切变型
  • 原文地址:https://www.cnblogs.com/pythonwl/p/13391134.html
Copyright © 2011-2022 走看看