PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.10.1
GiveWP – Donation Plugin and Fundraising Platform v2.10.1
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 / stripe / stripe-php / lib / Util / RequestOptions.php
give / vendor / stripe / stripe-php / lib / Util Last commit date
AutoPagingIterator.php 6 years ago CaseInsensitiveArray.php 6 years ago DefaultLogger.php 6 years ago LoggerInterface.php 6 years ago RandomGenerator.php 6 years ago RequestOptions.php 6 years ago Set.php 6 years ago Util.php 6 years ago
RequestOptions.php
109 lines
1 <?php
2
3 namespace Stripe\Util;
4
5 use Stripe\Error;
6
7 class RequestOptions
8 {
9 /**
10 * @var array A list of headers that should be persisted across requests.
11 */
12 public static $HEADERS_TO_PERSIST = [
13 'Stripe-Account',
14 'Stripe-Version',
15 ];
16
17 public $headers;
18 public $apiKey;
19 public $apiBase;
20
21 public function __construct($key = null, $headers = [], $base = null)
22 {
23 $this->apiKey = $key;
24 $this->headers = $headers;
25 $this->apiBase = $base;
26 }
27
28 /**
29 * Unpacks an options array and merges it into the existing RequestOptions
30 * object.
31 * @param array|string|null $options a key => value array
32 *
33 * @return RequestOptions
34 */
35 public function merge($options)
36 {
37 $other_options = self::parse($options);
38 if ($other_options->apiKey === null) {
39 $other_options->apiKey = $this->apiKey;
40 }
41 if ($other_options->apiBase === null) {
42 $other_options->apiBase = $this->apiBase;
43 }
44 $other_options->headers = array_merge($this->headers, $other_options->headers);
45 return $other_options;
46 }
47
48 /**
49 * Discards all headers that we don't want to persist across requests.
50 */
51 public function discardNonPersistentHeaders()
52 {
53 foreach ($this->headers as $k => $v) {
54 if (!in_array($k, self::$HEADERS_TO_PERSIST)) {
55 unset($this->headers[$k]);
56 }
57 }
58 }
59
60 /**
61 * Unpacks an options array into an RequestOptions object
62 * @param array|string|null $options a key => value array
63 *
64 * @return RequestOptions
65 */
66 public static function parse($options)
67 {
68 if ($options instanceof self) {
69 return $options;
70 }
71
72 if (is_null($options)) {
73 return new RequestOptions(null, [], null);
74 }
75
76 if (is_string($options)) {
77 return new RequestOptions($options, [], null);
78 }
79
80 if (is_array($options)) {
81 $headers = [];
82 $key = null;
83 $base = null;
84 if (array_key_exists('api_key', $options)) {
85 $key = $options['api_key'];
86 }
87 if (array_key_exists('idempotency_key', $options)) {
88 $headers['Idempotency-Key'] = $options['idempotency_key'];
89 }
90 if (array_key_exists('stripe_account', $options)) {
91 $headers['Stripe-Account'] = $options['stripe_account'];
92 }
93 if (array_key_exists('stripe_version', $options)) {
94 $headers['Stripe-Version'] = $options['stripe_version'];
95 }
96 if (array_key_exists('api_base', $options)) {
97 $base = $options['api_base'];
98 }
99 return new RequestOptions($key, $headers, $base);
100 }
101
102 $message = 'The second argument to Stripe API method calls is an '
103 . 'optional per-request apiKey, which must be a string, or '
104 . 'per-request options, which must be an array. (HINT: you can set '
105 . 'a global apiKey by "Stripe::setApiKey(<apiKey>)")';
106 throw new Error\Api($message);
107 }
108 }
109