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