Teknoloji, Bilim ve Akıl
PHP ile Kredi Kartlarını Tanıma Fonksiyonu
Web Programlama

PHP ile Kredi Kartlarını Tanıma Fonksiyonu

1 dk okuma 11 okunma 0 yorum

Bazen sanal pos entegrasyonlarında, api bilgilerini gönderirken kart tipininde (Visa, Mastercard, Amex, Discover, Dinners, Enroute, Jbc) belirtilmesi istenebiliyor veya kullanıcıya hangi kart tipi olduğunu göstermek istiyorsunuz ya da başka bir nedenle kart tipine ihtiyacınız var. Regex kullanarak kart tiplerini tespit edebildiğimiz bir fonksiyon kullanabiliriz.

Küçük ama etkili fonksiyonumuzu paylaşalım.

function kartTipi($number){
        $number=str_replace(" ", "", $number);
 
        $cardType = array(
            "visa"       => "/^4[0-9]{12}(?:[0-9]{3})?$/",
            "mastercard" => "/^5[1-5][0-9]{14}$/",
            "amex"       => "/^3[47][0-9]{13}$/",
            "discover"   => "/^6(?:011|5[0-9]{2})[0-9]{12}$/",
            "dinners"    => "/^[300-305]d{11}$/",
            "dinners"    => "/^3[68]d{12}$/",
            "enroute"    => "/^2(014|149)d{11}$/",
            "jbc"        => "/^3d{15}$/",
            "jbc"        => "/^(2131|1800)d{11}$/",
        );
 
        foreach ($cardType as $key => $value) {
            if (preg_match($value,$number))
            {
                $type= $key;
                break;
            }else{
                $type= false;
            }
        }
        return $type;
    }

Oldukça basit olan kodları istediğiniz şekle evirip çevirebilirsiniz.

Kullanımı ise;

$cardNo="4546711234567894"; // VISA Test Kartı
 
switch (kartTipi($cartNo)) {
      case 'visa':
           echo "Bu bir visa karttır.";
      break;
 
      case 'mastercard':
           echo "Bu bir mastercard karttır.";
      break;
 
      default:
            echo "Kart tipi bulunamadı.";
      break;
    }

Umarım faydalı olur

Ramazan Yeşildal
Ramazan Yeşildal

Karaman merkezli bilgi teknolojileri yöneticisi ve bağımsız yazılım geliştirici.

0 Yorum

Yorum yazın

E-posta adresiniz yayınlanmaz. Yorumlar onaydan sonra görünür.