Exemplo n.º 1
0
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": "请求方式错误"})
Exemplo n.º 2
0
    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})
Exemplo n.º 3
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})
Exemplo n.º 4
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})
Exemplo n.º 5
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})
Exemplo n.º 6
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})
Exemplo n.º 7
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})
Exemplo n.º 8
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})