Exemplo n.º 1
0
def send_validate_code(request):
    """发送验证码"""
    result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'}
    try:
        if request.method == 'POST' and request.is_ajax():
            # 验证电话号码
            phone = request.POST.get('phone', '')
            phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$')
            is_phone = phone_re.match(phone)
            if is_phone:
                #  判断这个用户存在与否
                is_phone_exist = User.objects.filter(phone=str(phone)).first()
                if is_phone_exist:
                    # # 避免多次发送短信
                    # request.session.set_expiry(180)
                    # phone_session = request.session.get('account_safety', '')
                    # if phone_session:
                    #     result = {
                    #         'status': 0,
                    #         'msg': u'验证码已经发送,请注意查收'
                    #     }
                    #     return JsonResponse(result)
                    # 发送验证码
                    sms_msg = make_sms()
                    c = CaptchaStore()
                    # 把验证码存入session
                    request.session['account_safety'] = sms_msg[1]
                    # 存库
                    c.response = sms_msg[1]
                    c.challenge = phone
                    c.save()
                    result = {'status': 1, 'msg': '验证码已经发送,请注意查收'}
                    # 测试 可不发短信 去CaptchaStore中查看验证码
                    if not settings.DEBUG:
                        send_sms([phone], sms_msg[0])
                        result = {
                            'status': 1,
                            'key': c.hashkey,
                        }
                        return JsonResponse(result)
                else:
                    # result = {
                    #     'status': 0,
                    #     'msg': u'这个电话没有注册,请先注册'
                    # }
                    # return JsonResponse(result)
                    raise Exception('这个电话没有注册,请先注册')
            else:
                result = {'status': 0, 'msg': '请输入正确的电话号码'}
                return JsonResponse(result)
        else:
            raise Exception("请求异常")
    except Exception, e:
        log.exception("send_validate_code raise, Error:%s" % e)
        result = {'status': 0, 'msg': str(e)}
Exemplo n.º 2
0
def send_validate_code_new(request):
    """发送验证码"""
    result = {'status': 0, 'msg': '网络异常,请稍后刷新重试'}
    try:
        if request.method == 'POST' and request.is_ajax():
            # 验证电话号码
            phone = request.POST.get('phone', '')
            phone_re = re.compile('^0\d{2,3}\d{7,8}$|^1[358]\d{9}$|^147\d{8}$')
            is_phone = phone_re.match(phone)
            if is_phone:
                # 发送验证码
                sms_msg = make_sms()
                c = CaptchaStore()
                # 把验证码存入session
                request.session['account_safety'] = sms_msg[1]
                # 存库
                c.response = sms_msg[1]
                c.challenge = phone
                c.save()
                result = {'status': 1, 'msg': '验证码已经发送,请注意查收'}
                # 测试 可不发短信 去CaptchaStore中查看验证码
                if not settings.DEBUG:
                    send_sms([phone], sms_msg[0])
                    result = {
                        'status': 1,
                        'key': c.hashkey,
                    }
                    return JsonResponse(result)
            else:
                result = {'status': 0, 'msg': '请输入正确的电话号码'}
                return JsonResponse(result)
        else:
            raise Exception("请求异常")
    except Exception, e:
        log.exception("send_validate_code_new raise, Error:%s" % e)
        result = {'status': 0, 'msg': str(e)}