PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.29.0
GiveWP – Donation Plugin and Fundraising Platform v2.29.0
4.16.7.2 4.16.7.1 4.16.7 4.16.6.1 4.16.6 4.16.5.1 4.16.5 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
AccessToken.php 3 years ago AuthorizationInjector.php 3 years ago PayPalHttpClient.php 3 years ago
PayPalHttpClient.php
54 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce\PayPalCheckoutSdk;
4
5 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
6 use PayPalCheckoutSdk\Core\FPTIInstrumentationInjector;
7 use PayPalCheckoutSdk\Core\GzipInjector;
8 use PayPalCheckoutSdk\Core\PayPalEnvironment;
9
10 /**
11 * Class PayPalHttpClient.
12 *
13 * This class extends PayPalCheckoutSdk\Core\PayPalHttpClient class.
14 * PayPalHttpClient from php sdk force access token refresh on each http request.
15 * We register AuthorizationInjector class to inject access token in http request header.
16 * AuthorizationInjector clas refresh access token only if expired.
17 *
18 * @since 2.25.0
19 */
20 class PayPalHttpClient extends \PayPalCheckoutSdk\Core\PayPalHttpClient
21 {
22 /**
23 * Class constructor.
24 *
25 * @since 2.25.0
26 */
27 public function __construct(PayPalEnvironment $environment, $refreshToken = null)
28 {
29 parent::__construct($environment);
30 $this->authInjector = $this->getAuthorizationInjector($environment, $refreshToken);
31 $this->addInjector($this->authInjector);
32 $this->addInjector(new GzipInjector());
33 $this->addInjector(new FPTIInstrumentationInjector());
34 }
35
36 /**
37 * Returns AuthorizationInjector.
38 *
39 * @since 2.25.0
40 */
41 private function getAuthorizationInjector($environment, $refreshToken): AuthorizationInjector
42 {
43 $merchant = give(MerchantDetail::class);
44 $authorizationInjector = new AuthorizationInjector($this, $environment, $refreshToken);
45
46 // Set access token if exists.
47 if ($merchant->accessToken) {
48 $authorizationInjector->accessToken = $merchant->toArray()['token'];
49 }
50
51 return $authorizationInjector;
52 }
53 }
54