İlginizi Çekebilir
  1. Ana Sayfa
  2. C Sharp

C# Kredi Kartı Tipini Bulma

C# Kredi Kartı Tipini Bulma
+ - 4

Merhabalar, C# Kredi Kartı Tipini Bulma yazım ile C# Eğitim Setime devam ediyorum. Bu dersimde kredi kartı numarasından, kartın Visa mı Mastercard mı olduğunu bulmamızı sağlayacak kodları paylaşacağım.

Kredi kartlarının 16 karakterden oluşan bir sayısı vardır. Bu sayı içinde bir çok bilgi yer almaktadır.

  • Kart numarasının ilk hanesi Ödeme Sistemi’ni belirten rakamdır. Yani kartın Mastercard mı Visa mı olduğunu belirtir.
  • Kart numarasının ilk 6 hanesi, banka tarafından verilen BIN (Bank Identification Number) yani prefix kodudur.
  • Kart numarasının 7-15 arasında kalan 9 hanesi sayı banka tarafından müşteriye verilen hesap numarasıdır. Buda 10^9 hesabı ile banka başına bir milyar olası hesap numarası anlamına gelir.
  • Kart numarasının son hanesi ise güvenlik rakamını temsil eder. Bu rakama Check Digit  denir. Bu rakam ile Lunh algoritması ile kartın geçerli olup olmadığı kontrol edilebilir.

C# Kredi Kartı Tipini Bulma

Her kredi kartının bir tipi vardır. Bu tipler

  • Visa
  • Mastercard
  • Aexpress (AmericanExpress)
  • Diners
  • Discovers
  • JCB

olarak sıralanabilir. Birazdan vereceğim kod bloğu, kart numarasından kartın tipini bulmamızı sağlayacaktır.

BİLGİ: Ayrıca kartımızın ilk hanesi bize kartın türü hakkında bir çok bilgi vermektedir. Elimizdeki kartın ilk hanesi 1 veya 2 ise uçuş kartı, 3 ise seyahat veya eğlence kartı, 4 veya 5 ise Hesap Kartı (Visa, Master, AmaricanExpress vs..), 6 ise kredi kartı, 7 ise Akaryakıt kartı, 8 ise haberleşme kartı ve son olarak 9 ise Uluslararası bir kartı simgeler.

Formumua iki label, bir textbox ve bir button ekleyelim. Butona tıkladığımızda, textbox’a yazılan kart numarasını kontrol etsin ve sonuç labelimize kartın tipini yazsın.

Öncelikle formumuza aşağıdaki namespace’i ekliyoruz. Kart tipini kontrol ederken RegularExpressions sınıfını kullanacağız.

using System.Text.RegularExpressions;

Namespace’i ekledikten sonra kodlarımızı yazalım.

        private void btn_kontrol_Click(object sender, EventArgs e)
        {
            Regex visaRegex = new Regex("^4[0-9]{12}(?:[0-9]{3})?$");
            Regex masterRegex = new Regex("^5[1-5][0-9]{14}$");
            Regex expressRegex = new Regex("^3[47][0-9]{13}$");
            Regex dinersRegex = new Regex("^3(?:0[0-5]|[68][0-9])[0-9]{11}$");
            Regex discoverRegex = new Regex("^6(?:011|5[0-9]{2})[0-9]{12}$");
            Regex jcbRegex = new Regex("^(?:2131|1800|35\\d{3})\\d{11}$");


            if (visaRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "VISA";
            else if (masterRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "MASTERCARD";
            else if (expressRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "AEXPRESS";
            else if (dinersRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "DINERS";
            else if (discoverRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "DISCOVERS";
            else if (jcbRegex.IsMatch(txt_card_no.Text))
                lbl_sonuc.Text = "JCB";
            else
                lbl_sonuc.Text = "Bilinmiyor";
        }

Kodlarımız yukarıdaki gibidir.  Ben bir Mastecard olan kredi kartı ve bir Visa olan banka kartı ile test yaptım ve sonuç doğrudur.

Burada sıralanan kart tiplerinden farklı bildiğiniz kart tipleri varsa yorum olarak yazabilirseniz onları da eklemeye çalışırım.


C# Kredi Kartı Tipini Bulma, yazımda bu kadardı arkadaşlar. Diğer yazılarımızda görüşmek üzere…

C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.

Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz… Bu dersimde Github ‘da yerini almıştır.

Sağlıcakla ve takipte kalın. ?

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)

Yorumlar (4)

  1. 3 sene önce

    Merhaba. Emeğinize teşekkürler öncelikle. Eğer TROY kart ı da buraya ekleyebilirsek çok süper olucak. İyi çalışmalar dilerim.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.