diff --git a/lib/PayPal/Auth/OAuthTokenCredential.php b/lib/PayPal/Auth/OAuthTokenCredential.php index f1d9e60..30749d6 100644 --- a/lib/PayPal/Auth/OAuthTokenCredential.php +++ b/lib/PayPal/Auth/OAuthTokenCredential.php @@ -125,6 +125,10 @@ class OAuthTokenCredential extends PayPalResourceModel */ public function getAccessToken($config) { + // Check if we already have accessToken in Cache + if ($this->accessToken && (time() - $this->tokenCreateTime) < ($this->tokenExpiresIn - self::$expiryBufferTime)) { + return $this->accessToken; + } // Check for persisted data first $token = AuthorizationCache::pull($config, $this->clientId); if ($token) { diff --git a/sample/doc/assets/behavior.js b/sample/doc/assets/behavior.js index ec4deaa..9b43888 100644 --- a/sample/doc/assets/behavior.js +++ b/sample/doc/assets/behavior.js @@ -962,7 +962,77 @@ f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3 "pageTitle": "payments/CreateFuturePayment", "title": "CreateFuturePayment" }, - "depth": 2 + "depth": 2, + "outline": [ + { + "type": "heading", + "data": { + "level": 1, + "title": "Create Payment using PayPal as payment method", + "slug": "create-payment-using-paypal-as-payment-method" + }, + "depth": 1, + "children": [ + { + "type": "heading", + "data": { + "level": 3, + "title": "Payer", + "slug": "payer" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Amount", + "slug": "amount" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Transaction", + "slug": "transaction" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Redirect urls", + "slug": "redirect-urls" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Payment", + "slug": "payment" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Get Refresh Token", + "slug": "get-refresh-token" + }, + "depth": 3 + }, { + "type": "heading", + "data": { + "level": 3, + "title": "Create Future Payment", + "slug": "create-future-payment" + }, + "depth": 3 + } + ] + } + ] }, { "type": "file", "data": { diff --git a/sample/doc/payments/CreateFuturePayment.html b/sample/doc/payments/CreateFuturePayment.html index 75f33bb..0fb1e81 100644 --- a/sample/doc/payments/CreateFuturePayment.html +++ b/sample/doc/payments/CreateFuturePayment.html @@ -34,7 +34,7 @@ the above types and intent set to 'sale'
authorization code from mobile sdk
Client Metadata id from mobile sdk +
You need to get a permanent refresh token from the authorization code, retrieved from the mobile sdk.
authorization code from mobile sdk
Client Metadata id from mobile sdk For more information look for PayPal-Client-Metadata-Id in https://developer.paypal.com/docs/api/#authentication--headers
Exchange authorization_code for long living refresh token. You should store @@ -47,7 +47,7 @@ url to which the buyer must be redirected to for payment approval Please note that currently future payments works only with PayPal as a funding instrument.
NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
NOTE: PLEASE DO NOT USE RESULTPRINTER CLASS IN YOUR ORIGINAL CODE. FOR SAMPLE ONLY
Get Refresh Token
-You need to get a permanent refresh token from the authorization code, retrieved from the mobile sdk.