Delphi ActiveX Stripe: Update a Source

Back to Index

Updates the specified source by setting the values of the parameters passed. Any parameters not provided will be left unchanged.

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

CURL Command

curl https://api.stripe.com/v1/sources/src_1BnETLGswQrCoh0X5KOorXEP \
   -u STRIPE_SECRET_KEY: \
   -d metadata[order_id]=6735 \
   -X POST

Delphi ActiveX Example

var
rest: TChilkatRest;
success: Integer;
bTls: Integer;
port: Integer;
bAutoReconnect: Integer;
strResponseBody: WideString;
jsonResponse: TChilkatJsonObject;
id: WideString;
object: WideString;
amount: Integer;
client_secret: WideString;
created: Integer;
currency: WideString;
flow: WideString;
livemode: Integer;
metadataOrder_id: WideString;
ownerAddress: Integer;
ownerEmail: WideString;
ownerName: Integer;
ownerPhone: Integer;
ownerVerified_address: Integer;
ownerVerified_email: Integer;
ownerVerified_name: Integer;
ownerVerified_phone: Integer;
receiverAddress: WideString;
receiverAmount_charged: Integer;
receiverAmount_received: Integer;
receiverAmount_returned: Integer;
receiverRefund_attributes_method: WideString;
receiverRefund_attributes_status: WideString;
statement_descriptor: Integer;
status: WideString;
type: WideString;
usage: WideString;
bitcoinAddress: WideString;
bitcoinAmount: Integer;
bitcoinAmount_charged: Integer;
bitcoinAmount_received: Integer;
bitcoinAmount_returned: Integer;
bitcoinUri: WideString;

begin
rest := TChilkatRest.Create(Self);

//  URL: https://api.stripe.com/v1/sources/src_1BnETLGswQrCoh0X5KOorXEP
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','');

rest.AddQueryParam('metadata[order_id]','6735');

strResponseBody := rest.FullRequestFormUrlEncoded('POST','/v1/sources/src_1BnETLGswQrCoh0X5KOorXEP');
if (rest.LastMethodSuccess <> 1) then
  begin
    Memo1.Lines.Add(rest.LastErrorText);
    Exit;
  end;

jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.Load(strResponseBody);

id := jsonResponse.StringOf('id');
object := jsonResponse.StringOf('object');
amount := jsonResponse.IntOf('amount');
client_secret := jsonResponse.StringOf('client_secret');
created := jsonResponse.IntOf('created');
currency := jsonResponse.StringOf('currency');
flow := jsonResponse.StringOf('flow');
livemode := jsonResponse.BoolOf('livemode');
metadataOrder_id := jsonResponse.StringOf('metadata.order_id');
ownerAddress := jsonResponse.IsNullOf('owner.address');
ownerEmail := jsonResponse.StringOf('owner.email');
ownerName := jsonResponse.IsNullOf('owner.name');
ownerPhone := jsonResponse.IsNullOf('owner.phone');
ownerVerified_address := jsonResponse.IsNullOf('owner.verified_address');
ownerVerified_email := jsonResponse.IsNullOf('owner.verified_email');
ownerVerified_name := jsonResponse.IsNullOf('owner.verified_name');
ownerVerified_phone := jsonResponse.IsNullOf('owner.verified_phone');
receiverAddress := jsonResponse.StringOf('receiver.address');
receiverAmount_charged := jsonResponse.IntOf('receiver.amount_charged');
receiverAmount_received := jsonResponse.IntOf('receiver.amount_received');
receiverAmount_returned := jsonResponse.IntOf('receiver.amount_returned');
receiverRefund_attributes_method := jsonResponse.StringOf('receiver.refund_attributes_method');
receiverRefund_attributes_status := jsonResponse.StringOf('receiver.refund_attributes_status');
statement_descriptor := jsonResponse.IsNullOf('statement_descriptor');
status := jsonResponse.StringOf('status');
type := jsonResponse.StringOf('type');
usage := jsonResponse.StringOf('usage');
bitcoinAddress := jsonResponse.StringOf('bitcoin.address');
bitcoinAmount := jsonResponse.IntOf('bitcoin.amount');
bitcoinAmount_charged := jsonResponse.IntOf('bitcoin.amount_charged');
bitcoinAmount_received := jsonResponse.IntOf('bitcoin.amount_received');
bitcoinAmount_returned := jsonResponse.IntOf('bitcoin.amount_returned');
bitcoinUri := jsonResponse.StringOf('bitcoin.uri');

Sample JSON Response Body

{
  "id": "src_1BnETLGswQrCoh0X5KOorXEP",
  "object": "source",
  "amount": 1000,
  "client_secret": "src_client_secret_CBbgdvc1AflN5jN0wQevA2jA",
  "created": 1516662783,
  "currency": "usd",
  "flow": "receiver",
  "livemode": false,
  "metadata": {
    "order_id": "6735"
  },
  "owner": {
    "address": null,
    "email": "jenny.rosen@example.com",
    "name": null,
    "phone": null,
    "verified_address": null,
    "verified_email": null,
    "verified_name": null,
    "verified_phone": null
  },
  "receiver": {
    "address": "test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N",
    "amount_charged": 0,
    "amount_received": 0,
    "amount_returned": 0,
    "refund_attributes_method": "email",
    "refund_attributes_status": "missing"
  },
  "statement_descriptor": null,
  "status": "pending",
  "type": "bitcoin",
  "usage": "single_use",
  "bitcoin": {
    "address": "test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N",
    "amount": 2371000,
    "amount_charged": 0,
    "amount_received": 0,
    "amount_returned": 0,
    "uri": "bitcoin:test_1MBhWS3uv4ynCfQXF3xQjJkzFPukr4K56N?amount=0.02371000"
  }
}