Bankaların BIN Numaraları
Merhaba Arkadaşlar,
İnternet sitelerinde kredi kartları ile ilgili işlem yaparken kartın detaylı bilgilerine (banka adı, kart türü visa-mastercard vb.) ihtiyaç duyabiliriz. Bu bilgilere kart numarasının ilk altı hanesini kullanarak ulaşırız. Bu ilk altı haneye bin numaraları adı veriliyor. İnternet’te bu konuda detaylı bilgi bulabilirsiniz. Bizde kart bilgilerine ulaşmak için ücretsiz olan binlist.net servisini kullanacağız. Bu servis üzerinden sonuçlar csv, xml veya json olarak alınabiliyor. Detaylı bilgiyi internet sitelerinde bulabilirsiniz. Biz aşağıdaki class ile verileri xml olarak çekip, console ekranına yazdıracağız. Siz ihtiyacınıza göre dönen sonuçları kullanıcıya gösterebilir ve veritabanı’na kaydedebilirsiniz.
public class BinControl { private string bin; public string _bin { get { return bin; } set { bin = value; } } private string brand; public string _brand { get { return brand; } set { brand = value; } } private string subBrand; public string _subBrand { get { return subBrand; } set { subBrand = value; } } private string countryCode; public string _countryCode { get { return countryCode; } set { countryCode = value; } } private string countryName; public string _countryName { get { return countryName; } set { countryName = value; } } private string bank; public string _bank { get { return bank; } set { bank = value; } } private string cardType; public string _cardType { get { return cardType; } set { cardType = value; } } private string cardCategory; public string _cardCategory { get { return cardCategory; } set { cardCategory = value; } } private string latitude; public string _latitude { get { return latitude; } set { latitude = value; } } private string longitude; public string _longitude { get { return longitude; } set { longitude = value; } } public BinControl(string cardNumber) { string result = string.Empty; string url = @"http://www.binlist.net/xml/" + cardNumber; HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.AutomaticDecompression = DecompressionMethods.GZip; using (HttpWebResponse response = (HttpWebResponse)request.GetResponse()) using (Stream stream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(stream)) { result = reader.ReadToEnd(); } using (StringReader stringReader = new StringReader(result)) using (XmlTextReader reader = new XmlTextReader(stringReader)) { while (reader.Read()) { if (reader.IsStartElement()) { switch (reader.Name) { case "Bin": bin = reader.ReadString(); break; case "Brand": brand = reader.ReadString(); break; case "SubBrand": subBrand = reader.ReadString(); break; case "CountryCode": countryCode = reader.ReadString(); break; case "CountryName": countryName = reader.ReadString(); break; case "Bank": bank = reader.ReadString(); break; case "CardType": cardType = reader.ReadString(); break; case "CardCategory": cardCategory = reader.ReadString(); break; case "Latitude": latitude = reader.ReadString(); break; case "Longitude": longitude = reader.ReadString(); break; } } } } } }
Classımıza kart numarasını verdikten sonra dönen değerleri aşağıdaki şekilde ekranda gösteriyoruz.
static void Main(string[] args) { Console.Write("KART NUMARASI : "); string cardNumber = Console.ReadLine(); getCardDetail(cardNumber); Console.ReadLine(); } private static void getCardDetail(string cardNumber) { BinControl binControl = new BinControl(cardNumber); Console.WriteLine("Bin: " + binControl._bin); Console.WriteLine("Brand: " + binControl._brand); Console.WriteLine("SubBrand: " + binControl._subBrand); Console.WriteLine("CountryCode: " + binControl._countryCode); Console.WriteLine("CountryName: " + binControl._countryName); Console.WriteLine("Bank: " + binControl._bank); Console.WriteLine("CardType: " + binControl._cardType); Console.WriteLine("CardCategory: " + binControl._cardCategory); Console.WriteLine("Latitude: " + binControl._latitude); Console.WriteLine("Longitude: " + binControl._longitude); }
Son yorumlar