Sobes.tech
Middle+

Կատարեք քարտի վավերացման դասի բացթողած մեթոդները և փորձարկեք դրանք: Ամրագրման ժամկետի ստուգման մեթոդը արդեն սխալներից զուրկ է: Կեսական լուծման համար բավարար է իրականացնել 2 բացթողած մեթոդ, որոնք ստուգում են քարտի հատկությունները։

sobes.tech AI

Պատասխան AI-ից

Կարտի վավերացման դասի բացակա մեթոդները կարող եք օրինակ ավելացնել, օրինակ, քարտի համարի ճիշտությունը ստուգելու և CVV ստուգելու։

Python-ում օրինակ:

class CardValidator:
    def __init__(self, number, expiry_date, cvv):
        self.number = number
        self.expiry_date = expiry_date
        self.cvv = cvv

    def validate_expiry_date(self):
        # Իրականացված
        pass

    def validate_number(self):
        # Քարտի համարի ստուգում Լունի ալգորիթմով
        def luhn_checksum(card_number):
            def digits_of(n):
                return [int(d) for d in str(n)]
            digits = digits_of(card_number)
            odd_digits = digits[-1::-2]
            even_digits = digits[-2::-2]
            checksum = sum(odd_digits)
            for d in even_digits:
                checksum += sum(digits_of(d*2))
            return checksum % 10

        return luhn_checksum(self.number) == 0

    def validate_cvv(self):
        # CVV պետք է լինի 3 կամ 4 թվանշան
        return self.cvv.isdigit() and len(self.cvv) in (3, 4)

# Թեստավորում
validator = CardValidator('4532015112830366', '12/25', '123')
assert validator.validate_number() == True
assert validator.validate_cvv() == True

Այսպիսով, մեթոդներ են իրականացվում, որոնք ստուգում են քարտի հատկությունները, բացի արդեն առկա ամսաթվի ստուգումից։