示例#1
0
    def get(self, request):
        phone = request.GET.get('phone')
        if phone:
            mobile_pat = re.compile('^(13\d|14[5|7]|15\d|166|17\d|18\d)\d{8}$')
            res = re.search(mobile_pat, phone)
            if res:
                had_register = UserKeyProfile.objects.filter(phone=phone)
                if had_register:
                    msg = '手机号已被注册'
                    result = {"status": "402", "data": {"msg": msg}}
                    return HttpResponse(json.dumps(result, ensure_ascii=False),
                                        content_type="application/json,charset=utf-8")
                else:
                    had_send = Code.objects.filter(phone=phone).last()
                    if had_send:
                        if had_send.add_time.replace(tzinfo=None) > (datetime.datetime.now()-datetime.timedelta(minutes=1)):
                            msg = "距离上次发送验证码不足1分钟!"
                            result = {"status": "403", "data": {"msg": msg}}
                            return HttpResponse(json.dumps(result, ensure_ascii=False),
                                                content_type="application/json,charset=utf-8")
                        else:
                            code = Code()
                            code.phone = phone
                            c = random.randint(1000, 9999)
                            code.code = str(c)
                            code.end_time = datetime.datetime.now() + datetime.timedelta(minutes=20)
                            code.save()

                            # 调用发送模块
                            code = Code.objects.filter(phone=phone).last().code
                            yunpian = YunPian(settings.APIKEY)
                            sms_status = yunpian.send_sms(code=code, mobile=phone)
                            msg = sms_status
                            return HttpResponse(msg)
                    else:
                        code = Code()
                        code.phone = phone
                        c = random.randint(1000, 9999)
                        code.code = str(c)
                        code.end_time = datetime.datetime.now() + datetime.timedelta(minutes=20)
                        code.save()

                        # 调用发送模块
                        code = Code.objects.filter(phone=phone).last().code
                        yunpian = YunPian(settings.APIKEY)
                        sms_status = yunpian.send_sms(code=code, mobile=phone)
                        msg = sms_status
                        return HttpResponse(msg)
            else:
                msg = "手机号不合法"
                result = {"status": "403", "data": {"msg": msg}}
                return HttpResponse(json.dumps(result, ensure_ascii=False),
                                    content_type="application/json,charset=utf-8")
        else:
            msg = "手机号为空"
            result = {"status": "404", "data": {"msg": msg}}
            return HttpResponse(json.dumps(result, ensure_ascii=False),
                                content_type="application/json,charset=utf-8")
示例#2
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]

        yun_pian = YunPian()
        code = self.generate_code()
        yun_pian.send_sms(code, mobile=mobile)

        verify_code = VerifyCode(code=code, mobile=mobile)
        verify_code.save()
        return Response({"code": code}, status=status.HTTP_201_CREATED)
示例#3
0
 def post(self, request):
     mobile = request.POST.get('mobile', '')
     send_type = request.POST.get('send_type', 'register')
     if mobile:
         # 验证是否为有效手机号
         mobile_pat = re.compile('^(13\d|14[5|7]|15\d|166|17\d|18\d)\d{8}$')
         res = re.search(mobile_pat, mobile)
         if res:
             # 生成手机验证码
             code = VerifyCode()
             code.mobile = mobile
             code.send_type = send_type
             c = random.randint(1000, 9999)
             code.code = str(c)
             code.save()
             code = VerifyCode.objects.filter(mobile=mobile).last().code
             yunpian = YunPian(APIKEY)
             sms_status = yunpian.send_sms(code=code, mobile=mobile)
             msg = sms_status.msg
             return HttpResponse(msg)
         else:
             msg = '请输入有效手机号码!'
             return HttpResponse(msg)
     else:
         msg = '手机号不能为空!'
         return HttpResponse(msg)
示例#4
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        #有效性验证失败会直接抛异常
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]

        yun_pian = YunPian(APIKEY)

        #生成随机验证码
        code = self.generate_code()

        #发送验证码
        sms_status = yun_pian.send_sms(code=code,mobile=mobile)

        #判断是否发送成功,成功返回0
        if sms_status["code"] != 0:
            return Response({
                "mobile":sms_status["msg"]
            },status=status.HTTP_400_BAD_REQUEST)

        else:
            #保存验证码
            code_record = Verifycode(code=code,mobile=mobile)
            code_record.save()
            return Response({
                "mobile":mobile
            },status=status.HTTP_201_CREATED)
示例#5
0
    def create(self, request, *args, **kwargs):
        # 获取serializer
        serializer = self.get_serializer(data=request.data)
        # 验证serializer的数据
        serializer.is_valid(raise_exception=True)

        # 验证通过的数据保存在validated_data字典中
        mobile = serializer.validated_data['mobile']

        # 获得验证码
        code = self.generate_code()

        # 初始化验证码发送工具
        yunpian = YunPian(APIKEY)

        # 发送验证码
        sms_re = yunpian.send_sms(code=code, mobile=mobile)

        # 验证码发送失败
        if sms_re['code'] != 0:
            return Response({'mobile': sms_re['msg']},
                            status=status.HTTP_400_BAD_REQUEST
                            )  # Create失败返回400(RESTFUL api的标准)
        # 短信发送成功(返回的字典中code=0)
        else:
            vcode = VerifyCode(code=code, mobile=mobile)
            vcode.save()
            return Response({
                'mobile': mobile
            }, status=status.HTTP_201_CREATED)  # Create成功返回201(RESTFUL api的标准)
示例#6
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]

        yun_pian = YunPian(APIKEY)
        code = self.generate_code()

        sms_dic = yun_pian.send_sms(code=code, mobile=mobile)
        print(sms_dic)

        if sms_dic["code"] != 0:
            return Response(
                {
                    "msg": sms_dic["msg"],
                    "data": {
                        "mobile": mobile
                    },
                    "code": 400
                },
                status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()
            return Response(
                {
                    "msg": "验证码发送成功",
                    "data": {
                        "mobile": mobile
                    },
                    "code": 200
                },
                status=status.HTTP_200_OK)
示例#7
0
    def create(self, request, *args, **kwargs):
        """
         重写create方法  用户登陆生成
        :param request:
        :param args:
        :param kwargs:
        :return:
        """
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]  # 取出手机号
        yunpan = YunPian(APIKEY)

        sms_status = yunpan.send_sms(
            code=self.generic_code(),
            mobile=mobile)  # 发送手机短信 返回的状态吗 后面需要对状态吗进行判断

        if sms_status['code'] != 0:
            return Response({"mobile": sms_status['msg']},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=self.generic_code(), mobile=mobile)
            code_record.save()  # 保存数据库
            return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#8
0
    def create(self, request, *args, **kwargs):
        # 参数验证
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        headers = self.get_success_headers(serializer.data)

        # 发验证码
        mobile = serializer.validated_data.get('mobile')
        yun_pian = YunPian()
        code = self.generate_code()
        sms_status, msg = yun_pian.send_sms(code, mobile)

        # 返回响应
        if sms_status:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()
            return Response({
                'mobile': mobile,
            },
                            status=status.HTTP_201_CREATED,
                            headers=headers)
        else:
            return Response({
                'mobile': msg,
            },
                            status=status.HTTP_400_BAD_REQUEST,
                            headers=headers)
示例#9
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(
            raise_exception=True
        )  #raise_exception设置为True,如果此处判断无效,会直接抛异常(返回400),不会进入后面的部分

        mobile = serializer.validated_data[
            "mobile"]  #获取serializer验证数据中的mobile内容

        yun_pian = YunPian(APIKEY)

        code = self.generate_code()
        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        if sms_status["code"] != 0:
            return Response(
                {"mobile": sms_status["msg"]},
                status=status.HTTP_400_BAD_REQUEST)  #如果code不等于0,则返回400
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()  #如果发送成功,将code和mobile保存到VerfyCode数据库中
            return Response({"mobile": mobile},
                            status=status.HTTP_201_CREATED)  #201表示请求成功

        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data,
                        status=status.HTTP_201_CREATED,
                        headers=headers)
示例#10
0
文件: views.py 项目: Mrk2239/KProject
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        # 获取手机号码
        mobile = serializer.validated_data['mobile']
        # 发送短信验证码
        yun_pian = YunPian(APIKEY) # 创建实例
        code = yun_pian.generate_code()
        sms_status = yun_pian.send_sms(code=code,mobile=mobile)

        # 云片 状态sms_status为0时发送成功
        # 此处判定短信是否发送成功!,并给前端返回相应的状态码

        if sms_status['code'] !=0:
            return Response({
                'mobile':sms_status['msg']
            },status=status.HTTP_400_BAD_REQUEST)

        else:
            # 验证码发送成功后就保存VerifyCode对象到数据库,注意此处应该发送成功后保存
            # 保存到的数据用于接下来的注册过程中对比认证
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()

            # 给前端返回数据和状态码
            return Response({
                "mobile": mobile
            }, status=status.HTTP_201_CREATED)
示例#11
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data['mobile']

        yun_pian = YunPian(APIKEY)
        #yun_pian.send_sms(code=self.generate_code(), mobile)
        code = self.generate_code()

        sms_status = yun_pian.send_sms(code=code, mobile=mobile )

        if sms_status['code'] != 0:
            return Response({
                'mobile':sms_status['msg']
            }, status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()
            return Response(
                {'mobile':mobile}
                , status=status.HTTP_201_CREATED)

        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
示例#12
0
 def post(self, request):
     mobile = request.POST.get('mobile', None)
     password = request.POST.get('password', None)
     if mobile:
         # 验证是否为有效手机号
         mobile_pat = re.compile('^(13\d|14[5|7]|15\d|166|17[3|6|7]|18\d)\d{8}$')
         res = re.search(mobile_pat, mobile)
         if res:
             if password:
                 # 生成手机验证码
                 c = random.randint(100000, 999999)
                 code = VerifyCode.objects.create(code=str(c), mobile=mobile)
                 code.save()
                 code = VerifyCode.objects.filter(code=str(c)).first()
                 yunpian = YunPian(APIKEY)
                 sms_status = yunpian.send_sms(code=code, mobile=mobile)
                 reg = UserProfile.objects.create(username=mobile, mobile=mobile, password=(make_password(password)))
                 reg.save()
                 msg = '发送成功,请查收!'
                 return HttpResponse(msg)
             else:
                 msg = '请输入账户密码!'
                 return HttpResponse(msg)
         else:
             msg = '请输入有效手机号码!'
             return HttpResponse(msg)
     else:
         msg = '手机号不能为空!'
         return HttpResponse(msg)
示例#13
0
文件: views.py 项目: laoyouqing/video
    def post(self, request):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        # 生成短信验证码
        sms_code = "%06d" % random.randint(0, 999999)
        code={'code':sms_code}
        code=json.dumps(code)
        mobile = serializer.validated_data["mobile"]

        # 发送短信验证码
        yun_pian = YunPian()
        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        if sms_status["result"] == 'success':
            # 保存短信验证码与发送记录
            redis_conn = get_redis_connection('verify_codes')
            pl = redis_conn.pipeline()
            pl.setex("sms_%s" % mobile, 300, sms_code)
            pl.setex("send_flag_%s" % mobile, 60, 1)
            pl.execute()
            return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
        else:
            # 发送失败了
            return Response({"mobile": sms_status["msg"]}, status=status.HTTP_400_BAD_REQUEST)
示例#14
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        # 发送验证码
        code = self.__get_random_code()
        mobile = serializer.validated_data['mobile']
        yun_pian = YunPian('b1d45af7f60a69881ec49ac396b93a7d')
        response = yun_pian.send_sms(code=code, mobile=mobile)

        if response.get('code', 'fail') == 0:
            # 发送成功
            # 保存到数据库
            verify_code = VerifyCode(code=code, mobile=mobile)
            verify_code.save()

            # api规范返回状态码
            return Response(
                {
                    'mobile': mobile,
                    'msg': response.get('msg', '发送成功')
                }, status.HTTP_201_CREATED)

        else:
            # 发送失败, 返回错误信息
            return Response(
                {
                    'mobile': mobile,
                    'msg': response.get('msg', '发送出错')
                }, status.HTTP_400_BAD_REQUEST)
示例#15
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]

        yun_pian = YunPian(APIKEY)

        code = self.generate_code()

        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        # if sms_status["code"] != 0:
        #     return Response({
        #         "mobile":sms_status["msg"]
        #     }, status=status.HTTP_400_BAD_REQUEST)
        # else:
        #     code_record = verifyCode(code=code, mobile=mobile)
        #     code_record.save()
        #     return Response({
        #         "mobile":mobile
        #     }, status=status.HTTP_201_CREATED)

        #模拟
        code_record = verifyCode(code=code, mobile=mobile)
        code_record.save()
        return Response({'mobile': mobile}, status=status.HTTP_201_CREATED)
示例#16
0
    def create(self, request, *args, **kwargs):
        """
        重写CreateModelMixin下的create方法
        """
        print(request.data)
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]

        yun_pian = YunPian(APIKEY)

        code = self.generate_code()

        sms_status = yun_pian.send_sms(code=code, mobile=mobile)
        if sms_status["code"] != 0:
            return Response({
                "mobile": sms_status["msg"]
            }, status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()
            return Response({
                "mobile": mobile
            }, status=status.HTTP_201_CREATED)
示例#17
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True) # status 400

        mobile = serializer.validated_data["mobile"]

        code = self.generate_code()

        yun_pian = YunPian(yunpian_apikey)
        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        if sms_status["code"] != 0:

            # 保存验证码
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()

            context = {
                "mobile": sms_status["msg"]
            }
            return Response(context, status=status.HTTP_400_BAD_REQUEST)
        else:
            context = {
                "mobile": mobile
            }
            return Response(context, status.HTTP_201_CREATED)

        self.perform_create(serializer)
        headers = self.get_success_headers(serializer.data)
        return Response(serializer.data, status=status.HTTP_201_CREATED, headers=headers)
示例#18
0
 def run(self, *args, **kwargs):
     yun_pian = YunPian(APIKEY)
     sms_status = yun_pian.send_sms(code=kwargs['code'],
                                    mobile=kwargs['mobile'])
     print('args={}, kwargs={}, sms_status={}'.format(
         args, kwargs, sms_status))
     print(kwargs['code'], kwargs['mobile'])
示例#19
0
    def create(self, request, *args, **kwargs):
        """
        创建smsCode 时 使用 yunpian
        1.
        :param request:
        :param args:
        :param kwargs:
        :return:
        """

        print("on create new sms code resp ")
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data['mobile']
        yun_pian = YunPian(APIKEY)

        code = self.generate_code()
        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        if sms_status['code'] != 0:
            print("bad request")
            return Response({'mobile': sms_status['msg']},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()
            return Response({'mobile': mobile}, status=status.HTTP_201_CREATED)
示例#20
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     mobile = serializer.validated_data['mobile']
     yun_pian = YunPian(YP_APIKEY)
     code = self.generate_code(4)
     re_msg = yun_pian.send_sms(code=code, mobile=mobile)
     if re_msg['code'] != 0:
         return Response({"mobile": re_msg['detail']},
                         status.HTTP_400_BAD_REQUEST)
     else:
         VerifyCode.objects.create(code=code, mobile=mobile)
         return Response({"mobile": mobile}, status.HTTP_201_CREATED)
示例#21
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     yun_pian = YunPian(settings.APIKEY)
     code = self.generate_code()
     sms_status = yun_pian.send_sms(
         code, mobile=serializer.validated_data["mobile"])
     if sms_status["code"] != 0:
         return Response(sms_status['msg'],
                         status=status.HTTP_400_BAD_REQUEST)
     else:
         VerifyCode(code=code,
                    mobile=serializer.validated_data["mobile"]).save()
         return Response(sms_status["msg"], status=status.HTTP_201_CREATED)
示例#22
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]
        yun_pian = YunPian(API_KEY)
        _code = self.generate_code()
        result = yun_pian.send_sms(_code, mobile)
        if result['code'] != 0:
            return Response({"mobile": result["msg"]},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            record_code = VerifyCode(code=_code, mobile=mobile)
            record_code.save()
            return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#23
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(
         raise_exception=True)  # raise_exception=True,如果出现异常,直接抛异常
     mobile = serializer.validated_data['mobile']
     yun_pian = YunPian(api_key=settings.APIKEY)
     code = self.generate_code()
     sms_status = yun_pian.send_sms(code, mobile)
     if sms_status != 0:
         return Response({'mobile': sms_status['msg']},
                         status=status.HTTP_400_BAD_REQUEST)
     else:
         code_record = VerifyCode(code=code, mobile=mobile)
         code_record.save()
         return Response({'mobile': mobile}, status=status.HTTP_201_CREATED)
示例#24
0
    def create(self, request, *args, **kwargs):

        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)
        mobile = serializer.validated_data['mobile']
        code = self.generate_code()
        yun_pian = YunPian(APIKEY)
        sms_status = yun_pian.send_sms(mobile=mobile, code=code)
        if sms_status['code'] != 0:
            return Response({"mobile": [sms_status['msg']]},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(mobile=mobile, code=code)
            code_record.save()
            return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#25
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(raise_exception=True)
     mobile = serializer.validated_data["mobile"]
     yun_pian = YunPian(API_KEY)
     code = self.generate_code()
     sms_status = yun_pian.send_sms(code=code, mobile=mobile)
     # example sms_status = {'code': 0, 'msg': 'hello'}
     if sms_status["code"] != 0:
         return Response({"mobile": sms_status["msg"]},
                         status=status.HTTP_400_BAD_REQUEST)
     else:
         code_record = VerifyCode(code=code, mobile=mobile)
         code_record.save()
         return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#26
0
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        uname = serializer.validated_data['uname']

        if re.match(REGEX_MOBILE, uname):
            #发送短信
            yunp_pian = YunPian(APIKEY)

            code = self.generate_code()

            sms_status = yunp_pian.send_sms(code, uname)
            # 判断是否发送成功
            if sms_status["code"] != 0:
                return Response({'uname': sms_status["msg"]},
                                status=status.HTTP_400_BAD_REQUEST)
            else:
                code_record = EmailVerifyRecord(code=code,
                                                email=uname,
                                                send_type="注册")
                code_record.save()

                return Response({'uname': uname},
                                status=status.HTTP_201_CREATED)

        if re.match(REGEX_EMAIL, uname):
            #发送邮件
            code = self.generate_code()
            email_title = "蓝牙注册验证码"
            email_body = "以下为您的验证码: {}".format(code)
            send_status = send_mail(email_title, email_body, EMAIL_FROM,
                                    [uname])
            if send_status:
                pass
                # 判断是否发送成功
                if send_status["code"] == 0:
                    return Response({'uname': send_status["msg"]},
                                    status=status.HTTP_400_BAD_REQUEST)
                else:
                    email_record = EmailVerifyRecord()
                    email_record.code = code
                    email_record.email = uname
                    email_record.send_type = "注册"
                    email_record.save()

                    return Response({'uname': uname},
                                    status=status.HTTP_201_CREATED)
示例#27
0
文件: views.py 项目: wgykang/Shopping
 def create(self, request, *args, **kwargs):  # 重写CreateModelMixin的create方法
     serializer = self.get_serializer(data=request.data)
     # 数据不合理就会抛异常,前端返回400异常
     serializer.is_valid(raise_exception=True)
     mobile = serializer.validated_data[
         'mobile']  # serializer.validated_data获得serializer中的context(字典)
     yun_pian = YunPian(APIKEY)
     code = self.get_code()
     sms_status = yun_pian.send_sms(code=code, mobile=mobile)
     if sms_status["code"] != 0:
         return Response({"mobile": sms_status["msg"]},
                         status=status.HTTP_400_BAD_REQUEST)
     else:
         code_record = VerifyCode(code=code, mobile=mobile)
         code_record.save()
         return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#28
0
    def send_code_datail(self, send_type='register'):
        yun_pian = YunPian(APIKEY)
        code = self.generate_code()
        sms_status = yun_pian.send_sms(code=code, phone=self.phone)

        print(sms_status)
        if sms_status["code"] != 0:
            return Response({"phone": sms_status['msg']},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = PhoneVerifyRecord(code=code,
                                            phone=self.phone,
                                            code_type=send_type)
            code_record.save()
            return Response({'phone': self.phone},
                            status=status.HTTP_201_CREATED)
示例#29
0
文件: views.py 项目: pshyms/mxshop
    def create(self, request, *args, **kwargs):
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid(raise_exception=True)

        mobile = serializer.validated_data["mobile"]
        yun_pian = YunPian(APIKEY)
        code = self.generate_code()
        sms_status = yun_pian.send_sms(code=code, mobile=mobile)

        # 云片网中定义0为返回成功,否则为失败;如果失败会返回一个msg变量
        if sms_status["code"] != 0:
            return Response({"mobile": sms_status["msg"]},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            code_record = VerifyCode(code=code, mobile=mobile)
            code_record.save()  # 验证码保存到数据库
            return Response({"mobile": mobile}, status=status.HTTP_201_CREATED)
示例#30
0
文件: views.py 项目: JamY/Shopping
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     serializer.is_valid(
         raise_exception=True
     )  #is_valid调用失败的话直接抛异常 is_valid()调用SmsSerializer的验证方法
     mobile = serializer.validated_data["mobile"]
     yun_pian = YunPian(APIKEY)
     code = self.generate_code()
     sms_status = yun_pian.send_sms(code=code, mobile=mobile)
     # sms_status 通过云片网可以查看返回的参数类型
     if sms_status["code"] != 0:  # 发送失败
         return Response({"mobile": sms_status["msg"]},
                         status=status.HTTP_400_BAD_REQUEST)
     else:  # 成功
         code_record = VerifyCode(code=code, mobile=mobile)
         code_record.save()  #保存数据库
         return Response({"mobile": mobile},
                         status=status.HTTP_201_CREATED)  # 创建成功的状态码