PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.3.1
GiveWP – Donation Plugin and Fundraising Platform v3.3.1
4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 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 2 years ago ar_JO 2 years ago ar_SA 2 years ago at_AT 2 years ago bg_BG 2 years ago bn_BD 2 years ago cs_CZ 2 years ago da_DK 2 years ago de_AT 2 years ago de_CH 2 years ago de_DE 2 years ago el_CY 2 years ago el_GR 2 years ago en_AU 2 years ago en_CA 2 years ago en_GB 2 years ago en_HK 2 years ago en_IN 2 years ago en_NG 2 years ago en_NZ 2 years ago en_PH 2 years ago en_SG 2 years ago en_UG 2 years ago en_US 2 years ago en_ZA 2 years ago es_AR 2 years ago es_ES 2 years ago es_PE 2 years ago es_VE 2 years ago et_EE 2 years ago fa_IR 2 years ago fi_FI 2 years ago fr_BE 2 years ago fr_CA 2 years ago fr_CH 2 years ago fr_FR 2 years ago he_IL 2 years ago hr_HR 2 years ago hu_HU 2 years ago hy_AM 2 years ago id_ID 2 years ago is_IS 2 years ago it_CH 2 years ago it_IT 2 years ago ja_JP 2 years ago ka_GE 2 years ago kk_KZ 2 years ago ko_KR 2 years ago lt_LT 2 years ago lv_LV 2 years ago me_ME 2 years ago mn_MN 2 years ago ms_MY 2 years ago nb_NO 2 years ago ne_NP 2 years ago nl_BE 2 years ago nl_NL 2 years ago pl_PL 2 years ago pt_BR 2 years ago pt_PT 2 years ago ro_MD 2 years ago ro_RO 2 years ago ru_RU 2 years ago sk_SK 2 years ago sl_SI 2 years ago sr_Cyrl_RS 2 years ago sr_Latn_RS 2 years ago sr_RS 2 years ago sv_SE 2 years ago th_TH 2 years ago tr_TR 2 years ago uk_UA 2 years ago vi_VN 2 years ago zh_CN 2 years ago zh_TW 2 years ago Address.php 2 years ago Barcode.php 2 years ago Base.php 2 years ago Biased.php 2 years ago Color.php 2 years ago Company.php 2 years ago DateTime.php 2 years ago File.php 2 years ago HtmlLorem.php 2 years ago Image.php 2 years ago Internet.php 2 years ago Lorem.php 2 years ago Medical.php 2 years ago Miscellaneous.php 2 years ago Payment.php 2 years ago Person.php 2 years ago PhoneNumber.php 2 years ago Text.php 2 years ago UserAgent.php 2 years ago Uuid.php 2 years ago
Payment.php
319 lines
1 <?php
2 /**
3 * @license MIT
4 *
5 * Modified by impress-org on 23-January-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