Delphi DLL Stripe: Retrieve an Event

Back to Index

Retrieves the details of an event. Supply the unique identifier of the event, which you might have received in a webhook.

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

CURL Command

curl https://api.stripe.com/v1/events/evt_1BnETJGswQrCoh0XAl7jSmFB \
   -u STRIPE_SECRET_KEY:

Delphi DLL Example

var
rest: HCkRest;
success: Boolean;
bTls: Boolean;
port: Integer;
bAutoReconnect: Boolean;
sbResponseBody: HCkStringBuilder;
jsonResponse: HCkJsonObject;
id: PWideChar;
object: PWideChar;
api_version: Boolean;
created: Integer;
dataObjectId: PWideChar;
dataObjectObject: PWideChar;
dataObjectAmount: Integer;
dataObjectCreated: Integer;
dataObjectCurrency: PWideChar;
dataObjectInterval: PWideChar;
dataObjectInterval_count: Integer;
dataObjectLivemode: Boolean;
dataObjectName: PWideChar;
dataObjectStatement_descriptor: Boolean;
dataObjectTrial_period_days: Boolean;
livemode: Boolean;
pending_webhooks: Integer;
requestId: Boolean;
requestIdempotency_key: Boolean;
type: PWideChar;

begin
rest := CkRest_Create();

//  URL: https://api.stripe.com/v1/events/evt_1BnETJGswQrCoh0XAl7jSmFB
bTls := True;
port := 443;
bAutoReconnect := True;
success := CkRest_Connect(rest,'api.stripe.com',port,bTls,bAutoReconnect);
if (success <> True) then
  begin
    Memo1.Lines.Add('ConnectFailReason: ' + IntToStr(CkRest_getConnectFailReason(rest)));
    Memo1.Lines.Add(CkRest__lastErrorText(rest));
    Exit;
  end;

CkRest_SetAuthBasic(rest,'STRIPE_SECRET_KEY','');

sbResponseBody := CkStringBuilder_Create();
success := CkRest_FullRequestNoBodySb(rest,'GET','/v1/events/evt_1BnETJGswQrCoh0XAl7jSmFB',sbResponseBody);
if (success <> True) then
  begin
    Memo1.Lines.Add(CkRest__lastErrorText(rest));
    Exit;
  end;

jsonResponse := CkJsonObject_Create();
CkJsonObject_LoadSb(jsonResponse,sbResponseBody);

id := CkJsonObject__stringOf(jsonResponse,'id');
object := CkJsonObject__stringOf(jsonResponse,'object');
api_version := CkJsonObject_IsNullOf(jsonResponse,'api_version');
created := CkJsonObject_IntOf(jsonResponse,'created');
dataObjectId := CkJsonObject__stringOf(jsonResponse,'data.object.id');
dataObjectObject := CkJsonObject__stringOf(jsonResponse,'data.object.object');
dataObjectAmount := CkJsonObject_IntOf(jsonResponse,'data.object.amount');
dataObjectCreated := CkJsonObject_IntOf(jsonResponse,'data.object.created');
dataObjectCurrency := CkJsonObject__stringOf(jsonResponse,'data.object.currency');
dataObjectInterval := CkJsonObject__stringOf(jsonResponse,'data.object.interval');
dataObjectInterval_count := CkJsonObject_IntOf(jsonResponse,'data.object.interval_count');
dataObjectLivemode := CkJsonObject_BoolOf(jsonResponse,'data.object.livemode');
dataObjectName := CkJsonObject__stringOf(jsonResponse,'data.object.name');
dataObjectStatement_descriptor := CkJsonObject_IsNullOf(jsonResponse,'data.object.statement_descriptor');
dataObjectTrial_period_days := CkJsonObject_IsNullOf(jsonResponse,'data.object.trial_period_days');
livemode := CkJsonObject_BoolOf(jsonResponse,'livemode');
pending_webhooks := CkJsonObject_IntOf(jsonResponse,'pending_webhooks');
requestId := CkJsonObject_IsNullOf(jsonResponse,'request.id');
requestIdempotency_key := CkJsonObject_IsNullOf(jsonResponse,'request.idempotency_key');
type := CkJsonObject__stringOf(jsonResponse,'type');

CkRest_Dispose(rest);
CkStringBuilder_Dispose(sbResponseBody);
CkJsonObject_Dispose(jsonResponse);

Sample JSON Response Body

{
  "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"
}