I have this code when displaying list of invoices, this is similar or maybe exactly the same to the ones in the official Laravel Cashier documentation. I am getting this weird <
It seems like you're not using the most upto date version of Laravel Cashier. In older versions, if you follow the code through, you'll see that Laravel Cashier is trying to format a property that Stripe no longer returns.
cashier\src\Invoice.php, line 48
$carbon = Carbon::createFromTimestampUTC($this->invoice->date);
As per the Stripe "API Upgrade Guide", you can see on 2019-03-14, they announced the following change;
"The date property has been renamed to created." (Source: https://stripe.com/docs/upgrades#2019-03-14)
The latest version of Cashier has addressed this issue by checking for the existance of the created
property first.
https://github.com/laravel/cashier/blob/9.0/src/Invoice.php#L48
EDIT: If you can't upgrade for whatever reason, instead of:
$invoice->date()->toFormattedDateString()
You can try something like:
Carbon::createFromTimestamp($invoice->asStripeInvoice()->created)->toFormattedDateString();
Recently I had the same error. The date on the label is null
.
I was reading Stripe's docs and since March 14, 2019 they made some changes.
Laravel Cashier
will stop obtaining the invoice date because Stripe will no longer provide it.
There are a few changes to the invoice object:
status_transitions
hash now contains the timestamps when an invoice
was finalized, paid, marked uncollectible, or voided.date
property has been renamed to created. finalized_at
property has been moved into the status_transitions
hash.Now, how did I solve it?
9.3
in composer.json
file.composer update
.I hope my solution is useful for you. Regards!