VBcoders Guest



Don't have an account yet? Register
 


Forgot Password?



VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN A

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

Rate VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN A



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

Download this snippet    Add to My Saved Code

VALIDATES THE CREDIT CARD NUMBER ENTERED BY THE USER AS PER THE CREDITCARD NUMBER GENERATION LUHN A Comments

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.

Post your comment

Subject:
Message:
0/1000 characters