Beispiel #1
0
    def get(self, request, *args, **kwargs):
        """
        验证码类型为修改手机号
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        user = request.user

        try:
            code = generate_sms_verification_code()
            mobile = user.userprofile.mobile_phone
            SmsVerificationCode(user=user, code=code, type=self.__class__.__CODE_TYPE,data=mobile,
                                 expired_time=datetime.now()+CommonEmailData.SMS_VERIFICATION_CODE_EXPIRED_TIME).save()

            recipient = mobile
            send_content = u'您的验证码是:{code}。请不要把验证码泄露给其他人。'.format(code=code)

            (response_code, response_msg) = send_message(recipient, send_content)
            if response_code == '2':
                ret_status =http_status.HTTP_200_OK
            else:
                ret_status = http_status.HTTP_500_INTERNAL_SERVER_ERROR

            return JsonResponse(data={}, status=ret_status)

        except Exception as e:
            logging.exception(e)
            return JsonResponse(data={'msg': u'短信发送失败'}, status=http_status.HTTP_500_INTERNAL_SERVER_ERROR)
Beispiel #2
0
    def get(self, request, *args, **kwargs):
        """
        验证码类型为修改手机号
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        user = request.user
        data = request.GET

        try:
            code_type = int(request.GET.get('event'))
            if code_type not in get_choice_value_list(SmsVerificationCode.TYPE_CHOICES):
                return Response(status=http_status.HTTP_400_BAD_REQUEST)
            if code_type == 1:
                mobile = user.userprofile.mobile_phone
            elif code_type == 2:
                mobile = data['new_mobile']
                if UserProfile.objects.filter(mobile_phone=mobile).exclude(user=user).exists():
                    return JsonResponse(data={'msg': u'该手机号已经注册,不能绑定'}, status=http_status.HTTP_200_OK)
            else:
                raise ValueError
        except (ValueError, KeyError):
            return Response(status=http_status.HTTP_400_BAD_REQUEST)


        try:
            code = generate_sms_verification_code()
            SmsVerificationCode(user=user, code=code, type=code_type,data=mobile,
                                 expired_time=datetime.now()+CommonEmailData.SMS_VERIFICATION_CODE_EXPIRED_TIME).save()

            recipient = mobile
            send_content = u'您的验证码是:{code}。请不要把验证码泄露给其他人。'.format(code=code)

            (response_code, response_msg) = send_message(recipient, send_content)
            if response_code == '2':
                ret_status =http_status.HTTP_200_OK
            else:
                ret_status = http_status.HTTP_500_INTERNAL_SERVER_ERROR

            return JsonResponse(data={}, status=ret_status)

        except Exception as e:
            logging.exception(e)
            return JsonResponse(data={'msg': u'短信发送失败'}, status=http_status.HTTP_500_INTERNAL_SERVER_ERROR)
Beispiel #3
0
 def post(self, request):
     result = {}
     (check_sign_result, check_code, check_msg) = check_sign(request)
     if not check_sign_result:
         result['code'] = check_code
         result['msg'] = check_msg
         return Response(result)
     try:
         mobile = request.POST.get('mobile', '')
         if not local_mobile_phone_validator(mobile):
             msg = u'手机号码不合法。'
             result['code'] = 234
             result['msg'] = msg
         else:
             try:
                 userprofile = UserProfile.objects.get(mobile_phone=mobile)
                 msg = u'此号码已经被注册。'
                 result['code'] = 233
                 result['msg'] = msg
             except UserProfile.DoesNotExist:
                 new_captcha = random.randint(100000, 999999)
                 current_captcha = Captcha.objects.get_or_create(recipient=mobile)[0]
                 current_captcha.captcha = new_captcha
                 current_captcha.deadline_time = datetime.datetime.now() + datetime.timedelta(minutes=10)
                 current_captcha.save()
                 send_content = u'您的验证码是:%s。请不要把验证码泄露给其他人。' % str(new_captcha)
                 if mobile:
                     (response_code, response_msg) = send_message(mobile, send_content)
                     if response_code == '2':
                         result['code'] = 199
                         result['msg'] = u'发送成功'
                         result['validity_time'] = '600'
                     else:
                         result['code'] = 232
                         result['msg'] = u'发送失败'
                 '''
                 result['code'] = 199
                 result['msg'] = u'发送成功'
                 result['validity_time'] = '600'
                 '''
         return Response(result)
     except Exception, e:
         return Response({'msg': u'发送失败', 'code': 232})
Beispiel #4
0
def send_captcha(request):
    phone = request.GET.get('phone', '')
    if phone:
        recipient = phone
    else:
        result = {'result': False, 'msg': '请输入手机号'}
        return HttpResponse(json.dumps(result), content_type='application/json', status=200)
    new_captcha = random.randint(100000, 999999)
    current_captcha = Captcha.objects.get_or_create(recipient=recipient)[0]
    current_captcha.captcha = new_captcha
    current_captcha.save()
    send_content = u'您的验证码是:%s。请不要把验证码泄露给其他人。' % str(new_captcha)
    if phone:
        (response_code, response_msg) = send_message(recipient, send_content)
        if response_code == '2':
            result = {'result': True, 'msg': response_msg}
        else:
            result = {'result': False, 'msg': response_msg}
        result = {'result': True, 'msg': '验证码已发送'}
 
    return HttpResponse(json.dumps(result), content_type='application/json', status=200)
Beispiel #5
0
 def post(self, request):
     result = {}
     (check_sign_result, check_code, check_msg) = check_sign(request)
     if not check_sign_result:
         result['code'] = check_code
         result['msg'] = check_msg
         return Response(result)
     try:
         mobile = request.POST.get('mobile', '')
         if not local_mobile_phone_validator(mobile):
             msg = u'手机号码不合法。'
             result['code'] = 234
             result['msg'] = msg
             return Response(result)
         else:
             try:
                 userprofile = UserProfile.objects.get(mobile_phone=mobile)
                 new_captcha = random.randint(100000, 999999)
                 current_captcha = Captcha.objects.get_or_create(recipient=mobile)[0]
                 current_captcha.captcha = new_captcha
                 current_captcha.deadline_time = datetime.datetime.now() + datetime.timedelta(minutes=10)
                 current_captcha.save()
                 send_content = u'您的验证码是:%s。请不要把验证码泄露给其他人。' % str(new_captcha)
                 (response_code, response_msg) = send_message(mobile, send_content)
                 if response_code == '2':
                     result['code'] = 199
                     result['msg'] = u'状态正常,发送验证码到%s' % mobile
                 else:
                     result['code'] = 239
                     result['msg'] = u'发送失败'
             except UserProfile.DoesNotExist:
                 result['code'] = 240
                 result['msg'] = u'不存在使用这个手机号的用户'
         return Response(result)
     except Exception, e:
         return Response({'msg': str(e), 'errcode':1})