Sample code for 30+ languages & platforms
PureBasic

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat PureBasic Downloads

PureBasic
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