CodeItBetter Programming Another VB Programming Blog

How to Determine The Type Of Credit Card

Posted on January 5, 2009
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
'String Manipulation - How to Determine The Type Of Credit Card

Public Function CreditCardType(ByVal CardNo As String) As String
'CARD TYPES             PREFIX            WIDTH
'----------             ------            -----
'American Express       34, 37            15
'Diners Club            300 to 305, 36    14
'Carte Blanche          38                14
'Discover               6011              16
'EnRoute                2014, 2149        15
'JCB                    3                 16
'JCB                    2131, 1800        15
'Master Card            51 to 55          16
'Visa                   4                 13, 16

    CreditCardType = "Unknown"
 
    CardNo = Replace(Replace(CardNo, " ", ""), "-", "")
 
    'Validations
    If Len(CardNo) < 14 Or Not IsNumeric(CardNo) Then Exit Function
 
    'Check the first two digits first
    Select Case CInt(Left(CardNo, 2))
    Case 34, 37
        CreditCardType = "American Express"
    Case 36
        CreditCardType = "Diners Club"
    Case 38
        CreditCardType = "Carte Blanche"
    Case 51 To 55
        CreditCardType = "Master Card"
    Case Else
        Select Case CInt(Left(CardNo, 4))
        Case 2014, 2149
            CreditCardType = "EnRoute"
        Case 2131, 1800
            CreditCardType = "JCB"
        Case 6011
            CreditCardType = "Discover"
        Case Else
            Select Case CInt(Left(CardNo, 3))
            Case 300 To 305
                CreditCardType = "American Diners Club"
            Case Else
                Select Case CInt(Left(CardNo, 1))
                Case 3
                    CreditCardType = "JCB"
                Case 4
                    CreditCardType = "Visa"
                End Select
            End Select
        End Select
    End Select
End Function
 
Private Sub Main()
    MsgBox CreditCardType("1224 1544 1521 2323")
End Sub
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment


 

No trackbacks yet.