Delphi ActiveX Stripe: List all Events

Back to Index

List events, going back up to 30 days.

Documentation: https://stripe.com/docs/api/curl#list_events

CURL Command

curl https://api.stripe.com/v1/events?limit=3 \
   -u STRIPE_SECRET_KEY: \
   -G

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
sbResponseBody: TChilkatStringBuilder;
jsonResponse: TChilkatJsonObject;
object: WideString;
url: WideString;
has_more: Integer;
i: Integer;
count_i: Integer;
id: WideString;
api_version: Integer;
created: Integer;
dataObjectId: WideString;
dataObjectObject: WideString;
dataObjectAmount: Integer;
dataObjectCreated: Integer;
dataObjectCurrency: WideString;
dataObjectInterval: WideString;
dataObjectInterval_count: Integer;
dataObjectLivemode: Integer;
dataObjectName: WideString;
dataObjectStatement_descriptor: Integer;
dataObjectTrial_period_days: Integer;
livemode: Integer;
pending_webhooks: Integer;
requestId: Integer;
requestIdempotency_key: Integer;
type: WideString;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://api.stripe.com/v1/events?limit=3
bTls := 1;
port := 443;
bAutoReconnect := 1;
success := rest.Connect('api.stripe.com',port,bTls,bAutoReconnect);
if (success <> 1) then
  begin
    Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(rest.ConnectFailReason));
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

rest.SetAuthBasic('STRIPE_SECRET_KEY','');

sbResponseBody := TChilkatStringBuilder.Create(Self);
success := rest.FullRequestNoBodySb('GET','/v1/events?limit=3',sbResponseBody.ControlInterface);
if (success <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.LoadSb(sbResponseBody.ControlInterface);

object := jsonResponse.StringOf('object');
url := jsonResponse.StringOf('url');
has_more := jsonResponse.BoolOf('has_more');
i := 0;
count_i := jsonResponse.SizeOfArray('data');
while i < count_i do
  begin
    jsonResponse.I := i;
    id := jsonResponse.StringOf('data[i].id');
    object := jsonResponse.StringOf('data[i].object');
    api_version := jsonResponse.IsNullOf('data[i].api_version');
    created := jsonResponse.IntOf('data[i].created');
    dataObjectId := jsonResponse.StringOf('data[i].data.object.id');
    dataObjectObject := jsonResponse.StringOf('data[i].data.object.object');
    dataObjectAmount := jsonResponse.IntOf('data[i].data.object.amount');
    dataObjectCreated := jsonResponse.IntOf('data[i].data.object.created');
    dataObjectCurrency := jsonResponse.StringOf('data[i].data.object.currency');
    dataObjectInterval := jsonResponse.StringOf('data[i].data.object.interval');
    dataObjectInterval_count := jsonResponse.IntOf('data[i].data.object.interval_count');
    dataObjectLivemode := jsonResponse.BoolOf('data[i].data.object.livemode');
    dataObjectName := jsonResponse.StringOf('data[i].data.object.name');
    dataObjectStatement_descriptor := jsonResponse.IsNullOf('data[i].data.object.statement_descriptor');
    dataObjectTrial_period_days := jsonResponse.IsNullOf('data[i].data.object.trial_period_days');
    livemode := jsonResponse.BoolOf('data[i].livemode');
    pending_webhooks := jsonResponse.IntOf('data[i].pending_webhooks');
    requestId := jsonResponse.IsNullOf('data[i].request.id');
    requestIdempotency_key := jsonResponse.IsNullOf('data[i].request.idempotency_key');
    type := jsonResponse.StringOf('data[i].type');
    i := i + 1;
  end;

Sample JSON Response Body

{
  "object": "list",
  "url": "/v1/events",
  "has_more": false,
  "data": [
    {
      "id": "evt_1BnETJGswQrCoh0XAl7jSmFB",
      "object": "event",
      "api_version": null,
      "created": 1516662781,
      "data": {
        "object": {
          "id": "gold",
          "object": "plan",
          "amount": 2000,
          "created": 1516662781,
          "currency": "usd",
          "interval": "month",
          "interval_count": 1,
          "livemode": false,
          "metadata": {},
          "name": "T-shirt",
          "statement_descriptor": null,
          "trial_period_days": null
        }
      },
      "livemode": false,
      "pending_webhooks": 0,
      "request": {
        "id": null,
        "idempotency_key": null
      },
      "type": "plan.created"
    }
  ]
}