Xojo Conferences

Platforms to show: All Mac Windows Linux Cross-Platform

FAQ.Do you have code to validate a credit card number?
Answer: You can check the checksum to tell if a credit card number is not valid.
Dim strNumber As String
Dim nLength as Integer
Dim nValue as Integer
Dim nChecksum as Integer
Dim nIndex as Integer

strNumber = EditField1.Text
nLength = Len(strNumber)
nChecksum = 0

For nIndex = 0 To nLength - 2
nValue = Val(Mid(strNumber, nLength - (nIndex + 1), 1)) * (2 - (nIndex Mod 2))
If nValue < 10 Then
nChecksum = nChecksum + nValue
nChecksum = nChecksum + (nValue - 9)
End If

If Val(Mid(strNumber, Len(strNumber), 1)) = (10 - (nChecksum Mod 10)) Mod 10 Then
MsgBox("The credit card number looks valid")
MsgBox("The credit card number is invalid")
End IF
Here's some code that will validate the checksum for a credit card. It works for Visa, MasterCard, American Express and Discover. Not sure about others, but I imagine they use the same basic algorithm. Of course, this doesn't actually mean that the credit card is valid, it's only useful for helping the user catch typos.

The above code doesn't have any error checking and it expects that the credit card number will be entered without spaces, dashes or any other non-numeric characters. Addressing those issues will be an exercise left to the reader. :)

(From Mike Stefanik)

Feedback, Comments & Corrections

The biggest plugin in space...

MBS Xojo tutorial videos