SQL Server
SQL Server
Check PayPal Access Token Expiration
See more PayPal Examples
Checks to see if the PayPal access token expired.Chilkat SQL Server Downloads
-- 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