Delphi ActiveX Stripe: Retrieve a charge

Back to Index

Retrieves the details of a charge that has previously been created.

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

CURL Command

curl https://api.stripe.com/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj \
   -u STRIPE_SECRET_KEY:

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
sbResponseBody: TChilkatStringBuilder;
jsonResponse: TChilkatJsonObject;
id: WideString;
object: WideString;
amount: Integer;
amount_refunded: Integer;
application: Integer;
application_fee: Integer;
balance_transaction: WideString;
captured: Integer;
created: Integer;
currency: WideString;
customer: Integer;
description: WideString;
destination: Integer;
dispute: Integer;
failure_code: Integer;
failure_message: Integer;
invoice: Integer;
livemode: Integer;
on_behalf_of: Integer;
order: Integer;
outcome: Integer;
paid: Integer;
receipt_email: Integer;
receipt_number: Integer;
refunded: Integer;
refundsObject: WideString;
refundsHas_more: Integer;
refundsTotal_count: Integer;
refundsUrl: WideString;
review: Integer;
shipping: Integer;
sourceId: WideString;
sourceObject: WideString;
sourceAddress_city: Integer;
sourceAddress_country: Integer;
sourceAddress_line1: Integer;
sourceAddress_line1_check: Integer;
sourceAddress_line2: Integer;
sourceAddress_state: Integer;
sourceAddress_zip: Integer;
sourceAddress_zip_check: Integer;
sourceBrand: WideString;
sourceCountry: WideString;
sourceCustomer: Integer;
sourceCvc_check: Integer;
sourceDynamic_last4: Integer;
sourceExp_month: Integer;
sourceExp_year: Integer;
sourceFingerprint: WideString;
sourceFunding: WideString;
sourceLast4: WideString;
sourceName: Integer;
sourceTokenization_method: Integer;
source_transfer: Integer;
statement_descriptor: Integer;
status: WideString;
transfer_group: Integer;
i: Integer;
count_i: Integer;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://api.stripe.com/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj
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/charges/ch_1BnETJGswQrCoh0XTs0EERBj',sbResponseBody.ControlInterface);
if (success <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

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

id := jsonResponse.StringOf('id');
object := jsonResponse.StringOf('object');
amount := jsonResponse.IntOf('amount');
amount_refunded := jsonResponse.IntOf('amount_refunded');
application := jsonResponse.IsNullOf('application');
application_fee := jsonResponse.IsNullOf('application_fee');
balance_transaction := jsonResponse.StringOf('balance_transaction');
captured := jsonResponse.BoolOf('captured');
created := jsonResponse.IntOf('created');
currency := jsonResponse.StringOf('currency');
customer := jsonResponse.IsNullOf('customer');
description := jsonResponse.StringOf('description');
destination := jsonResponse.IsNullOf('destination');
dispute := jsonResponse.IsNullOf('dispute');
failure_code := jsonResponse.IsNullOf('failure_code');
failure_message := jsonResponse.IsNullOf('failure_message');
invoice := jsonResponse.IsNullOf('invoice');
livemode := jsonResponse.BoolOf('livemode');
on_behalf_of := jsonResponse.IsNullOf('on_behalf_of');
order := jsonResponse.IsNullOf('order');
outcome := jsonResponse.IsNullOf('outcome');
paid := jsonResponse.BoolOf('paid');
receipt_email := jsonResponse.IsNullOf('receipt_email');
receipt_number := jsonResponse.IsNullOf('receipt_number');
refunded := jsonResponse.BoolOf('refunded');
refundsObject := jsonResponse.StringOf('refunds.object');
refundsHas_more := jsonResponse.BoolOf('refunds.has_more');
refundsTotal_count := jsonResponse.IntOf('refunds.total_count');
refundsUrl := jsonResponse.StringOf('refunds.url');
review := jsonResponse.IsNullOf('review');
shipping := jsonResponse.IsNullOf('shipping');
sourceId := jsonResponse.StringOf('source.id');
sourceObject := jsonResponse.StringOf('source.object');
sourceAddress_city := jsonResponse.IsNullOf('source.address_city');
sourceAddress_country := jsonResponse.IsNullOf('source.address_country');
sourceAddress_line1 := jsonResponse.IsNullOf('source.address_line1');
sourceAddress_line1_check := jsonResponse.IsNullOf('source.address_line1_check');
sourceAddress_line2 := jsonResponse.IsNullOf('source.address_line2');
sourceAddress_state := jsonResponse.IsNullOf('source.address_state');
sourceAddress_zip := jsonResponse.IsNullOf('source.address_zip');
sourceAddress_zip_check := jsonResponse.IsNullOf('source.address_zip_check');
sourceBrand := jsonResponse.StringOf('source.brand');
sourceCountry := jsonResponse.StringOf('source.country');
sourceCustomer := jsonResponse.IsNullOf('source.customer');
sourceCvc_check := jsonResponse.IsNullOf('source.cvc_check');
sourceDynamic_last4 := jsonResponse.IsNullOf('source.dynamic_last4');
sourceExp_month := jsonResponse.IntOf('source.exp_month');
sourceExp_year := jsonResponse.IntOf('source.exp_year');
sourceFingerprint := jsonResponse.StringOf('source.fingerprint');
sourceFunding := jsonResponse.StringOf('source.funding');
sourceLast4 := jsonResponse.StringOf('source.last4');
sourceName := jsonResponse.IsNullOf('source.name');
sourceTokenization_method := jsonResponse.IsNullOf('source.tokenization_method');
source_transfer := jsonResponse.IsNullOf('source_transfer');
statement_descriptor := jsonResponse.IsNullOf('statement_descriptor');
status := jsonResponse.StringOf('status');
transfer_group := jsonResponse.IsNullOf('transfer_group');
i := 0;
count_i := jsonResponse.SizeOfArray('refunds.data');
while i < count_i do
  begin
    jsonResponse.I := i;
    i := i + 1;
  end;

Sample JSON Response Body

{
  "id": "ch_1BnETJGswQrCoh0XTs0EERBj",
  "object": "charge",
  "amount": 100,
  "amount_refunded": 0,
  "application": null,
  "application_fee": null,
  "balance_transaction": "txn_1BnETJGswQrCoh0XxO2tGYr7",
  "captured": false,
  "created": 1516662781,
  "currency": "usd",
  "customer": null,
  "description": "My First Test Charge (created for API docs)",
  "destination": null,
  "dispute": null,
  "failure_code": null,
  "failure_message": null,
  "fraud_details": {},
  "invoice": null,
  "livemode": false,
  "metadata": {},
  "on_behalf_of": null,
  "order": null,
  "outcome": null,
  "paid": true,
  "receipt_email": null,
  "receipt_number": null,
  "refunded": false,
  "refunds": {
    "object": "list",
    "data": [
    ],
    "has_more": false,
    "total_count": 0,
    "url": "/v1/charges/ch_1BnETJGswQrCoh0XTs0EERBj/refunds"
  },
  "review": null,
  "shipping": null,
  "source": {
    "id": "card_18ropuGswQrCoh0XjCJ5Zvma",
    "object": "card",
    "address_city": null,
    "address_country": null,
    "address_line1": null,
    "address_line1_check": null,
    "address_line2": null,
    "address_state": null,
    "address_zip": null,
    "address_zip_check": null,
    "brand": "Visa",
    "country": "US",
    "customer": null,
    "cvc_check": null,
    "dynamic_last4": null,
    "exp_month": 8,
    "exp_year": 2017,
    "fingerprint": "F9mANtIt1TaukpRJ",
    "funding": "credit",
    "last4": "4242",
    "metadata": {},
    "name": null,
    "tokenization_method": null
  },
  "source_transfer": null,
  "statement_descriptor": null,
  "status": "succeeded",
  "transfer_group": null
}