Sample code for 30+ languages & platforms
PowerBuilder

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
integer li_Success
oleobject loo_Json
oleobject loo_DateTime
integer li_BLocalTime
integer li_DtNow
integer li_DtCreate
integer li_NumSeconds
integer li_Expires_in

li_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.

loo_Json = create oleobject
li_rc = loo_Json.ConnectToNewObject("Chilkat.JsonObject")
if li_rc < 0 then
    destroy loo_Json
    MessageBox("Error","Connecting to COM object failed")
    return
end if
li_Success = loo_Json.LoadFile("qa_data/tokens/paypal.json")
if li_Success <> 1 then
    Write-Debug "Failed to load access key json file."
    destroy loo_Json
    return
end if

// Get the current date/time.
loo_DateTime = create oleobject
li_rc = loo_DateTime.ConnectToNewObject("Chilkat.CkDateTime")

li_BLocalTime = 0
li_DtNow = loo_DateTime.GetAsUnixTime(li_BLocalTime)

// Get the access token create date/time
li_DtCreate = loo_Json.IntOf("tokenCreateTimeUtc")

// Find out how many seconds have elapsed.
li_NumSeconds = li_DtNow - li_DtCreate

// Get the expires_in value from the JSON.
li_Expires_in = loo_Json.IntOf("expires_in")

Write-Debug "token age (in seconds) = " + string(li_NumSeconds)
Write-Debug "expires_in = " + string(li_Expires_in)

// If the token expired, or if it will expire in 5 minutes or less,
// get another token.
if li_NumSeconds < (li_Expires_in - 300) then
    Write-Debug "The token is not yet expired.  No need to fetch another."
    destroy loo_Json
    destroy loo_DateTime
    return
end if

Write-Debug "Time to fetch a new access token..."

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


destroy loo_Json
destroy loo_DateTime