Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Check PayPal Access Token Expiration
See more PayPal Examples
Checks to see if the PayPal access token expired.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.CkDateTime,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
json: TJsonObject;
dateTime: TCkDateTime;
bLocalTime: Boolean;
dtNow: Integer;
dtCreate: Integer;
numSeconds: Integer;
expires_in: Integer;
begin
success := False;
// 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 := TJsonObject.Create;
success := json.LoadFile('qa_data/tokens/paypal.json');
if (success <> True) then
begin
WriteLn('Failed to load access key json file.');
Exit;
end;
// Get the current date/time.
dateTime := TCkDateTime.Create;
bLocalTime := False;
dtNow := dateTime.GetAsUnixTime(bLocalTime);
// Get the access token create date/time
dtCreate := json.IntOf('tokenCreateTimeUtc');
// Find out how many seconds have elapsed.
numSeconds := dtNow - dtCreate;
// Get the expires_in value from the JSON.
expires_in := json.IntOf('expires_in');
WriteLn('token age (in seconds) = ' + numSeconds);
WriteLn('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)) then
begin
WriteLn('The token is not yet expired. No need to fetch another.');
Exit;
end;
WriteLn('Time to fetch a new access token...');
// Get another token..
// See the example at Get PayPal OAuth2 Token
// to get another token..
json.Free;
dateTime.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.