Python发送手机验证码流程
- 1、小程序端校验手机号格式
使用正则校验:
下面代码实现的是校验的是手机号必须是1开头的,然后第二位必须是3~9中间的某一个,然后剩下的九位必须是数字
这样其实就基本排除了大多数的错误情况,还有需求的可以自己设计
这个网上一搜就有很多
var reg = /^(1[3|4|5|6|7|8|9])\d{9}$/;
if (!reg.test(this.data.phone)) {
wx.showToast({
title: '手机号格式错误',
icon: 'error‘
})
}
注意发送到pyhon后端后仍然要校验一次
那里可以用rest_framework的serializers
-
2、生成随机验证码
- 2.1 一种算法网上搜生成随机验证码就有了
- 2.2 python库中自带的random函数
-
3、使用腾讯云的SDK发送验证码 (短信签名这个地方卡了我许久还被骗了20块钱。。。不要相信小网站)
- 3.1 申请腾讯云短信签名,以及模板,这里很麻烦,要先申请一个公众号,再以公众号去申请,当然如果你有企业的营业执照就可以直接申请;并且也可以用企业级小程序appid直接使用小程序云开发,里面都有封装好的
- 3.2 申请成功后事就完成一半了。然后到开发文档里面下载tencent的SDKpython文档,里面有源码
在这之前还要给你的环境装上腾讯云短信的库
pip3 install tencentcloud-sdk-python API文档里面有
然后把文档里面该填的id啥的都填上
-腾讯云SDKAppID
SecretId: (腾讯云服务器id)
SecretKey: (腾讯云服务器密匙)
短信模板ID
然后就可以发短信了。
- 4、发短信之后呢?因为验证码要倒计时所以,要存储到redis服务器
- 我们自己搭,可以到Linux系统里弄,但是我电脑三个东西带不动虚拟机了贼卡,就在windons下装的。
- redis相关命令
- ubuntu下:
- 下载:sudo apt-get install redis-server
- 启动: sudo /etc/init.d/redis-server start
- 重启:sudo /etc/init.d/redis-server restart
- windows下:
- 下载:直接百度到官网下载O,O安装到指定目录
- 启动:打开DOS窗口,到redis安装的目录里,输入redis-server.exe即可(注意:一关闭DOS窗口他就停止服务了)
按下Esc键,再Ctrl+C即可退出。
打开另外一个DOS窗口,进入到redis安装的目录,输入redis-cli.exe,如果成功就说明这个服务器没问题。(注意不能把以第一个窗口的服务端退出了)
- 部署:
- 这样贼麻烦,次次都要打开他才能用,所以把他部署到windonws服务里,让服务端自动运行。
输入命令:redis-server.exe --service-install redis.windows.conf
打开任务管理器找到服务,如果看到一个Redis了,就说明部署成功了。
最后附上我学习的教程链接: 教程
这些都是之前学习时候草草记录的,所以可能很多地方没讲清楚,望海涵