CreditCardType

Returns credit card type and whether it is valid or not.
Found it in my old code library and enhanced it to be presentable.

CodeFunctionName
What is this?

Public

Tested

Original Work
Function CreditCardType(CardNo)
    ' Returns the type of a credit card number, pass number as string, no spaces, no dashes
    '    using below to build this function
    ' Needs Luhn()
    Rett                        = 0         ' Not valid, Not defined, not found
                                            ' Card Type            Prefix                Length
    ccMaster                    = 1        ' MasterCard            51-55                16
    ccVISA                    = 2        ' VISA                    4                    13, 16
    ccAmex                    = 3        ' American Express    34, 37                15
    ccDiners                    = 4        ' Diner's Club        300-305, 36, 38    14
    ccCarteB                    = 5        ' Carte Blanche        300-305, 36, 38    14 ' < < < Not functioning now
    ccDiscover                = 6        ' Discover            6011                16
    ccenRoute                = 7        ' enRoute                2014, 2049        15
    ccJCB                        = 8        ' JCB                    3                    16
                                            ' JCB                    2131, 1800        15
    If Not Luhn(CardNo) Then
        ' CardNo is not valid, do not do any other calculations
    ElseIf Len(CardNo) = 16 And (Left(CardNo, 2) = "51" Or Left(CardNo, 2) = "52" Or Left(CardNo, 2) = "53" Or Left(CardNo, 2) = "54" Or Left(CardNo, 2) = "55") Then
        Rett                    = ccMaster             ' IsMaster = IsLen(s, 16) and IInside(CLng(Left(s, 2)), 51, 55)
    ElseIf (Len(CardNo) = 13 Or Len(CardNo) = 16) And Left(CardNo, 1) = "4" Then
        Rett                    = ccVISA             ' IsVisa = IsPrefix(s, "4") and (IsLen(s, 13) or IsLen(s, 16))
    ElseIf Len(CardNo) = 15 And (Left(CardNo, 2) = "34" Or Left(CardNo, 2) = "37") Then
        Rett                    = ccAmex                ' IsAmex = IsLen(s, 15) and (IsPrefix(s, "34") or IsPrefix(s, "37"))
    ElseIf Len(CardNo) = 14 And (Left(CardNo, 2) = "36" Or Left(CardNo, 2) = "38" Or Left(CardNo, 2) = "30") Then
        Rett                    = ccDiners            ' IsDiners = IsLen(s, 14) and (IsPrefix(s, "36") or IsPrefix(s, "38") or IInside(CLng(Left(s, 3)), 300, 305))
    ElseIf Len(CardNo) = 16 And Left(CardNo, 4) = "6011" Then
        Rett                    = ccDiscover        ' IsDiscover = IsLen(s, 16) and IsPrefix(s, "6011")
    ElseIf Len(CardNo) = 15 And (Left(CardNo, 4) = "2014" Or Left(CardNo, 4) = "2049") Then
        Rett                    = ccenRoute            ' IsRoute = IsLen(s, 15) and (IsPrefix(s, "2014") or IsPrefix(s, "2049"))
    ElseIf (Len(CardNo) = 16 And Left(CardNo, 1) = "3") Or (Len(CardNo) = 15 And (Left(CardNo, 4) = "1800" Or Left(CardNo, 4) = "2131")) Then
        Rett                    = ccJCB                ' IsJCB = (IsLen(s, 15) and (IsPrefix(s, "2131") or IsPrefix(s, "1800")) or (IsLen(s, 16) and IsPrefix(s, "3")))
    Else
        Rett                    = 0
    End If
    CreditCardType            = Rett
End Function

CardNo

Views 118

Downloads 59

CodeID
DB ID