美文网首页
09-Flask之短信验证

09-Flask之短信验证

作者: EndEvent | 来源:发表于2018-10-17 21:22 被阅读362次

    腾讯云(短信验证、短信通知) 【需要备案】

    • 参考

      腾讯云
      腾讯云短信: https://cloud.tencent.com/product/sms
      参考文档: https://cloud.tencent.com/document/product/382/11672
      
    • 腾讯云 短信 SMS 申请

       https://cloud.tencent.com/product/sms
      
    • 创建应用

        准备好相关参数
        腾讯云短信每个月赠送100条短信,申请一个应用,获取appid,然后创建短信签名,之后创建正文模版
        
        应用 》 应用配置 》 appid
        应用 》 国内短信 》 短信内容配置 》  短信签名
        应用 》 国内短信 》 短信内容配置 》 短信正文(模板)
      
    • 安装

      pip install qcloudsms_py
      
    • 腾讯云短信 Python SDK

      https://github.com/qcloudsms/qcloudsms_py
      
    • 发送短信

      # 定义资源
      class SMSResource(Resource):
        def get(self):
            from qcloudsms_py import SmsSingleSender
            from qcloudsms_py.httpclient import HTTPError
      
            # SDK AppID是短信应用的唯一标识,调用短信API接口时需要提供该参数
            appid = 1400112809
            # App Key是用来校验短信发送请求合法性的密码,与SDK AppID对应,需要业务方高度保密
            appkey = '8d8b808cb9073023631d241951f49fb4'
            # 正文(模板id)
            template_id = 166915
            sms_sign = 'TPP短信验证'
      
            ssender = SmsSingleSender(appid, appkey)
            sms_type = 0
            # 短信模板: 短信验证码: {1},请于{2}分钟内填写。如非本人操作,请忽略本短信
            randomstr = random.randrange(1000,10000) # 验证码
            # 模板: 验证码  超时时间
            params = [randomstr, 3]  # 模板设置的两个参数
            # 需要发送的手机号码
            phone = 13800138000
            try:
                result = ssender.send_with_param(86, phone,
                                                 template_id, params, sign=sms_sign, extend="",
                                                 ext="")  # 签名参数未提供或者为空时,会使用默认签名发送短信
      
                # 验证码(后续验证从缓存中获取验证码)
                cache.set('smsid', randomstr,timeout=180)
                
                return {'msg': '短信发送成功'}
            except HTTPError as e:
                print(e)
            except Exception as e:
                print(e)
      
      
      # 添加资源
      api.add_resource(SMSResource, '/api/v1/sms/')
      
      # 测试
      127.0.0.1:5000/api/v1/sms/
      

      备注: 本站配置,每月只有100条免费短信,如果超过即本示例发送短信失败!!!

    相关文章

      网友评论

          本文标题:09-Flask之短信验证

          本文链接:https://www.haomeiwen.com/subject/lfhdzftx.html