Sample code for 30+ languages & platforms
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

Pascal (Lazarus/Delphi)
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.