PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.30.0
GiveWP – Donation Plugin and Fundraising Platform v2.30.0
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 3 years ago AccessToken.php 3 years ago AuthorizationInjector.php 3 years ago PayPalHttpClient.php 3 years ago
PayPalHttpClient.php
59 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.25.0
17 */
18 class PayPalHttpClient extends \PayPalCheckoutSdk\Core\PayPalHttpClient
19 {
20 /**
21 * Class constructor.
22 *
23 * @since 2.25.0
24 */
25 public function __construct(PayPalEnvironment $environment, $refreshToken = null)
26 {
27 parent::__construct($environment);
28
29 // Remove existing AuthorizationInjector.
30 foreach ($this->injectors as $index => $injector ) {
31 if ($injector instanceof \PayPalCheckoutSdk\Core\AuthorizationInjector) {
32 unset($this->injectors[$index]);
33 }
34 }
35
36 // Add custom AuthorizationInjector.
37 $this->authInjector = $this->getAuthorizationInjector($environment, $refreshToken);
38 $this->addInjector($this->authInjector);
39 }
40
41 /**
42 * Returns AuthorizationInjector.
43 *
44 * @since 2.25.0
45 */
46 private function getAuthorizationInjector($environment, $refreshToken): AuthorizationInjector
47 {
48 $merchant = give(MerchantDetail::class);
49 $authorizationInjector = new AuthorizationInjector($this, $environment, $refreshToken);
50
51 // Set access token if exists.
52 if ($merchant->accessToken) {
53 $authorizationInjector->accessToken = AccessToken::fromArray($merchant->toArray()['token']);
54 }
55
56 return $authorizationInjector;
57 }
58 }
59