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