PureBasic
PureBasic
Check PayPal Access Token Expiration
See more PayPal Examples
Checks to see if the PayPal access token expired.Chilkat PureBasic Downloads
IncludeFile "CkDateTime.pb"
IncludeFile "CkJsonObject.pb"
Procedure ChilkatExample()
success.i = 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.
json.i = CkJsonObject::ckCreate()
If json.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
success = CkJsonObject::ckLoadFile(json,"qa_data/tokens/paypal.json")
If success <> 1
Debug "Failed to load access key json file."
CkJsonObject::ckDispose(json)
ProcedureReturn
EndIf
; Get the current date/time.
dateTime.i = CkDateTime::ckCreate()
If dateTime.i = 0
Debug "Failed to create object."
ProcedureReturn
EndIf
bLocalTime.i = 0
dtNow.i = CkDateTime::ckGetAsUnixTime(dateTime,bLocalTime)
; Get the access token create date/time
dtCreate.i = CkJsonObject::ckIntOf(json,"tokenCreateTimeUtc")
; Find out how many seconds have elapsed.
numSeconds.i = dtNow - dtCreate
; Get the expires_in value from the JSON.
expires_in.i = CkJsonObject::ckIntOf(json,"expires_in")
Debug "token age (in seconds) = " + Str(numSeconds)
Debug "expires_in = " + Str(expires_in)
; If the token expired, or if it will expire in 5 minutes or less,
; get another token.
If numSeconds < (expires_in - 300)
Debug "The token is not yet expired. No need to fetch another."
CkJsonObject::ckDispose(json)
CkDateTime::ckDispose(dateTime)
ProcedureReturn
EndIf
Debug "Time to fetch a new access token..."
; Get another token..
; See the example at Get PayPal OAuth2 Token
; to get another token..
CkJsonObject::ckDispose(json)
CkDateTime::ckDispose(dateTime)
ProcedureReturn
EndProcedure