PHP ile Kredi Kartlarını Tanıma Fonksiyonu

PHP ile Kredi Kartlarını Tanıma Fonksiyonu

Ağustos 19, 2023

Okuma süresi: ~1 dakika

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