Skip to content

Commit

Permalink
cherrypicked Banks.php from Martin, kudos!
Browse files Browse the repository at this point in the history
  • Loading branch information
peci1 authored and Lung committed Feb 6, 2024
1 parent e05510c commit dd98756
Show file tree
Hide file tree
Showing 2 changed files with 259 additions and 0 deletions.
16 changes: 16 additions & 0 deletions src/Payment/Bank.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
<?php

declare(strict_types=1);

namespace kissj\Payment;

class Bank
{
public function __construct(
public readonly string $slug,
public readonly string $code,
public readonly string $name,
public readonly string $serviceClass,
) {
}
}
243 changes: 243 additions & 0 deletions src/Payment/Banks.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,243 @@
<?php

namespace kissj\Payment;

use kissj\BankPayment\FioBankPaymentService;

class Banks
{
/**
* @var array<string,array<string,string>>
*/
private array $banks = [
'fio' => [
'bankCode' => '2010',
'name' => 'Fio Banka',
'serviceClass' => FioBankPaymentService::class,
],
'air' => [
'bankCode' => '3030',
'name' => 'Air Bank',
],
'ano' => [
'bankCode' => '2260',
'name' => 'ANO spořitelní družstvo',
],
'artesa' => [
'bankCode' => '2220',
'name' => 'Artesa spořitelní družstvo',
],
'gutmann' => [
'bankCode' => '8231',
'name' => 'Bank Gutmann Aktiengesellschaft',
],
'china' => [
'bankCode' => '8250',
'name' => 'Bank of China',
],
'creditas' => [
'bankCode' => '2250',
'name' => 'Banka CREDITAS a.s.',
],
'bnp' => [
'bankCode' => '6300',
'name' => 'BNP Paribas Fortis SA/NV',
],
'bnp-personal' => [
'bankCode' => '3050',
'name' => 'BNP Paribas Personal Finance SA',
],
'ceb' => [
'bankCode' => '8090',
'name' => 'Česká exportní banka, a.s.',
],
'cnb' => [
'bankCode' => '0710',
'name' => 'Česká národní banka',
],
'cs' => [
'bankCode' => '0800',
'name' => 'Česká spořitelna, a.s.',
],
'cmss' => [
'bankCode' => '7960',
'name' => 'Českomoravská stavební spořitelna a.s.',
],
'czrb' => [
'bankCode' => '4300',
'name' => 'Českomoravská záruční a rozvojová banka, a.s.',
],
'csob' => [
'bankCode' => '0300',
'name' => 'Československá obchodní banka, a.s.',
],
'cud' => [
'bankCode' => '2030',
'name' => 'Československé úvěrní družstvo',
],
'citfin' => [
'bankCode' => '2060',
'name' => 'Citfin spořitelní družstvo',
],
'citibank' => [
'bankCode' => '2600',
'name' => 'Citibank Europe plc',
],
'commerz' => [
'bankCode' => '6200',
'name' => 'COMMERZBANK Aktiengesellschaft',
],
'db' => [
'bankCode' => '7910',
'name' => 'Deutsche Bank Aktiengesellschaft',
],
'kredit' => [
'bankCode' => '8240',
'name' => 'Družstevní záložna Kredit',
],
'equa' => [
'bankCode' => '6100',
'name' => 'Equa bank a.s.',
],
'expo' => [
'bankCode' => '4000',
'name' => 'Expobank CZ a.s.',
],
'hsbc' => [
'bankCode' => '8150',
'name' => 'HSBC Bank plc',
],
'hb' => [
'bankCode' => '2100',
'name' => 'Hypoteční banka, a.s.',
],
'industrial' => [
'bankCode' => '8265',
'name' => 'Industrial and Commercial Bank of China Limited',
],
'ing' => [
'bankCode' => '3500',
'name' => 'ING Bank N.V.',
],
'jnt' => [
'bankCode' => '5800',
'name' => 'J & T BANKA, a.s.',
],
'kb' => [
'bankCode' => '0100',
'name' => 'Komerční banka, a.s.',
],
'mbank' => [
'bankCode' => '6210',
'name' => 'mBank S.A.',
],
'pyramida' => [
'bankCode' => '7990',
'name' => 'Modrá pyramida stavební spořitelna, a.s.',
],
'moneta' => [
'bankCode' => '0600',
'name' => 'MONETA Money Bank, a.s.',
],
'mpu' => [
'bankCode' => '2070',
'name' => 'Moravský Peněžní Ústav - spořitelní družstvo',
],
'mufg' => [
'bankCode' => '2020',
'name' => 'MUFG Bank (Europe) N.V.',
],
'ober' => [
'bankCode' => '8040',
'name' => 'Oberbank AG',
],
'pd' => [
'bankCode' => '2200',
'name' => 'Peněžní dům, spořitelní družstvo',
],
'pko' => [
'bankCode' => '3060',
'name' => 'PKO BP S.A.,',
],
'pb' => [
'bankCode' => '2240',
'name' => 'Poštová banka, a.s.',
],
'ppf' => [
'bankCode' => '6000',
'name' => 'PPF banka a.s.',
],
'privat' => [
'bankCode' => '8200',
'name' => 'PRIVAT BANK der Raiffeisenlandesbank',
],
'raiffss' => [
'bankCode' => '7950',
'name' => 'Raiffeisen stavební spořitelna a.s.',
],
'raiff' => [
'bankCode' => '5500',
'name' => 'Raiffeisenbank a.s.',
],
'saxo' => [
'bankCode' => '8211',
'name' => 'Saxo Bank A/S',
],
'sber' => [
'bankCode' => '6800',
'name' => 'Sberbank CZ, a.s.',
],
'sscs' => [
'bankCode' => '8060',
'name' => 'Stavební spořitelna České spořitelny, a.s.',
],
'sumo' => [
'bankCode' => '8241',
'name' => 'Sumitomo Mitsui Banking Corporation Europe Limited',
],
'unicredit' => [
'bankCode' => '2700',
'name' => 'UniCredit Bank',
],
'volksbank' => [
'bankCode' => '8030',
'name' => 'Volksbank Raiffeisenbank Nordoberpfalz eG pobočka Cheb',
],
'vub' => [
'bankCode' => '6700',
'name' => 'VUB, a.s.',
],
'sparkasse' => [
'bankCode' => '7940',
'name' => 'Waldviertler Sparkasse Bank AG',
],
'western' => [
'bankCode' => '3040',
'name' => 'Western Union International Bank GmbH',
],
'wuestss' => [
'bankCode' => '7970',
'name' => 'Wüstenrot - stavební spořitelna a.s.',
],
'wuest' => [
'bankCode' => '7980',
'name' => 'Wüstenrot hypoteční banka a.s.',
],
];

public function getBankBySlug(string $slug): Bank
{
if (!array_key_exists($slug, $this->banks)) {
throw new \InvalidArgumentException('Bank with slug ' . $slug . ' does not exist');
}

$bank = $this->banks[$slug];

return new Bank(
$slug,
$bank['bankCode'],
$bank['name'],
$bank['serviceClass'],
);
}
}

0 comments on commit dd98756

Please sign in to comment.