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)
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)
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})
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)
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})