Attempts payment on an invoice out of the normal collection schedule.
curl https://api.stripe.com/v1/invoices/in_1BnETLGswQrCoh0X6M67Qy9c/pay \
-u STRIPE_SECRET_KEY: \
-X POST
<?php
$rest = new COM("Chilkat_9_5_0.Rest");
// URL: https://api.stripe.com/v1/invoices/in_1BnETLGswQrCoh0X6M67Qy9c/pay
$bTls = 1;
$port = 443;
$bAutoReconnect = 1;
$success = $rest->Connect('api.stripe.com',$port,$bTls,$bAutoReconnect);
if ($success != 1) {
print 'ConnectFailReason: ' . $rest->ConnectFailReason . "\n";
print $rest->LastErrorText . "\n";
exit;
}
$rest->SetAuthBasic('STRIPE_SECRET_KEY','');
$sbResponseBody = new COM("Chilkat_9_5_0.StringBuilder");
$success = $rest->FullRequestNoBodySb('POST','/v1/invoices/in_1BnETLGswQrCoh0X6M67Qy9c/pay',$sbResponseBody);
if ($success != 1) {
print $rest->LastErrorText . "\n";
exit;
}
$jsonResponse = new COM("Chilkat_9_5_0.JsonObject");
$jsonResponse->LoadSb($sbResponseBody);
$id = $jsonResponse->stringOf('id');
$object = $jsonResponse->stringOf('object');
$amount_due = $jsonResponse->IntOf('amount_due');
$application_fee = $jsonResponse->IsNullOf('application_fee');
$attempt_count = $jsonResponse->IntOf('attempt_count');
$attempted = $jsonResponse->BoolOf('attempted');
$billing = $jsonResponse->stringOf('billing');
$charge = $jsonResponse->stringOf('charge');
$closed = $jsonResponse->BoolOf('closed');
$currency = $jsonResponse->stringOf('currency');
$customer = $jsonResponse->stringOf('customer');
$date = $jsonResponse->IntOf('date');
$description = $jsonResponse->IsNullOf('description');
$discount = $jsonResponse->IsNullOf('discount');
$due_date = $jsonResponse->IsNullOf('due_date');
$ending_balance = $jsonResponse->IsNullOf('ending_balance');
$forgiven = $jsonResponse->BoolOf('forgiven');
$linesHas_more = $jsonResponse->BoolOf('lines.has_more');
$linesObject = $jsonResponse->stringOf('lines.object');
$linesUrl = $jsonResponse->stringOf('lines.url');
$livemode = $jsonResponse->BoolOf('livemode');
$next_payment_attempt = $jsonResponse->IntOf('next_payment_attempt');
$number = $jsonResponse->stringOf('number');
$paid = $jsonResponse->BoolOf('paid');
$period_end = $jsonResponse->IntOf('period_end');
$period_start = $jsonResponse->IntOf('period_start');
$receipt_number = $jsonResponse->IsNullOf('receipt_number');
$starting_balance = $jsonResponse->IntOf('starting_balance');
$statement_descriptor = $jsonResponse->IsNullOf('statement_descriptor');
$subscription = $jsonResponse->IsNullOf('subscription');
$subtotal = $jsonResponse->IntOf('subtotal');
$tax = $jsonResponse->IsNullOf('tax');
$tax_percent = $jsonResponse->IsNullOf('tax_percent');
$total = $jsonResponse->IntOf('total');
$webhooks_delivered_at = $jsonResponse->IsNullOf('webhooks_delivered_at');
$last_payment_attempt = $jsonResponse->IsNullOf('last_payment_attempt');
$i = 0;
$count_i = $jsonResponse->SizeOfArray('lines.data');
while ($i < $count_i) {
$jsonResponse->I = $i;
$id = $jsonResponse->stringOf('lines.data[i].id');
$object = $jsonResponse->stringOf('lines.data[i].object');
$amount = $jsonResponse->IntOf('lines.data[i].amount');
$currency = $jsonResponse->stringOf('lines.data[i].currency');
$description_str = $jsonResponse->stringOf('lines.data[i].description');
$discountable = $jsonResponse->BoolOf('lines.data[i].discountable');
$livemode = $jsonResponse->BoolOf('lines.data[i].livemode');
$periodStart = $jsonResponse->IntOf('lines.data[i].period.start');
$periodEnd = $jsonResponse->IntOf('lines.data[i].period.end');
$planId = $jsonResponse->stringOf('lines.data[i].plan.id');
$planObject = $jsonResponse->stringOf('lines.data[i].plan.object');
$planAmount = $jsonResponse->IntOf('lines.data[i].plan.amount');
$planCreated = $jsonResponse->IntOf('lines.data[i].plan.created');
$planCurrency = $jsonResponse->stringOf('lines.data[i].plan.currency');
$planInterval = $jsonResponse->stringOf('lines.data[i].plan.interval');
$planInterval_count = $jsonResponse->IntOf('lines.data[i].plan.interval_count');
$planLivemode = $jsonResponse->BoolOf('lines.data[i].plan.livemode');
$planName = $jsonResponse->stringOf('lines.data[i].plan.name');
$planStatement_descriptor = $jsonResponse->IsNullOf('lines.data[i].plan.statement_descriptor');
$planTrial_period_days = $jsonResponse->IsNullOf('lines.data[i].plan.trial_period_days');
$proration = $jsonResponse->BoolOf('lines.data[i].proration');
$quantity = $jsonResponse->IntOf('lines.data[i].quantity');
$subscription = $jsonResponse->IsNullOf('lines.data[i].subscription');
$subscription_item = $jsonResponse->stringOf('lines.data[i].subscription_item');
$type = $jsonResponse->stringOf('lines.data[i].type');
$i = $i + 1;
}
?>
{
"id": "in_1BnETLGswQrCoh0X6M67Qy9c",
"object": "invoice",
"amount_due": 0,
"application_fee": null,
"attempt_count": 0,
"attempted": true,
"billing": "charge_automatically",
"charge": "ch_1BnETLGswQrCoh0XYoMbCKZ3",
"closed": false,
"currency": "usd",
"customer": "cus_CBbggkUyLoz3pe",
"date": 1516662783,
"description": null,
"discount": null,
"due_date": null,
"ending_balance": null,
"forgiven": false,
"lines": {
"data": [
{
"id": "sub_CBbgC3EaFZqN3Q",
"object": "line_item",
"amount": 999,
"currency": "usd",
"description": "1x Silver Express (at $9.99)",
"discountable": true,
"livemode": true,
"metadata": {},
"period": {
"start": 1521760383,
"end": 1524438783
},
"plan": {
"id": "gold",
"object": "plan",
"amount": 2000,
"created": 1516662783,
"currency": "usd",
"interval": "month",
"interval_count": 1,
"livemode": false,
"metadata": {},
"name": "T-shirt",
"statement_descriptor": null,
"trial_period_days": null
},
"proration": false,
"quantity": 1,
"subscription": null,
"subscription_item": "si_CBbgZxCVF3Ha7P",
"type": "subscription"
}
],
"has_more": false,
"object": "list",
"url": "/v1/invoices/in_1BnETLGswQrCoh0X6M67Qy9c/lines"
},
"livemode": false,
"metadata": {},
"next_payment_attempt": 1516666383,
"number": "330a34b8d5-0001",
"paid": true,
"period_end": 1516662783,
"period_start": 1516662783,
"receipt_number": null,
"starting_balance": 0,
"statement_descriptor": null,
"subscription": null,
"subtotal": 0,
"tax": null,
"tax_percent": null,
"total": 0,
"webhooks_delivered_at": null,
"last_payment_attempt": null
}