Sample code for 30+ languages & platforms
Xbase++

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat Xbase++ Downloads

Xbase++
LOCAL nSuccess
LOCAL oJson
LOCAL oDateTime
LOCAL nBLocalTime
LOCAL nDtNow
LOCAL nDtCreate
LOCAL nNumSeconds
LOCAL nExpires_in

nSuccess := 0

//  Note: Requires Chilkat v9.5.0.64 or greater.

//  This requires the Chilkat API to have been previously unlocked.
//  See Global Unlock Sample for sample code.

//  In the example linked here: PayPal OAuth2 Token,
//  we fetched a PayPal access token and saved it to a JSON file.
//  We also recorded the current date/time.
//  Load this JSON file and compare the current date/time with the fetch date/time
//  and the "expires_in" value to see if the token is expired.

oJson := CreateObject("Chilkat.JsonObject")
nSuccess := oJson:LoadFile("qa_data/tokens/paypal.json")
IF (nSuccess != 1)
    ? "Failed to load access key json file."
    oJson:destroy()
    RETURN
ENDIF

//  Get the current date/time.
oDateTime := CreateObject("Chilkat.CkDateTime")
nBLocalTime := 0
nDtNow := oDateTime:GetAsUnixTime(nBLocalTime)

//  Get the access token create date/time
nDtCreate := oJson:IntOf("tokenCreateTimeUtc")

//  Find out how many seconds have elapsed.
nNumSeconds := nDtNow - nDtCreate

//  Get the expires_in value from the JSON.
nExpires_in := oJson:IntOf("expires_in")

? "token age (in seconds) = " + Str(nNumSeconds)
? "expires_in = " + Str(nExpires_in)

//  If the token expired, or if it will expire in 5 minutes or less,
//  get another token.
IF (nNumSeconds < (nExpires_in - 300))
    ? "The token is not yet expired.  No need to fetch another."
    oJson:destroy()
    oDateTime:destroy()
    RETURN
ENDIF

? "Time to fetch a new access token..."

//  Get another token..
//  See the example at Get PayPal OAuth2 Token
//  to get another token..

oJson:destroy()
oDateTime:destroy()