예제 #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(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)
예제 #3
0
 def create(self, request, *args, **kwargs):
     #得到序列化期
     serializer = self.get_serializer(data=request.data)
     #开始验证,会执行MSMSerializer的validate_mobile方法
     serializer.is_valid(raise_exception=True)
     #前面已经做了三个验证
     mobile = serializer.data["mobile"]
     code = self.generating()
     #集成云片网
     yun_pian = YunPian("4f70824dde066067241393c80c291ea6")
     sms_status = yun_pian.set_msg(mobile, code)
     #看云片的文档,返回0是发生成功,其他字段不用管
     if sms_status["code"] == 0:
         #保存到数据中(这个很重要)
         verifyCode = VerifyCode(code=code, mobile=mobile)
         #保存到数据库中
         verifyCode.save()
         #发送成功
         return Response({
             "mobile": mobile,
             "msg": sms_status["msg"]
         },
                         status=status.HTTP_201_CREATED)
     else:
         #发送失败
         return Response({
             "mobile": mobile,
             "msg": sms_status["msg"]
         },
                         status=status.HTTP_400_BAD_REQUEST)
예제 #4
0
파일: views.py 프로젝트: mkhappy/freshShop
    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的标准)
예제 #5
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)
예제 #6
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)
예제 #7
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)
예제 #8
0
파일: views.py 프로젝트: DingRizhi/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(code=code, mobile=mobile)
        if sms_status["code"] == 0:
            # 验证码发送成功
            VerifyCode(code=code, mobile=mobile).save()
            return Response(
                data={
                    "mobile":mobile,
                },
                status = status.HTTP_201_CREATED
            )
        else:
            # 验证码发送失败
            return Response(
                data={
                    "mobile":sms_status["msg"]
                },
                status = status.HTTP_400_BAD_REQUEST
            )
예제 #9
0
파일: views.py 프로젝트: wawj901124/MxShop
    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
파일: 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)
예제 #12
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)
예제 #13
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)
예제 #14
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.random_code()
        code_type = serializer.validated_data['code_type']
        if code_type == 'register':
            send_yun = YunPian(API_KEY)
            re_dict = send_yun.send_code(code=code, mobile=mobile)
        else:
            send_yun = ResetYunPian(API_KEY)
            re_dict = send_yun.send_code(code=code, mobile=mobile)

        if not re_dict['code'] == 0:
            return Response({"mobile": re_dict['msg']},
                            status=status.HTTP_400_BAD_REQUEST)
        else:
            verify_code = VerifyCode(mobile=mobile,
                                     code=code,
                                     code_type=code_type)
            verify_code.save()
            headers = self.get_success_headers(serializer.data)
            return Response({"mobile": mobile},
                            status=status.HTTP_201_CREATED,
                            headers=headers)
예제 #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):
        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)
예제 #17
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)
예제 #18
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)
예제 #19
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)
예제 #20
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)
예제 #21
0
파일: tasks.py 프로젝트: laosuaidami/MxShop
 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'])
예제 #22
0
 def create(self, request, *args, **kwargs):
     serializer = self.get_serializer(data=request.data)
     # print(serializer)
     # print(SmsCodeViewSet.serializer_class)
     # 校验序列化器的 validate_mobile 方法
     serializer.is_valid(raise_exception=True)
     # 取出 mobile
     mobile = serializer.data['mobile']
     code = self.random_code()
     yp = YunPian()
     # sms_status  {'code': 0, 'msg': '发送成功', 'count': 1, 'fee': 0.05, 'unit': 'RMB', 'mobile': '17635700440', 'sid': 26748214808}
     sms_status = yp.send_msg('17635700440', code)
     print(sms_status)
     if sms_status['code'] == 0:
         VerifyCode(mobile=mobile, code=code).save()
         return Response({
             'mobile': mobile,
             'msg': sms_status['msg'],
         },
                         status=status.HTTP_201_CREATED)
     else:
         return Response({
             'mobile': mobile,
             'msg': sms_status['msg'],
         },
                         status=status.HTTP_400_BAD_REQUEST)
예제 #23
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)
예제 #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']
     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)
예제 #25
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)
예제 #26
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)
예제 #27
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)
예제 #28
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)
예제 #29
0
파일: views.py 프로젝트: wxrapha/VueShop
    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.sned_sms(code=code, mobile=mobile)

        if sms_status['code'] != 0:
            return Response({'mobile': sms_status['msg']},
                            status=status.HTTP_400_BAD_REQUEST)
예제 #30
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)