Sync Customer Data, Preview Upcoming Invoices, SEPA Payment Methods, and More in Cashier Stripe v13
Published on by Paul Redmond
The Laravel team released Cashier Stripe v13 with new payment methods, multiple discounts on receipts, sync customers with Stripe data, and the latest improvements since the 12.x release:
New Payment Methods
Dries Vints contributed new user payment methods to the PHP API, which allows you to specify payment method type, including SEPA Direct Debit payments. Here is a preview from the Cashier Stripe v13 Released announcement post, to visualize these methods:
// Get payment methods$user->paymentMethods(); // Get SEPA payment methods$user->paymentMethods('sepa_debit'); // Determine if the user has SEPA payment methods$user->hasPaymentMethod('sepa_debit') // Delete all SEPA payment methods for a user$user->deletePaymentMethods('sepa_debit');
Sync Customers With Stripe Data
Dries Vints contributed the ability to sync customer data with Stripe using a booted()
model method to handle syncing during the updated
model event:
/** * The "booted" method of the model. * * @return void */protected static function booted(){ static::updated(queueable(function ($customer) { $customer->syncStripeCustomerDetails(); }));}
Preview an Upcoming Invoice
Ben Doe and Dries Vints collaborated on the ability to preview the invoice for price changes
$upcomingInvoice = $subscription->previewInvoice('the_stripe_plan'); // For a specific subscription$user->subscription('default')->upcomingInvoice();
Learn More
You can see the complete list of new features and updates below and the diff between v12.14.1 and 13.0.0 on GitHub. If you need to upgrade from v12, reference the Upgrading To 13.0 From 12.x for help. Finally, check out the Laravel team’s announcement post for more details on the v13 release!
v13.0.0
Added
- Support more payment method types (#1074)
- Cashier Stripe Factories (#1096)
- Multiple discounts on receipts (#1147)
- Preview upcoming invoice (#1146)
- Add new metered price methods (#1177)
- Allow customers to be synced with Stripe (#1178, #1183)
- Add
stripe_product
column tosubscriptions_items
table (#1185)
Changed
- Rename plans to prices (#1166)
- Stripe SDK refactor (#1169)
- Update stripe api version (#1001)
- Make plans optional for newSubscription (#1066)
- Drop PHP 7.2 support (#1065)
- Drop Laravel 6 & 7 support (#1064)
- Refactor payment exceptions (#1095)
- Refactor model config option (#1100)
- Billing portal arguments (#1104)
- Refactor receipts with more data from Stripe (#1136)
- Add array types (#1152)
- Throw payment exception for quantity methods (#1155)
- Throw payment exceptions on item swap (#1157)
- Payment page updates (#1120)
Fixed
- Fix trialEndsAt more closely represents onTrial (#1129)
Removed
- Remove legacy sources support (#1077)