def message(request): """ 发送短信验证码 :param request: :return: """ if request.method == 'POST': # 接收手机号码,生成随机码,保存在redis中, phone = request.POST.get('account', '') # 后台验证手机号码格式 phone_one = re.compile("^1[3-9]\d{9}$") # 进行匹配 result = re.search(phone_one, phone) if not result: return JsonResponse({"errr": 1, "errorore": "请求方式错误"}) else: # 验证成功,则生成随机数 random_code = "".join([str(random.randint(0, 9)) for _ in range(4)]) # 保存在redis中,设置过期时间 red = get_redis_connection("default") red.set(phone, random_code) red.expire(phone, 120) # 发送短信 # print(random_code) __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"测试验证\"}" % random_code print(send_sms(__business_id, phone, "注册验证", "SMS_2245271", params)) return JsonResponse({"errr": 0}) else: return JsonResponse({"errr": 1, "errorore": "请求方式错误"})
def post(self, request): # 接收参数 phone = request.POST.get('phone', '') # 判断电话号码是否符合格式 result = re.search('^1[3-9]\d{9}$', phone) if result is None: return JsonResponse({'error': 1, 'errmsg': '电话格式错误'}) # 生成验证码 num = ''.join([str(random.randint(0, 9)) for v in range(4)]) print(num) r = get_redis_connection() # 保存验证码 r.set(phone, num) r.expire(phone, 60) # 获取手机号的发送次数 key_times = '{}_times'.format(phone) now_times = r.get(key_times) if now_times is None or now_times < 5: r.incr(key_times) r.expire(key_times, 3600) else: return JsonResponse({'error': 1, 'errmsg': '发送次数过多'}) # 导入第三方 __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"打酱油的\"}" % num rs = send_sms(__business_id, phone, "注册验证", "SMS_2245271", params) print(rs.decode('utf-8')) return JsonResponse({'error': 0})
def post(self, request): # 接收数据 phone = request.POST.get("phone", '') rs = re.search('^1[3-9]\d{9}$', phone) if rs is None: return JsonResponse({'error': 1, 'errorMsg': '手机号码格式错误!'}) # 处理数据 """ 1. 生成随机验证码 2. 保存发送的验证码用于注册的表单验证 3. 接入运营商 """ random_code = "".join([str(random.randint(0, 9)) for _ in range(6)]) print("=========随机验证码为:{}============".format(random_code)) # 接入运营商 # 保存发送的验证码到redis # 获取连接 r = get_redis_connection() # 保存手机号码对应的验证码 r.set(phone, random_code) # 设置过期时间 r.expire(phone, 60) # 保存手机号码发送的次数 key_times = "{}_times".format(phone) now_times = r.get(key_times) # 从redis获取的二进制,需要转换 if now_times is None or int(now_times) < 5: r.incr(key_times) # 设置一个过期时间 r.expire(key_times, 360) else: # 返回并告知用户发送次数过多 return JsonResponse({'error': 1, "errorMsg": "验证码发送次数过多"}) # >> > 3. # 接入运营商 __business_id = uuid.uuid1() params = "{\"code\":\"%s\"}" % random_code print(params) rs = send_sms(__business_id, phone, "唐红艳", "SMS_206538704", params) # rs = send_sms(__business_id, 手机号码, "签名名称", "模板code", 传入参数) print(rs.decode('utf-8')) # 合成响应 return JsonResponse({'error': 0})
def post(self, request): # 1.接收参数 phone = request.POST.get('phone') rs = re.search('^1[3-9]\d{9}$', phone) # 判断参数合法性 if rs is None: return JsonResponse({'error': 1, 'errmsg': '电话号码格式错误'}) # 2处理数据 # 模拟,最后接入运营商 """1.生成随机验证码 2.。。。。 3接入运营商 """ # 1.生成随机验证码 random_code = ''.join([str(random.randint(0, 9)) for _ in range(6)]) print('随机验证码为{}'.format(random_code)) # 2保存验证码到redis中 # 获取连接 r = get_redis_connection() # 保存手机号码对应的验证码 r.set(phone, random_code) r.expire(phone, 60) # 设置60秒后过期 # 首先获取当前手机号码的发送次数 key_times = "{}_times".format(phone) now_times = r.get(key_times) # 从redis获取的二进制,需要转换 # print(int(now_times)) if now_times is None or int(now_times) < 5: # 保存手机发送验证码的次数, 不能超过5次 r.incr(key_times) # 设置一个过期时间 r.expire(key_times, 3600) # 一个小时后再发送 else: # 返回,告知用户发送次数过多 return JsonResponse({"error": 1, "errmsg": "发送次数过多"}) # 3 接入运营商 __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"!!!!\"}" % random_code # print(params) rs = send_sms(__business_id, phone, "注册验证", "SMS_2245271", params) print(rs.decode('utf-8')) # 3. 合成响应 return JsonResponse({'error': 0})
def post(self, request): user_name = request.POST.get('user_name', '') # 验证数据的合法性 rs = re.search('^1[3-9]\d{9}$', user_name) if rs is None: return JsonResponse({'error': 1, 'errmsg': '电话号码格式错误!'}) # 生成随机验证码 random_code = "".join([str(random.randint(0, 9)) for _ in range(6)]) print("=============随机验证码为==={}==============".format(random_code)) # >>>2. 保存验证码到redis中 # 获取连接 r = get_redis_connection() # 保存手机号码对应的验证码 r.set(user_name, random_code) r.expire(user_name, 60) # 设置60秒后过期 # 首先获取当前手机号码的发送次数 key_times = "{}_times".format(user_name) now_times = r.get(key_times) # 从redis获取的二进制,需要转换 # print(int(now_times)) if now_times is None or int(now_times) < 5: # 保存手机发送验证码的次数, 不能超过5次 r.incr(key_times) # 设置一个过期时间 r.expire(key_times, 3600) # 一个小时后再发送 else: # 返回,告知用户发送次数过多 return JsonResponse({"error": 1, "errmsg": "发送次数过多"}) # >>>3. 接入运营商 __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"你好---阿斌\"}" % random_code # print(params) rs = send_sms(__business_id, user_name, "注册验证", "SMS_2245271", params) print(rs.decode('utf-8')) # 3. 合成响应 return JsonResponse({'error': 0})
def post(self, request): # 接收到手机号码 user_phone = request.POST.get("user_phone", "") # 后端验证手机号码格式是否正确 # 创建正则对象 phone_re = re.compile("^1[3-9]\d{9}$") # 匹配传入的手机号码 rs = re.search(phone_re, user_phone) if rs is None: # 手机号码格式错误 return JsonResponse({"error": 1, "errmsg": "手机号码不正确"}) # 生成随机码 随机数字组成 random_code = "".join([str(random.randint(0, 9)) for _ in range(4)]) # 保存随机码到redis中 # 使用redis, 获取redis连接 r = get_redis_connection("default") # 直接开始操作 r.set(user_phone, random_code) # 设置过期时间 r.expire(user_phone, 120) # 发送短信 print(random_code) key_times = "{}_time".format(user_phone) now_times = r.get(key_times) if now_times is None or int(now_times) < 50: r.incr(key_times) #将信息保存1小时,5次请求之后就起到阻隔作用 r.expire(key_times, 3600) else: return JsonResponse({"error": 1, "errmsg": "次数过多"}) # 使用阿里发生短信 __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"天气不错\"}" % random_code print( send_sms(__business_id, user_phone, "注册验证", "SMS_2245271", params)) return JsonResponse({"error": 0})
def post(self, request): # 接受参数 phone = request.POST.get('phone', '') rs = re.search('^1[3-9]\d{9}$', phone) # 判断参数合法性 如果合法返回一个对象不合法返回None if rs is None: return JsonResponse({'error': 1, 'errmsg': '手机号码格式不正确'}) # # 操作数据 # # 生成随机验证码进行模拟验证 random_code = "".join([str(random.randint(0, 9)) for _ in range(6)]) # print("随机验证码为{}".format(random_code)) # # 保存验证码到redis中 # r = get_redis_connection() # # 保存手机号对应的验证码 # r.set(phone, random_code) # # 设置10分钟后过期 # r.expire(phone, 600) # # 获取手机号发送验证码的次数 # code_times = "{}_times".format(phone) # now_time = r.get(code_times) # if now_time is None or now_time < 5: # # 发送验证码次数不存在或小于5 # r.incr(code_times) # # 设置10分钟后过期 # r.expire(code_times, 600) # else: # # 返回错误 告知用户验证码发送次数过多 # return JsonResponse({"error": 1, "errmsg": "验证码发送次数过多"}) __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\" 我主良缘婚介所 \"}" % random_code # print(params) rs = send_sms(__business_id, phone, "注册验证", "SMS_2245271", params) print(rs.decode('utf-8')) # 合成响应 return JsonResponse({'error': 0})
def post(self, request): #1.接受参数 tel = request.POST.get('tel', '') # 匹配不到位none 匹配到是一个对象 rs = re.search('^1[3-9]\d{9}$', tel) if rs is None: return JsonResponse({'error': 1, 'errmsg': '电话号码格式错误'}) #2.处理数据 #模拟,后再接入运营商 """ 1.生成随机的验证码 2.保存验证码道redis 3.接入运营商 """ #1.生成随机验证码 #列表推倒式是个列表 # [str(random.randint(0,9)for _ in range(6))] #拼接字符串 random_code = "".join([str(random.randint(0, 9)) for _ in range(6)]) print('**************随机验证码为****{}********************'.format( random_code)) #2.保存验证码到redis中 #获取连接 r = get_redis_connection() r.set(tel, random_code) #保存手机发送验证码次数不超过5次 #受限获取当前手机号码发送的次数 r.expire(tel, 60) # 设置60秒后过期 # 首先获取当前手机号码的发送次数 key_times = "{}_times".format(tel) now_times = r.get(key_times) # 从redis获取的二进制,需要转换 # print(int(now_times)) if now_times is None or int(now_times) < 5: # 保存手机发送验证码的次数, 不能超过5次 r.incr(key_times) # 设置一个过期时间 r.expire(key_times, 3600) # 一个小时后再发送 else: # 返回,告知用户发送次数过多 return JsonResponse({"error": 1, "errmsg": "发送次数过多"}) #接入运营商 # __business_id = uuid.uuid1() # params = "{\"code\":\"%s\",\"product\":\"景一机车服店\"}"% random_code # print(send_sms(__business_id,tel, "注册验证", "SMS_2245271", params)) # print(rs.decode('utf-8')) # >>>3. 接入运营商 # __business_id = uuid.uuid1() # params = "{\"code\":\"%s\",\"product\":\"景一机车服店\"}" % random_code # # print(params) # rs = send_sms(__business_id, tel, "注册验证", "SMS_2245271", params) # 接入运营商 __business_id = uuid.uuid1() params = "{\"code\":\"%s\",\"product\":\"湖南铁赖瓜子店\"}" % random_code print(send_sms(__business_id, tel, "注册验证", "SMS_2245271", params)) # print(rs.decode('utf-8')) #3.合成响应 return JsonResponse({'error': 0})