PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.9.1
GiveWP – Donation Plugin and Fundraising Platform v2.9.1
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 / RefreshToken.php
give / src / PaymentGateways / PayPalCommerce Last commit date
DataTransferObjects 5 years ago Models 5 years ago Repositories 5 years ago Webhooks 5 years ago AccountAdminNotices.php 5 years ago AdminSettingFields.php 5 years ago AdvancedCardFields.php 5 years ago AjaxRequestHandler.php 5 years ago DonationDetailsPage.php 5 years ago DonationProcessor.php 5 years ago PayPalClient.php 5 years ago PayPalCommerce.php 5 years ago RefreshToken.php 5 years ago RefundPaymentHandler.php 5 years ago ScriptLoader.php 5 years ago Utils.php 5 years ago onBoardingRedirectHandler.php 5 years ago
RefreshToken.php
99 lines
1 <?php
2
3 namespace Give\PaymentGateways\PayPalCommerce;
4
5
6 use Give\PaymentGateways\PayPalCommerce\Models\MerchantDetail;
7 use Give\PaymentGateways\PayPalCommerce\Repositories\MerchantDetails;
8 use Give\PaymentGateways\PayPalCommerce\Repositories\PayPalAuth;
9
10 /**
11 * Class RefreshToken
12 *
13 * @since 2.9.0
14 */
15 class RefreshToken {
16 /**
17 * @since 2.9.0
18 *
19 * @var MerchantDetails
20 */
21 private $detailsRepository;
22
23 /**
24 * @since 2.9.0
25 *
26 * @var PayPalAuth
27 */
28 private $payPalAuth;
29
30 /**
31 * RefreshToken constructor.
32 *
33 * @since 2.9.0
34 *
35 * @param MerchantDetails $detailsRepository
36 * @param PayPalAuth $payPalAuth
37 */
38 public function __construct( MerchantDetails $detailsRepository, PayPalAuth $payPalAuth ) {
39 $this->detailsRepository = $detailsRepository;
40 $this->payPalAuth = $payPalAuth;
41 }
42
43 /**
44 * Return cron json name which uses to refresh token.
45 *
46 * @since 2.9.0
47 *
48 * @return string
49 */
50 private function getCronJobHookName() {
51 return 'give_paypal_commerce_refresh_token';
52 }
53
54 /**
55 * Register cron job to refresh access token.
56 * Note: only for internal use.
57 *
58 * @since 2.9.0
59 *
60 * @param string $tokenExpires
61 *
62 */
63 public function registerCronJobToRefreshToken( $tokenExpires ) {
64 wp_schedule_single_event(
65 time() + ( $tokenExpires - 1800 ), // Refresh token before half hours of expires date.
66 $this->getCronJobHookName()
67 );
68 }
69
70 /**
71 * Delete cron job which refresh access token.
72 * Note: only for internal use.
73 *
74 * @since 2.9.0
75 *
76 */
77 public function deleteRefreshTokenCronJob() {
78 wp_clear_scheduled_hook( $this->getCronJobHookName() );
79 }
80
81 /**
82 * Refresh token.
83 * Note: only for internal use
84 *
85 * @since 2.9.0
86 */
87 public function refreshToken() {
88 /* @var MerchantDetail $merchant */
89 $merchant = give( MerchantDetail::class );
90
91 $tokenDetails = $this->payPalAuth->getTokenFromClientCredentials( $merchant->clientId, $merchant->clientSecret );
92
93 $merchant->setTokenDetails( $tokenDetails );
94 $this->detailsRepository->save( $merchant );
95
96 $this->registerCronJobToRefreshToken( $tokenDetails['expiresIn'] );
97 }
98 }
99