getPossibleCardType function
Implementation
String getPossibleCardType(String ?cardNumber, {bool shouldNormalize = true}) {
if (isBlank(cardNumber)) {
return StripeCard.unknown;
}
String? spacelessCardNumber = cardNumber;
if (shouldNormalize) {
spacelessCardNumber = removeSpacesAndHyphens(cardNumber);
}
if (hasAnyPrefix(spacelessCardNumber, StripeCard.PREFIXES_AMERICAN_EXPRESS)) {
return StripeCard.americanExpress;
} else if (hasAnyPrefix(spacelessCardNumber, StripeCard.PREFIXES_DISCOVER)) {
return StripeCard.discover;
} else if (hasAnyPrefix(spacelessCardNumber, StripeCard.PREFIXES_JCB)) {
return StripeCard.jcb;
} else if (hasAnyPrefix(
spacelessCardNumber, StripeCard.PREFIXES_DINERS_CLUB)) {
return StripeCard.dinersClub;
} else if (hasAnyPrefix(spacelessCardNumber, StripeCard.PREFIXES_VISA)) {
return StripeCard.visa;
} else if (hasAnyPrefix(
spacelessCardNumber, StripeCard.PREFIXES_MASTERCARD)) {
return StripeCard.masterCard;
} else if (hasAnyPrefix(spacelessCardNumber, StripeCard.PREFIXES_UNIONPAY)) {
return StripeCard.unionPay;
} else {
return StripeCard.unknown;
}
}