Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
CardConnect Inquire
See more CardConnect Examples
Demonstrates how to get information for an individual transaction, including its settlement status (setlstat) and the response codes from the initial authorization.See https://developer.cardconnect.com/cardconnect-api?lang=json#inquire
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.JsonObject,
Chilkat.Http;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
url: string;
responseStr: string;
jsonResp: TJsonObject;
amount: string;
resptext: string;
setlstat: string;
capturedate: string;
acctid: string;
respcode: string;
entrymode: string;
merchid: string;
token: string;
authcode: string;
respproc: string;
authdate: string;
bintype: string;
profileid: string;
lastfour: string;
name: string;
currency: string;
retref: string;
respstat: string;
account: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
http.BasicAuth := True;
http.Login := 'API_USERNAME';
http.Password := 'API_PASSWORD';
url := 'https://<site>.cardconnect.com:<port>/cardconnect/rest/inquire/<retref>/<merchid>';
responseStr := http.QuickGetStr(url);
if (http.LastMethodSuccess = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
// A response status of 200 indicates potential success. The JSON response body
// must be examined to determine if it was truly successful or an error.
WriteLn('response status code = ' + http.LastStatus);
jsonResp := TJsonObject.Create;
jsonResp.Load(responseStr);
jsonResp.EmitCompact := False;
WriteLn('response JSON:');
WriteLn(jsonResp.Emit());
// A successful response looks like this:
// {
// "amount": "0.00",
// "resptext": "Approval",
// "setlstat": "Voided",
// "capturedate": "20190422180044",
// "acctid": "1",
// "respcode": "00",
// "entrymode": "ECommerce",
// "merchid": "MERCHANT_ID",
// "token": "9418594164541111",
// "authcode": "PPS158",
// "respproc": "FNOR",
// "authdate": "20190422",
// "bintype": "",
// "profileid": "16618402968441604028",
// "lastfour": "1111",
// "name": "TOM JONES",
// "currency": "USD",
// "retref": "112989260941",
// "respstat": "A",
// "account": "9418594164541111"
// }
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
amount := jsonResp.StringOf('amount');
resptext := jsonResp.StringOf('resptext');
setlstat := jsonResp.StringOf('setlstat');
capturedate := jsonResp.StringOf('capturedate');
acctid := jsonResp.StringOf('acctid');
respcode := jsonResp.StringOf('respcode');
entrymode := jsonResp.StringOf('entrymode');
merchid := jsonResp.StringOf('merchid');
token := jsonResp.StringOf('token');
authcode := jsonResp.StringOf('authcode');
respproc := jsonResp.StringOf('respproc');
authdate := jsonResp.StringOf('authdate');
bintype := jsonResp.StringOf('bintype');
profileid := jsonResp.StringOf('profileid');
lastfour := jsonResp.StringOf('lastfour');
name := jsonResp.StringOf('name');
currency := jsonResp.StringOf('currency');
retref := jsonResp.StringOf('retref');
respstat := jsonResp.StringOf('respstat');
account := jsonResp.StringOf('account');
http.Free;
jsonResp.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.