Sample code for 30+ languages & platforms
DataFlex

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat DataFlex Downloads

DataFlex
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