PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.14.2
GiveWP – Donation Plugin and Fundraising Platform v3.14.2
4.16.4 4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider / Payment.php
give / vendor / vendor-prefixed / fakerphp / faker / src / Faker / Provider Last commit date
ar_EG 1 year ago ar_JO 1 year ago ar_SA 1 year ago at_AT 1 year ago bg_BG 1 year ago bn_BD 1 year ago cs_CZ 1 year ago da_DK 1 year ago de_AT 1 year ago de_CH 1 year ago de_DE 1 year ago el_CY 1 year ago el_GR 1 year ago en_AU 1 year ago en_CA 1 year ago en_GB 1 year ago en_HK 1 year ago en_IN 1 year ago en_NG 1 year ago en_NZ 1 year ago en_PH 1 year ago en_SG 1 year ago en_UG 1 year ago en_US 1 year ago en_ZA 1 year ago es_AR 1 year ago es_ES 1 year ago es_PE 1 year ago es_VE 1 year ago et_EE 1 year ago fa_IR 1 year ago fi_FI 1 year ago fr_BE 1 year ago fr_CA 1 year ago fr_CH 1 year ago fr_FR 1 year ago he_IL 1 year ago hr_HR 1 year ago hu_HU 1 year ago hy_AM 1 year ago id_ID 1 year ago is_IS 1 year ago it_CH 1 year ago it_IT 1 year ago ja_JP 1 year ago ka_GE 1 year ago kk_KZ 1 year ago ko_KR 1 year ago lt_LT 1 year ago lv_LV 1 year ago me_ME 1 year ago mn_MN 1 year ago ms_MY 1 year ago nb_NO 1 year ago ne_NP 1 year ago nl_BE 1 year ago nl_NL 1 year ago pl_PL 1 year ago pt_BR 1 year ago pt_PT 1 year ago ro_MD 1 year ago ro_RO 1 year ago ru_RU 1 year ago sk_SK 1 year ago sl_SI 1 year ago sr_Cyrl_RS 1 year ago sr_Latn_RS 1 year ago sr_RS 1 year ago sv_SE 1 year ago th_TH 1 year ago tr_TR 1 year ago uk_UA 1 year ago vi_VN 1 year ago zh_CN 1 year ago zh_TW 1 year ago Address.php 1 year ago Barcode.php 1 year ago Base.php 1 year ago Biased.php 1 year ago Color.php 1 year ago Company.php 1 year ago DateTime.php 1 year ago File.php 1 year ago HtmlLorem.php 1 year ago Image.php 1 year ago Internet.php 1 year ago Lorem.php 1 year ago Medical.php 1 year ago Miscellaneous.php 1 year ago Payment.php 1 year ago Person.php 1 year ago PhoneNumber.php 1 year ago Text.php 1 year ago UserAgent.php 1 year ago Uuid.php 1 year ago
Payment.php
319 lines
1 <?php
2 /**
3 * @license MIT
4 *
5 * Modified by impress-org on 07-August-2024 using Strauss.
6 * @see https://github.com/BrianHenryIE/strauss
7 */
8
9 namespace Give\Vendors\Faker\Provider;
10
11 use Give\Vendors\Faker\Calculator\Iban;
12 use Give\Vendors\Faker\Calculator\Luhn;
13
14 class Payment extends Base
15 {
16 public static $expirationDateFormat = 'm/y';
17
18 protected static $cardVendors = [
19 'Visa', 'Visa', 'Visa', 'Visa', 'Visa',
20 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard', 'MasterCard',
21 'American Express', 'Discover Card', 'Visa Retired', 'JCB',
22 ];
23
24 /**
25 * @var array List of card brand masks for generating valid credit card numbers
26 *
27 * @see https://en.wikipedia.org/wiki/Payment_card_number Reference for existing prefixes
28 * @see https://www.mastercard.us/en-us/issuers/get-support/2-series-bin-expansion.html MasterCard 2017 2-Series BIN Expansion
29 */
30 protected static $cardParams = [
31 'Visa' => [
32 '4539###########',
33 '4556###########',
34 '4916###########',
35 '4532###########',
36 '4929###########',
37 '40240071#######',
38 '4485###########',
39 '4716###########',
40 '4##############',
41 ],
42 'Visa Retired' => [
43 '4539########',
44 '4556########',
45 '4916########',
46 '4532########',
47 '4929########',
48 '40240071####',
49 '4485########',
50 '4716########',
51 '4###########',
52 ],
53 'MasterCard' => [
54 '2221###########',
55 '23#############',
56 '24#############',
57 '25#############',
58 '26#############',
59 '2720###########',
60 '51#############',
61 '52#############',
62 '53#############',
63 '54#############',
64 '55#############',
65 ],
66 'American Express' => [
67 '34############',
68 '37############',
69 ],
70 'Discover Card' => [
71 '6011###########',
72 ],
73 'JCB' => [
74 '3528###########',
75 '3589###########',
76 ],
77 ];
78
79 /**
80 * @var array list of IBAN formats, source: @see https://www.swift.com/standards/data-standards/iban
81 */
82 protected static $ibanFormats = [
83 'AD' => [['n', 4], ['n', 4], ['c', 12]],
84 'AE' => [['n', 3], ['n', 16]],
85 'AL' => [['n', 8], ['c', 16]],
86 'AT' => [['n', 5], ['n', 11]],
87 'AZ' => [['a', 4], ['c', 20]],
88 'BA' => [['n', 3], ['n', 3], ['n', 8], ['n', 2]],
89 'BE' => [['n', 3], ['n', 7], ['n', 2]],
90 'BG' => [['a', 4], ['n', 4], ['n', 2], ['c', 8]],
91 'BH' => [['a', 4], ['c', 14]],
92 'BR' => [['n', 8], ['n', 5], ['n', 10], ['a', 1], ['c', 1]],
93 'CH' => [['n', 5], ['c', 12]],
94 'CR' => [['n', 4], ['n', 14]],
95 'CY' => [['n', 3], ['n', 5], ['c', 16]],
96 'CZ' => [['n', 4], ['n', 6], ['n', 10]],
97 'DE' => [['n', 8], ['n', 10]],
98 'DK' => [['n', 4], ['n', 9], ['n', 1]],
99 'DO' => [['c', 4], ['n', 20]],
100 'EE' => [['n', 2], ['n', 2], ['n', 11], ['n', 1]],
101 'EG' => [['n', 4], ['n', 4], ['n', 17]],
102 'ES' => [['n', 4], ['n', 4], ['n', 1], ['n', 1], ['n', 10]],
103 'FI' => [['n', 6], ['n', 7], ['n', 1]],
104 'FR' => [['n', 5], ['n', 5], ['c', 11], ['n', 2]],
105 'GB' => [['a', 4], ['n', 6], ['n', 8]],
106 'GE' => [['a', 2], ['n', 16]],
107 'GI' => [['a', 4], ['c', 15]],
108 'GR' => [['n', 3], ['n', 4], ['c', 16]],
109 'GT' => [['c', 4], ['c', 20]],
110 'HR' => [['n', 7], ['n', 10]],
111 'HU' => [['n', 3], ['n', 4], ['n', 1], ['n', 15], ['n', 1]],
112 'IE' => [['a', 4], ['n', 6], ['n', 8]],
113 'IL' => [['n', 3], ['n', 3], ['n', 13]],
114 'IS' => [['n', 4], ['n', 2], ['n', 6], ['n', 10]],
115 'IT' => [['a', 1], ['n', 5], ['n', 5], ['c', 12]],
116 'KW' => [['a', 4], ['n', 22]],
117 'KZ' => [['n', 3], ['c', 13]],
118 'LB' => [['n', 4], ['c', 20]],
119 'LI' => [['n', 5], ['c', 12]],
120 'LT' => [['n', 5], ['n', 11]],
121 'LU' => [['n', 3], ['c', 13]],
122 'LV' => [['a', 4], ['c', 13]],
123 'MC' => [['n', 5], ['n', 5], ['c', 11], ['n', 2]],
124 'MD' => [['c', 2], ['c', 18]],
125 'ME' => [['n', 3], ['n', 13], ['n', 2]],
126 'MK' => [['n', 3], ['c', 10], ['n', 2]],
127 'MR' => [['n', 5], ['n', 5], ['n', 11], ['n', 2]],
128 'MT' => [['a', 4], ['n', 5], ['c', 18]],
129 'MU' => [['a', 4], ['n', 2], ['n', 2], ['n', 12], ['n', 3], ['a', 3]],
130 'NL' => [['a', 4], ['n', 10]],
131 'NO' => [['n', 4], ['n', 6], ['n', 1]],
132 'PK' => [['a', 4], ['c', 16]],
133 'PL' => [['n', 8], ['n', 16]],
134 'PS' => [['a', 4], ['c', 21]],
135 'PT' => [['n', 4], ['n', 4], ['n', 11], ['n', 2]],
136 'RO' => [['a', 4], ['c', 16]],
137 'RS' => [['n', 3], ['n', 13], ['n', 2]],
138 'SA' => [['n', 2], ['c', 18]],
139 'SE' => [['n', 3], ['n', 16], ['n', 1]],
140 'SI' => [['n', 5], ['n', 8], ['n', 2]],
141 'SK' => [['n', 4], ['n', 6], ['n', 10]],
142 'SM' => [['a', 1], ['n', 5], ['n', 5], ['c', 12]],
143 'TN' => [['n', 2], ['n', 3], ['n', 13], ['n', 2]],
144 'TR' => [['n', 5], ['n', 1], ['c', 16]],
145 'VG' => [['a', 4], ['n', 16]],
146 ];
147
148 /**
149 * @return string Returns a credit card vendor name
150 *
151 * @example 'MasterCard'
152 */
153 public static function creditCardType()
154 {
155 return static::randomElement(static::$cardVendors);
156 }
157
158 /**
159 * Returns the String of a credit card number.
160 *
161 * @param string $type Supporting any of 'Visa', 'MasterCard', 'American Express', 'Discover' and 'JCB'
162 * @param bool $formatted Set to true if the output string should contain one separator every 4 digits
163 * @param string $separator Separator string for formatting card number. Defaults to dash (-).
164 *
165 * @return string
166 *
167 * @example '4485480221084675'
168 */
169 public static function creditCardNumber($type = null, $formatted = false, $separator = '-')
170 {
171 if (null === $type) {
172 $type = static::creditCardType();
173 }
174 $mask = static::randomElement(static::$cardParams[$type]);
175
176 $number = static::numerify($mask);
177 $number .= Luhn::computeCheckDigit($number);
178
179 if ($formatted) {
180 $p1 = substr($number, 0, 4);
181 $p2 = substr($number, 4, 4);
182 $p3 = substr($number, 8, 4);
183 $p4 = substr($number, 12);
184 $number = $p1 . $separator . $p2 . $separator . $p3 . $separator . $p4;
185 }
186
187 return $number;
188 }
189
190 /**
191 * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date
192 *
193 * @return \DateTime
194 *
195 * @example 04/13
196 */
197 public function creditCardExpirationDate($valid = true)
198 {
199 if ($valid) {
200 return $this->generator->dateTimeBetween('now', '36 months');
201 }
202
203 return $this->generator->dateTimeBetween('-36 months', '36 months');
204 }
205
206 /**
207 * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date
208 * @param string $expirationDateFormat
209 *
210 * @return string
211 *
212 * @example '04/13'
213 */
214 public function creditCardExpirationDateString($valid = true, $expirationDateFormat = null)
215 {
216 return $this->creditCardExpirationDate($valid)->format(null === $expirationDateFormat ? static::$expirationDateFormat : $expirationDateFormat);
217 }
218
219 /**
220 * @param bool $valid True (by default) to get a valid expiration date, false to get a maybe valid date
221 *
222 * @return array
223 */
224 public function creditCardDetails($valid = true)
225 {
226 $type = static::creditCardType();
227
228 return [
229 'type' => $type,
230 'number' => static::creditCardNumber($type),
231 'name' => $this->generator->name(),
232 'expirationDate' => $this->creditCardExpirationDateString($valid),
233 ];
234 }
235
236 /**
237 * International Bank Account Number (IBAN)
238 *
239 * @see http://en.wikipedia.org/wiki/International_Bank_Account_Number
240 *
241 * @param string $countryCode ISO 3166-1 alpha-2 country code
242 * @param string $prefix for generating bank account number of a specific bank
243 * @param int $length total length without country code and 2 check digits
244 *
245 * @return string
246 */
247 public static function iban($countryCode = null, $prefix = '', $length = null)
248 {
249 $countryCode = null === $countryCode ? self::randomKey(self::$ibanFormats) : strtoupper($countryCode);
250
251 $format = !isset(static::$ibanFormats[$countryCode]) ? null : static::$ibanFormats[$countryCode];
252
253 if ($length === null) {
254 if ($format === null) {
255 $length = 24;
256 } else {
257 $length = 0;
258
259 foreach ($format as $part) {
260 [$class, $groupCount] = $part;
261 $length += $groupCount;
262 }
263 }
264 }
265
266 if ($format === null) {
267 $format = [['n', $length]];
268 }
269
270 $expandedFormat = '';
271
272 foreach ($format as $item) {
273 [$class, $length] = $item;
274 $expandedFormat .= str_repeat($class, $length);
275 }
276
277 $result = $prefix;
278 $expandedFormat = substr($expandedFormat, strlen($result));
279
280 foreach (str_split($expandedFormat) as $class) {
281 switch ($class) {
282 default:
283 case 'c':
284 $result .= Miscellaneous::boolean() ? static::randomDigit() : strtoupper(static::randomLetter());
285
286 break;
287
288 case 'a':
289 $result .= strtoupper(static::randomLetter());
290
291 break;
292
293 case 'n':
294 $result .= static::randomDigit();
295
296 break;
297 }
298 }
299
300 $checksum = Iban::checksum($countryCode . '00' . $result);
301
302 return $countryCode . $checksum . $result;
303 }
304
305 /**
306 * Return the String of a SWIFT/BIC number
307 *
308 * @example 'RZTIAT22263'
309 *
310 * @see http://en.wikipedia.org/wiki/ISO_9362
311 *
312 * @return string Swift/Bic number
313 */
314 public static function swiftBicNumber()
315 {
316 return self::regexify('^([A-Z]){4}([A-Z]){2}([0-9A-Z]){2}([0-9A-Z]{3})?$');
317 }
318 }
319