Example #1
0
    def __init__(self,
                 number,
                 exp_mo,
                 exp_yr,
                 first_name=None,
                 last_name=None,
                 full_name=None,
                 cvv=None,
                 cc_type=None,
                 strict=False):
        """
        sets credit card info
        """
        if full_name:
            self.full_name = full_name
        else:
            self.first_name = first_name
            self.last_name = last_name
            self.full_name = "{0.first_name} {0.last_name}".format(self)

        #everything else
        self.number = number
        self.exp_month = exp_mo
        self.exp_year = exp_yr
        self.exp_date = get_card_exp(self.exp_month, self.exp_year)
        self.card_type = get_card_type(self.number)

        self.verification_value = cvv if cvv else None

        self.strict = strict
Example #2
0
    def clean(self):
        """Validates the form"""
        super(CreditCardForm, self).clean()

        cleaned_data = self.cleaned_data

        number = cleaned_data.get('number')
        security_code = cleaned_data.get('security_code')
        exp_month = cleaned_data.get('exp_month')
        exp_year = cleaned_data.get('exp_year')

        if not self.is_valid():
            raise forms.ValidationError("There was a problem processing your payment")

        cc_type = get_card_type(number)
        if not cc_type or not is_valid_cc(number):
            raise forms.ValidationError("Invalid credit card number")

        if not is_valid_cvv(security_code, cc_type):
            raise forms.ValidationError("Invalid security code")

        if not is_valid_exp(exp_month, exp_year):
            raise forms.ValidationError("Invalid expiracy date")

        return cleaned_data
Example #3
0
File: cc.py Project: dhan88/Paython
    def validate(self):
        """
        validates expiration date & card number using util functions
        """
        if not is_valid_cc(self.number):
            raise DataValidationError('The credit card number provided does not pass luhn validation')

        if not is_valid_exp(self.exp_month, self.exp_year):
            raise DataValidationError('The credit card expiration provided is not in the future')

        if self.strict:
            if not is_valid_cvv(self.verification_value, get_card_type(self.number)):
                raise DataValidationError('The credit card cvv is not valid')

        return True
Example #4
0
    def __init__(self, number, exp_mo, exp_yr, first_name=None, last_name=None, full_name=None, cvv=None, cc_type=None, strict=False):
        """
        sets credit card info
        """
        if full_name:
            self.full_name = full_name
        else:
            self.first_name = first_name
            self.last_name = last_name
            self.full_name = "{0.first_name} {0.last_name}".format(self)

        #everything else
        self.number = number
        self.exp_month = exp_mo
        self.exp_year = exp_yr
        self.exp_date = get_card_exp(self.exp_month, self.exp_year)
        self.card_type = get_card_type(self.number)

        self.verification_value = cvv if cvv else None

        self.strict = strict