1<?php 2 3namespace Faker\Provider\pl_PL; 4 5class Payment extends \Faker\Provider\Payment 6{ 7 /** 8 * @var array list of Polish banks, source: https://ewib.nbp.pl/ 9 */ 10 protected static $banks = array( 11 '101' => 'Narodowy Bank Polski', 12 '102' => 'Powszechna Kasa Oszczędności Bank Polski SA', 13 '103' => 'Bank Handlowy w Warszawie SA', 14 '105' => 'ING Bank Śląski SA', 15 '106' => 'Bank BPH SA', 16 '109' => 'Bank Zachodni WBK SA', 17 '113' => 'Bank Gospodarstwa Krajowego', 18 '114' => 'mBank SA', 19 '116' => 'Bank Millennium SA', 20 '122' => 'Bank Handlowo-Kredytowy Spółka Akcyjna w Katowicach w likwidacji', 21 '124' => 'Bank Polska Kasa Opieki SA', 22 '128' => 'HSBC Bank Polska SA', 23 '132' => 'Bank Pocztowy SA', 24 '147' => 'Euro Bank SA', 25 '154' => 'Bank Ochrony Środowiska SA', 26 '158' => 'Mercedes-Benz Bank Polska SA', 27 '161' => 'SGB-Bank SA', 28 '167' => 'RBS Bank (Polska) SA', 29 '168' => 'PLUS BANK SA', 30 '175' => 'Raiffeisen Bank Polska SA', 31 '184' => 'Societe Generale SA Oddział w Polsce', 32 '187' => 'Nest Bank S.A.', 33 '189' => 'Pekao Bank Hipoteczny SA', 34 '191' => 'Deutsche Bank Polska SA', 35 '193' => 'BANK POLSKIEJ SPÓŁDZIELCZOŚCI SA', 36 '194' => 'Credit Agricole Bank Polska SA', 37 '195' => 'Idea Bank SA', 38 '203' => 'Bank BGŻ BNP Paribas SA', 39 '212' => 'Santander Consumer Bank SA', 40 '213' => 'VOLKSWAGEN BANK POLSKA SA', 41 '214' => 'FCA-Group Bank Polska SA', 42 '215' => 'mBank Hipoteczny SA', 43 '216' => 'Toyota Bank Polska SA', 44 '219' => 'DNB Bank Polska SA', 45 '224' => 'Banque PSA Finance SA Oddział w Polsce', 46 '225' => 'Svenska Handelsbanken AB SA Oddział w Polsce', 47 '229' => 'BPI Bank Polskich Inwestycji SA', 48 '232' => 'Nykredit Realkredit A/S SA - Oddział w Polsce', 49 '235' => 'BNP PARIBAS SA Oddział w Polsce', 50 '236' => 'Danske Bank A/S SA Oddział w Polsce', 51 '237' => 'Skandinaviska Enskilda Banken AB (SA) - Oddział w Polsce', 52 '239' => 'CAIXABANK, S.A. (SPÓŁKA AKCYJNA)ODDZIAŁ W POLSCE', 53 '241' => 'Elavon Financial Services Designated Activity Company (spółka z o.o. o wyznaczonym przedmiocie działalności) Oddział w Polsce', 54 '243' => 'BNP Paribas Securities Services SKA Oddział w Polsce', 55 '247' => 'HAITONG BANK, S.A. Spółka Akcyjna Oddział w Polsce', 56 '248' => 'Getin Noble Bank SA', 57 '249' => 'Alior Bank SA', 58 '251' => 'Aareal Bank Aktiengesellschaft (Spółka Akcyjna) - Oddział w Polsce', 59 '254' => 'Citibank Europe plc (Publiczna Spółka Akcyjna) Oddział w Polsce', 60 '255' => 'Ikano Bank AB (publ) Spółka Akcyjna Oddział w Polsce', 61 '256' => 'Nordea Bank AB SA Oddział w Polsce', 62 '257' => 'UBS Limited (spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', 63 '258' => 'J.P. Morgan Europe Limited Sp. z o.o. Oddział w Polsce', 64 '260' => 'Bank of China (Luxembourg) S.A. Spółka Akcyjna Oddział w Polsce', 65 '262' => 'Industrial and Commercial Bank of China (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', 66 '263' => 'Saxo Bank A/S Spółka Akcyjna Oddział w Polsce w likwidacji', 67 '264' => 'RCI Banque Spółka Akcyjna Oddział w Polsce', 68 '265' => 'EUROCLEAR Bank SA/NV (Spółka Akcyjna) - Oddział w Polsce', 69 '266' => 'Intesa Sanpaolo S.p.A. Spółka Akcyjna Oddział w Polsce', 70 '267' => 'Western Union International Bank GmbH, Sp. z o.o. Oddział w Polsce', 71 '269' => 'PKO Bank Hipoteczny SA', 72 '270' => 'TF BANK AB (Spółka z ograniczoną odpowiedzialnością) Oddział w Polsce', 73 '271' => 'FCE Bank Spółka Akcyjna Oddział w Polsce', 74 '272' => 'AS Inbank Spółka Akcyjna - Oddział w Polsce', 75 '273' => 'China Construction Bank (Europe) S.A. (Spółka Akcyjna) Oddział w Polsce', 76 '274' => 'MUFG Bank (Europe) N.V. S.A. Oddział w Polsce', 77 '275' => 'John Deere Bank S.A. Spółka Akcyjna Oddział w Polsce', 78 ); 79 80 /** 81 * @example 'Euro Bank SA' 82 */ 83 public static function bank() 84 { 85 return static::randomElement(static::$banks); 86 } 87 88 /** 89 * International Bank Account Number (IBAN) 90 * @link http://en.wikipedia.org/wiki/International_Bank_Account_Number 91 * @param string $prefix for generating bank account number of a specific bank 92 * @param string $countryCode ISO 3166-1 alpha-2 country code 93 * @param integer $length total length without country code and 2 check digits 94 * @return string 95 */ 96 public static function bankAccountNumber($prefix = '', $countryCode = 'PL', $length = null) 97 { 98 return static::iban($countryCode, $prefix, $length); 99 } 100 101 protected static function addBankCodeChecksum($iban, $countryCode = 'PL') 102 { 103 if ($countryCode != 'PL' || strlen($iban) <= 8) { 104 return $iban; 105 } 106 $checksum = 0; 107 $weights = array(7, 1, 3, 9, 7, 1, 3); 108 for ($i = 0; $i < 7; $i++) { 109 $checksum += $weights[$i] * (int) $iban[$i]; 110 } 111 $checksum = $checksum % 10; 112 113 return substr($iban, 0, 7) . $checksum . substr($iban, 8); 114 } 115} 116