Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Yapily - Get Application Self
See more Yapily Examples
Get the information about the institutions configured in your applicationChilkat 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.Http,
Chilkat.StringBuilder,
Chilkat.JsonObject;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
http: THttp;
sbResponseBody: TStringBuilder;
jResp: TJsonObject;
respStatusCode: Integer;
strVal: string;
id: string;
fullName: string;
environmentType: string;
credentialsType: string;
j: Integer;
count_j: Integer;
displayName: string;
countryCode2: string;
source: string;
v_type: string;
uuid: string;
name: string;
active: Boolean;
created: string;
updated: string;
i: Integer;
count_i: Integer;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http := THttp.Create;
// Implements the following CURL command:
// curl -i -X GET \
// -u <username>:<password> \
// https://api.yapily.com/me
// Use the following online tool to generate HTTP code from a CURL command
// Convert a cURL Command to HTTP Source Code
http.Login := '<username>';
http.Password := '<password>';
sbResponseBody := TStringBuilder.Create;
success := http.QuickGetSb('https://api.yapily.com/me',sbResponseBody);
if (success = False) then
begin
WriteLn(http.LastErrorText);
Exit;
end;
jResp := TJsonObject.Create;
jResp.LoadSb(sbResponseBody);
jResp.EmitCompact := False;
WriteLn('Response Body:');
WriteLn(jResp.Emit());
respStatusCode := http.LastStatus;
WriteLn('Response Status Code = ' + respStatusCode);
if (respStatusCode >= 400) then
begin
WriteLn('Response Header:');
WriteLn(http.LastHeader);
WriteLn('Failed.');
Exit;
end;
// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)
// {
// "uuid": "64949de6-6510-4d70-9500-d4aa094c506c",
// "name": "APPLICATION NAME",
// "active": true,
// "authCallbacks": [
// "https://display-parameters.com/"
// ],
// "institutions": [
// {
// "id": "modelo-sandbox",
// "name": "Modelo Sandbox",
// "fullName": "Modelo Sandbox",
// "countries": [
// {
// "displayName": "United Kingdom",
// "countryCode2": "GB"
// }
// ],
// "environmentType": "SANDBOX",
// "credentialsType": "OPEN_BANKING_UK_AUTO",
// "media": [
// {
// "source": "https://images.yapily.com/image/ce2bfdbf-1ae2-4919-ab7b-e8b3d5e93b36?size=0",
// "type": "icon"
// },
// {
// "source": "https://images.yapily.com/image/ca502f24-d6df-4785-b4b8-1034b100af77?size=0",
// "type": "logo"
// }
// ],
// "features": [
// "INITIATE_SINGLE_PAYMENT_SORTCODE",
// "CREATE_DOMESTIC_PERIODIC_PAYMENT",
// "ACCOUNT_REQUEST_DETAILS",
// "ACCOUNT_STATEMENT_FILE",
// "CREATE_SINGLE_PAYMENT_SORTCODE",
// "ACCOUNTS",
// "CREATE_DOMESTIC_SCHEDULED_PAYMENT",
// "ACCOUNT_PERIODIC_PAYMENTS",
// "CREATE_DOMESTIC_SINGLE_PAYMENT",
// "INITIATE_DOMESTIC_PERIODIC_PAYMENT",
// "EXISTING_PAYMENTS_DETAILS",
// "INITIATE_BULK_PAYMENT",
// "EXISTING_PAYMENT_INITIATION_DETAILS",
// "ACCOUNT_DIRECT_DEBITS",
// "ACCOUNT_TRANSACTIONS",
// "INITIATE_DOMESTIC_SINGLE_PAYMENT",
// "PERIODIC_PAYMENT_FREQUENCY_EXTENDED",
// "CREATE_INTERNATIONAL_SINGLE_PAYMENT",
// "ACCOUNT_SCHEDULED_PAYMENTS",
// "ACCOUNT",
// "ACCOUNT_STATEMENTS",
// "ACCOUNT_TRANSACTIONS_WITH_MERCHANT",
// "CREATE_BULK_PAYMENT",
// "ACCOUNT_BALANCES",
// "INITIATE_INTERNATIONAL_SINGLE_PAYMENT",
// "INITIATE_DOMESTIC_SCHEDULED_PAYMENT",
// "ACCOUNT_BENEFICIARIES",
// "IDENTITY",
// "ACCOUNT_STATEMENT",
// "INITIATE_ACCOUNT_REQUEST"
// ]
// }
// ],
// "media": [
// ],
// "created": "2020-11-09T10:05:29.897+0000",
// "updated": "2021-04-14T12:51:07.419+0000"
// }
// Sample code for parsing the JSON response...
// Use the following online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
uuid := jResp.StringOf('uuid');
name := jResp.StringOf('name');
active := jResp.BoolOf('active');
created := jResp.StringOf('created');
updated := jResp.StringOf('updated');
i := 0;
count_i := jResp.SizeOfArray('authCallbacks');
while i < count_i do
begin
jResp.I := i;
strVal := jResp.StringOf('authCallbacks[i]');
i := i + 1;
end;
i := 0;
count_i := jResp.SizeOfArray('institutions');
while i < count_i do
begin
jResp.I := i;
id := jResp.StringOf('institutions[i].id');
name := jResp.StringOf('institutions[i].name');
fullName := jResp.StringOf('institutions[i].fullName');
environmentType := jResp.StringOf('institutions[i].environmentType');
credentialsType := jResp.StringOf('institutions[i].credentialsType');
j := 0;
count_j := jResp.SizeOfArray('institutions[i].countries');
while j < count_j do
begin
jResp.J := j;
displayName := jResp.StringOf('institutions[i].countries[j].displayName');
countryCode2 := jResp.StringOf('institutions[i].countries[j].countryCode2');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('institutions[i].media');
while j < count_j do
begin
jResp.J := j;
source := jResp.StringOf('institutions[i].media[j].source');
v_type := jResp.StringOf('institutions[i].media[j].type');
j := j + 1;
end;
j := 0;
count_j := jResp.SizeOfArray('institutions[i].features');
while j < count_j do
begin
jResp.J := j;
strVal := jResp.StringOf('institutions[i].features[j]');
j := j + 1;
end;
i := i + 1;
end;
i := 0;
count_i := jResp.SizeOfArray('media');
while i < count_i do
begin
jResp.I := i;
i := i + 1;
end;
http.Free;
sbResponseBody.Free;
jResp.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.