Advertisement
2_2002-2004 OLE/ COM/ DCOM/ Active-X #128750

Credit Card Validation (Luhn Formula)

Uses the Luhn formula to quickly validate a credit card. Basically all the digits except for the last one are summed together and the output is a single digit (0 to 9). This digit is compared with the last digit ensure a proper credit card number is entered (Does not actually confirm that is is a real number, just that it is likely to be one. Example: Entering "4000-0000-0000-0002" will pass the check, but "4000-0000-0000-0003" will not pass.)

AI

AI Summary: This codebase represents a historical implementation of the logic described in the metadata. Our preservation engine analyzes the structure to provide context for modern developers.

Source Code
original-source
Function CheckCC(CCNo)
 Dim i, w, x, y
 
 y = 0
 CCNo = Replace(Replace(Replace(CStr(CCNo), "-", ""), " ", ""), ".", "") 'Ensure proper format of the input
 'Process digits from right to left, drop last digit if total length is even
 w = 2 * (Len(CCNo) Mod 2)
 For i = Len(CCNo) - 1 To 1 Step -1
  x = Mid(CCNo, i, 1)
  If IsNumeric(x) Then
   Select Case (i Mod 2) + w
    Case 0, 3 'Even Digit - Odd where total length is odd (eg. Visa vs. Amx)
     y = y + CInt(x)
    Case 1, 2 'Odd Digit - Even where total length is odd (eg. Visa vs. Amx)
     x = CInt(x) * 2
     If x > 9 Then
      'Break the digits (eg. 19 becomes 1 + 9)
      y = y + (x \ 10) + (x - 10)
     Else
      y = y + x
     End If
   End Select
  End If
 Next
 'Return the 10's complement of the total
 y = 10 - (y Mod 10)
 If y > 9 Then y = 0
 CheckCC = (CStr(y) = Right(CCNo, 1))
End Function
Original Comments (3)
Recovered from Wayback Machine