15 Ocak 2012 Pazar

Visual Basic Verilen Kredi Kartı Numarasının Geçerli olup olmadığını anlayın!!

Posted by Unknown On 00:13 No comments

'Asagidaki fonksiyonu bir BAS modulu içine kopyala
'Not: Tüm kredi kartlari belli bir algoritma ile üretilir. Rastgele sayilar bu algoritmaya uymaz. Bu fonksiyon bu hesaplamalari yapar
'Asagidaki Sub bir command butonuna ait olabilir. Kliklendiginde verilen kart numarasini kontrol eder.

Sub KartKontrolu_Click ( )
'KartGecerli degiskeni True olur eger fonksiyon dogru deger çevirirse
Dim KartGecerli as Boolean
KartGecerli = GecerliKartNumarasimi("4552012301230123")
If KartGecerli then
    Msgbox "Geçerli kart"
else
   Msgbox "Aman dikkat. Bu kart geçersiz!!!"
End if
End Sub

Public Function GecerliKartNumarasimi(ByVal pCardNumber As String) As Boolean

Dim CharPos As Integer
Dim CheckSum As Integer
Dim tChar As String

For CharPos = Len(pCardNumber) To 2 Step -2
    CheckSum = CheckSum + CInt(Mid(pCardNumber, CharPos, 1))
    tChar = CStr((Mid(pCardNumber, CharPos - 1, 1)) * 2)
    CheckSum = CheckSum + CInt(Left(tChar, 1))
    If Len(tChar) > 1 Then CheckSum = CheckSum + CInt(Right(tChar, 1))
Next

If Len(pCardNumber) Mod 2 = 1 Then CheckSum = CheckSum + CInt(Left(pCardNumber, 1))

If CheckSum Mod 10 = 0 Then
IsValidCreditCardNumber = True
Else
IsValidCreditCardNumber = False
End If

End Function

0 yorum:

Yorum Gönder