by GAUTAM KAIKINI (5 Submissions)
Category: OLE/COM/DCOM/Active-X
Compatability: VB 6.0
Difficulty: Unknown Difficulty
Originally Published: Sat 9th November 2002
Date Added: Mon 8th February 2021
Rating:
(1 Votes)
VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN ALGORITHUM USED BY MASTER,VISA AND DISCOVER
API Declarations
'NAME THE PROJECT AS prjCrCheck
'NAME THE CLASS MODULE AS clsCrCheck
'SET THE CLASS INSTANCING PROPERTY TO 5 - MULTIUSE
'AFTER TYPING THE FOLLOWING DECLARATIONS AND THE CODE GIVEN BELOW,
'COMPILE THE PROJECT INTO DLL BY SELECTING THE MAKE DLL OPTION
'FROM THE FILE MENU
'NOW YOU NEED TO TEST THE ACTIVEX DLL COMPONENT
'FOR THIS,OPEN A STANDARD EXE PROJECT
'SET A REFERENCE OF THIS DLL USING REFERENCES FROM THE PROJECT MENU
'CREATE TWO TEXTBOXES ON THE FORM USING THEIR DEFAULT NAMES AND A COMMAND BUTTON
'THEN TYPE IN THE FOLLOWING CODE in the click event of the command button:
Private Sub Command1_Click()
Dim obj as prjCrCheck.clsCrCheck
Dim blnValid as Boolean
Set obj = new clsCrCheck
blnValid = obj.fnValidateCreditCard(Text1.Text,Text2.Text)
If blnValid = True Then
MSGBOX "VALID CREDIT CARD"
else
MSGBOX "INVALID CREDIT CARD"
End If
End Sub
Option Explicit
Dim intNumber As Integer
Dim strNumberFinal As String
Dim intSum As Integer
Dim validLuhn As Boolean
Dim bValid As Boolean
strCCType = Trim(strCCType)
Select Case UCase(strCCType)
Case "VISA"
strCCType = "V"
Case "MASTER"
strCCType = "M"
Case "AMERICAN"
strCCType = "A"
End Select
If fnPrefixCheck(strCCNumber, strCCType) And fnLengthCheck(strCCNumber, strCCType) _
And fnLuhnCheck(strCCNumber, strCCType) Then
fnValidateCreditCard = True
Else
fnValidateCreditCard = False
End If
End Function
Private Function fnPrefixCheck(strCCNumber As String, strCCType As String) As Boolean
Dim validPrefix As Boolean
Select Case UCase(strCCType)
Case "V"
If InStr(1, strCCNumber, "4") = 1 Then
validPrefix = True
End If
Case "M"
If InStr(1, strCCNumber, "51") = 1 Or _
InStr(1, strCCNumber, "52") = 1 Or _
InStr(1, strCCNumber, "53") = 1 Or _
InStr(1, strCCNumber, "54") = 1 Or _
InStr(1, strCCNumber, "55") = 1 Then
validPrefix = True
End If
Case "A"
If InStr(1, strCCNumber, "34") = 1 Or _
InStr(1, strCCNumber, "37") = 1 Then
validPrefix = True
End If
End Select
fnPrefixCheck = validPrefix
End Function
Private Function fnLengthCheck(strCCNumber As String, strCCType As String) As Boolean
Dim validLength As Boolean
validLength = False
Select Case UCase(strCCType)
Case "V"
If Len(strCCNumber) = 13 Or Len(strCCNumber) = 16 Then
validLength = True
End If
Case "M"
If Len(strCCNumber) = 16 Then
validLength = True
End If
Case "A"
If Len(strCCNumber) = 15 Then
validLength = True
End If
End Select
fnLengthCheck = validLength
End Function
Private Function fnLuhnCheck(strCCNumber As String, strCCType As String) As Boolean
Dim strRev As String
Dim strCh As String
Dim intTemp As Integer
Dim intNumber As Integer
Dim strNumberFinal As String
Dim intSum As Integer
Dim validLuhn As Boolean
strRev = StrReverse(strCCNumber)
For intTemp = 1 To Len(strRev)
strCh = Mid(strRev, intTemp, 1)
intNumber = CInt(strCh)
If intTemp Mod 2 = 0 Then
intNumber = intNumber * 2
If intNumber > 9 Then
intNumber = intNumber - 9
End If
End If
strNumberFinal = strNumberFinal & intNumber
Next intTemp
For intTemp = 1 To Len(strNumberFinal)
intSum = intSum + Mid(strNumberFinal, intTemp, 1)
Next intTemp
If intSum Mod 10 = 0 Then
validLuhn = True
Else
validLuhn = False
End If
fnLuhnCheck = validLuhn
End Function
No comments have been posted about VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN A. Why not be the first to post a comment about VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN A.