09-Flask之短信验证

10 篇文章 0 订阅

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

  • 参考

    腾讯云
    腾讯云短信: 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条免费短信,如果超过即本示例发送短信失败!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值