PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.4
GiveWP – Donation Plugin and Fundraising Platform v2.9.4
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 / src / PaymentGateways / PayPalCommerce / Models / MerchantDetail.php
give / src / PaymentGateways / PayPalCommerce / Models Last commit date
MerchantDetail.php 5 years ago PayPalOrder.php 5 years ago PayPalPayment.php 5 years ago WebhookConfig.php 5 years ago
MerchantDetail.php
198 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce\Models;
4
5 use Give\PaymentGateways\PayPalCommerce\PayPalClient;
6 use InvalidArgumentException;
7
8 /**
9 * Class MerchantDetail
10 * @since 2.9.0
11 * @package Give\PaymentGateways\PayPalCommerce
12 *
13 */
14 class MerchantDetail {
15 /**
16 * PayPal merchant Id (email address)
17 *
18 * @since 2.9.0
19 *
20 * @var null|string
21 */
22 public $merchantId = null;
23
24 /**
25 * PayPal merchant id
26 *
27 * @since 2.9.0
28 *
29 * @var null|string
30 */
31 public $merchantIdInPayPal = null;
32
33 /**
34 * Client id.
35 *
36 * @since 2.9.0
37 *
38 * @var null |string
39 */
40 public $clientId = null;
41
42 /**
43 * Client Secret
44 *
45 * @since 2.9.0
46 *
47 * @var null|string
48 */
49 public $clientSecret = null;
50
51 /**
52 * Access token.
53 *
54 * @since 2.9.0
55 *
56 * @var null|string
57 */
58 public $accessToken = null;
59
60 /**
61 * Whether or not the connected account is ready to process donations.
62 *
63 * @since 2.9.0
64 *
65 * @var bool
66 */
67 public $accountIsReady = true;
68
69 /**
70 * Whether or not the account can make custom payments (i.e Advanced Fields & PPCP)
71 *
72 * @since 2.9.0
73 *
74 * @var bool
75 */
76 public $supportsCustomPayments;
77
78 /**
79 * PayPal account accountCountry.
80 *
81 * @since 2.9.0
82 *
83 * @var bool
84 */
85 public $accountCountry;
86
87 /**
88 * Access token.
89 *
90 * @since 2.9.0
91 *
92 * @var array
93 */
94 private $tokenDetails = null;
95
96 /**
97 * Return array of merchant details.
98 *
99 * @sicne 2.9.0
100 *
101 * @return array
102 */
103 public function toArray() {
104 return [
105 'merchantId' => $this->merchantId,
106 'merchantIdInPayPal' => $this->merchantIdInPayPal,
107 'clientId' => $this->clientId,
108 'clientSecret' => $this->clientSecret,
109 'token' => $this->tokenDetails,
110 'accountIsReady' => $this->accountIsReady,
111 'supportsCustomPayments' => $this->supportsCustomPayments,
112 'accountCountry' => $this->accountCountry,
113 ];
114 }
115
116 /**
117 * Make MerchantDetail object from array.
118 *
119 * @since 2.9.0
120 *
121 * @param array $merchantDetails
122 *
123 * @return MerchantDetail
124 */
125 public static function fromArray( $merchantDetails ) {
126 $obj = new static();
127
128 if ( ! $merchantDetails ) {
129 return $obj;
130 }
131
132 $obj->validate( $merchantDetails );
133 $obj->setupProperties( $merchantDetails );
134
135 return $obj;
136 }
137
138 /**
139 * Setup properties from array.
140 *
141 * @since 2.9.0
142 *
143 * @param $merchantDetails
144 *
145 */
146 private function setupProperties( $merchantDetails ) {
147 $this->merchantId = $merchantDetails['merchantId'];
148 $this->merchantIdInPayPal = $merchantDetails['merchantIdInPayPal'];
149
150 $this->clientId = $merchantDetails['clientId'];
151 $this->clientSecret = $merchantDetails['clientSecret'];
152 $this->tokenDetails = $merchantDetails['token'];
153 $this->accountIsReady = $merchantDetails['accountIsReady'];
154 $this->supportsCustomPayments = $merchantDetails['supportsCustomPayments'];
155 $this->accountCountry = $merchantDetails['accountCountry'];
156 $this->accessToken = $this->tokenDetails['accessToken'];
157 }
158
159 /**
160 * Validate merchant details.
161 *
162 * @since 2.9.0
163 *
164 * @param array $merchantDetails
165 */
166 private function validate( $merchantDetails ) {
167 $required = [
168 'merchantId',
169 'merchantIdInPayPal',
170 'clientId',
171 'clientSecret',
172 'token',
173 'accountIsReady',
174 'supportsCustomPayments',
175 'accountCountry',
176 ];
177
178 if ( array_diff( $required, array_keys( $merchantDetails ) ) ) {
179 throw new InvalidArgumentException(
180 esc_html__( 'To create a MerchantDetail object, please provide the following: ' . implode( ', ', $required ), 'give' )
181 );
182 }
183 }
184
185 /**
186 * Get refresh token code.
187 *
188 * @since 2.9.0
189 *
190 * @param array $tokenDetails
191 *
192 * @return mixed
193 */
194 public function setTokenDetails( $tokenDetails ) {
195 $this->tokenDetails = array_merge( $this->tokenDetails, $tokenDetails );
196 }
197 }
198