getPossibleCardType function

String getPossibleCardType(
  1. String? cardNumber, {
  2. bool shouldNormalize = true,
})

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;
  }
}