It is a PHP port of ramoona's banks-db.
Returns bank's name and brand color by bank card number's first digits (BIN, Issuer Identification Numbers, IIN).
composer require chekalskiy/php-banks-db
$card_prefix = '5275 9400 0000 0000'; // we only need first 6 digits but it could be the whole card number
try {
$bank_db = new BankDb();
$bank_info = $bank_db->getBankInfo($card_prefix);
$result = [
'is_unknown' => $bank_info->isUnknown(), // is bank unknown
'name' => $bank_info->getTitle(true),
'color' => $bank_info->getColor(),
'type' => $bank_info->getCardType(),
];
return $result;
} catch (BankDbException $e) {
// todo handle exception
}
We use simple PHP-file with an array inside (it's regenerates every time ramoona's repository is updated). It's very fast and simple way to work with data because of opcache enabled by default in PHP 7. But you can extend BankDB
class to make it work with redis or something, but for most cases compiled php-file is OK.
Database updates from original library by me. To update php cache file after manual database change run composer rebuild
.
Feel free to open an issue on every question you have. If you have new prefixes for database please commit them to ramoona/banks-db repository — I will update them once your PR will me merged there.
It's a community driven database, so it can potentially contains mistakes.
For UI examples see the original library.