PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.33.4
GiveWP – Donation Plugin and Fundraising Platform v2.33.4
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 / src / PaymentGateways / PayPalCommerce / PayPalCheckoutSdk / PayPalHttpClient.php
give / src / PaymentGateways / PayPalCommerce / PayPalCheckoutSdk Last commit date
Requests 2 years ago AccessToken.php 3 years ago AuthorizationInjector.php 2 years ago PayPalHttpClient.php 2 years ago
PayPalHttpClient.php
60 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce\PayPalCheckoutSdk;
4
5 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
6 use PayPalCheckoutSdk\Core\PayPalEnvironment;
7
8 /**
9 * Class PayPalHttpClient.
10 *
11 * This class extends PayPalCheckoutSdk\Core\PayPalHttpClient class.
12 * PayPalHttpClient from php sdk force access token refresh on each http request.
13 * We register AuthorizationInjector class to inject access token in http request header.
14 * AuthorizationInjector clas refresh access token only if expired.
15 *
16 * @since 2.32.0 Remove unnecessary properties.
17 * @since 2.25.0
18 */
19 class PayPalHttpClient extends \PayPalCheckoutSdk\Core\PayPalHttpClient
20 {
21 /**
22 * Class constructor.
23 *
24 * @since 2.25.0
25 */
26 public function __construct(PayPalEnvironment $environment)
27 {
28 parent::__construct($environment);
29
30 // Remove existing AuthorizationInjector.
31 foreach ($this->injectors as $index => $injector) {
32 if ($injector instanceof \PayPalCheckoutSdk\Core\AuthorizationInjector) {
33 unset($this->injectors[$index]);
34 }
35 }
36
37 // Add custom AuthorizationInjector.
38 $this->authInjector = $this->getAuthorizationInjector($environment);
39 $this->addInjector($this->authInjector);
40 }
41
42 /**
43 * Returns AuthorizationInjector.
44 *
45 * @since 2.25.0
46 */
47 private function getAuthorizationInjector($environment): AuthorizationInjector
48 {
49 $merchant = give(MerchantDetail::class);
50 $authorizationInjector = new AuthorizationInjector();
51
52 // Set access token if exists.
53 if ($merchant->accessToken) {
54 $authorizationInjector->accessToken = AccessToken::fromArray($merchant->toArray()['token']);
55 }
56
57 return $authorizationInjector;
58 }
59 }
60