Sample code for 30+ languages & platforms
Tcl

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat Tcl Downloads

Tcl

load ./chilkat.dll

set success 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.

set json [new_CkJsonObject]

set success [CkJsonObject_LoadFile $json "qa_data/tokens/paypal.json"]
if {$success != 1} then {
    puts "Failed to load access key json file."
    delete_CkJsonObject $json
    exit
}

# Get the current date/time.
set dateTime [new_CkDateTime]

set bLocalTime 0
set dtNow [CkDateTime_GetAsUnixTime $dateTime $bLocalTime]

# Get the access token create date/time
set dtCreate [CkJsonObject_IntOf $json "tokenCreateTimeUtc"]

# Find out how many seconds have elapsed.
set numSeconds [expr $dtNow - $dtCreate]

# Get the expires_in value from the JSON.
set expires_in [CkJsonObject_IntOf $json "expires_in"]

puts "token age (in seconds) = $numSeconds"
puts "expires_in = $expires_in"

# If the token expired, or if it will expire in 5 minutes or less,
# get another token.
if {$numSeconds < [expr $expires_in - 300]} then {
    puts "The token is not yet expired.  No need to fetch another."
    delete_CkJsonObject $json
    delete_CkDateTime $dateTime
    exit
}

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

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

delete_CkJsonObject $json
delete_CkDateTime $dateTime