DataFlex
DataFlex
Check PayPal Access Token Expiration
See more PayPal Examples
Checks to see if the PayPal access token expired.Chilkat DataFlex Downloads
Use ChilkatAx-win32.pkg
Procedure Test
Boolean iSuccess
Handle hoJson
Handle hoDateTime
Boolean iBLocalTime
Integer iDtNow
Integer iDtCreate
Integer iNumSeconds
Integer iExpires_in
Move False To iSuccess
// 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.
Get Create (RefClass(cComChilkatJsonObject)) To hoJson
If (Not(IsComObjectCreated(hoJson))) Begin
Send CreateComObject of hoJson
End
Get ComLoadFile Of hoJson "qa_data/tokens/paypal.json" To iSuccess
If (iSuccess <> True) Begin
Showln "Failed to load access key json file."
Procedure_Return
End
// Get the current date/time.
Get Create (RefClass(cComCkDateTime)) To hoDateTime
If (Not(IsComObjectCreated(hoDateTime))) Begin
Send CreateComObject of hoDateTime
End
Move False To iBLocalTime
Get ComGetAsUnixTime Of hoDateTime iBLocalTime To iDtNow
// Get the access token create date/time
Get ComIntOf Of hoJson "tokenCreateTimeUtc" To iDtCreate
// Find out how many seconds have elapsed.
Move (iDtNow - iDtCreate) To iNumSeconds
// Get the expires_in value from the JSON.
Get ComIntOf Of hoJson "expires_in" To iExpires_in
Showln "token age (in seconds) = " iNumSeconds
Showln "expires_in = " iExpires_in
// If the token expired, or if it will expire in 5 minutes or less,
// get another token.
If (iNumSeconds < (iExpires_in - 300)) Begin
Showln "The token is not yet expired. No need to fetch another."
Procedure_Return
End
Showln "Time to fetch a new access token..."
// Get another token..
// See the example at Get PayPal OAuth2 Token
// to get another token..
End_Procedure