Sample code for 30+ languages & platforms
SQL Server

Check PayPal Access Token Expiration

See more PayPal Examples

Checks to see if the PayPal access token expired.

Chilkat SQL Server Downloads

SQL Server
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls.
--
CREATE PROCEDURE ChilkatSample
AS
BEGIN
    DECLARE @hr int
    DECLARE @success int
    SELECT @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.

    DECLARE @json int
    EXEC @hr = sp_OACreate 'Chilkat.JsonObject', @json OUT
    IF @hr <> 0
    BEGIN
        PRINT 'Failed to create ActiveX component'
        RETURN
    END

    EXEC sp_OAMethod @json, 'LoadFile', @success OUT, 'qa_data/tokens/paypal.json'
    IF @success <> 1
      BEGIN

        PRINT 'Failed to load access key json file.'
        EXEC @hr = sp_OADestroy @json
        RETURN
      END

    -- Get the current date/time.
    DECLARE @dateTime int
    EXEC @hr = sp_OACreate 'Chilkat.CkDateTime', @dateTime OUT

    DECLARE @bLocalTime int
    SELECT @bLocalTime = 0
    DECLARE @dtNow int
    EXEC sp_OAMethod @dateTime, 'GetAsUnixTime', @dtNow OUT, @bLocalTime

    -- Get the access token create date/time
    DECLARE @dtCreate int
    EXEC sp_OAMethod @json, 'IntOf', @dtCreate OUT, 'tokenCreateTimeUtc'

    -- Find out how many seconds have elapsed.
    DECLARE @numSeconds int
    SELECT @numSeconds = @dtNow - @dtCreate

    -- Get the expires_in value from the JSON.
    DECLARE @expires_in int
    EXEC sp_OAMethod @json, 'IntOf', @expires_in OUT, 'expires_in'


    PRINT 'token age (in seconds) = ' + @numSeconds

    PRINT 'expires_in = ' + @expires_in

    -- If the token expired, or if it will expire in 5 minutes or less,
    -- get another token.
    IF @numSeconds < (@expires_in - 300)
      BEGIN

        PRINT 'The token is not yet expired.  No need to fetch another.'
        EXEC @hr = sp_OADestroy @json
        EXEC @hr = sp_OADestroy @dateTime
        RETURN
      END


    PRINT 'Time to fetch a new access token...'

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

    EXEC @hr = sp_OADestroy @json
    EXEC @hr = sp_OADestroy @dateTime


END
GO