simonhamp / laravel-stripe-connect
Fund package maintenance!
simonhamp
Installs: 248
Dependents: 0
Suggesters: 0
Security: 0
Stars: 93
Watchers: 2
Forks: 37
Open Issues: 1
Requires
- illuminate/database: ^10.0|^11.0
- illuminate/support: ^10.0|^11.0
- stripe/stripe-php: >=10.0
Requires (Dev)
- phpunit/phpunit: ^10.0
README
This is a maintained fork of rap2hpoutre/laravel-stripe-connect by Raphaël Huchet (@rap2hpoutre).
With Laravel Stripe Connect, you can start your own marketplace platform using Stripe Connect which allows you to make transfers to your recipients directly from your Stripe account to theirs.
Laravel Stripe Connect provides a starting point to help you get your users set up and connected to your Stripe account and start making payouts in no time.
Tip
This package assumes that your User
model is what will represent recipients of transfers from your platform,
however this can be changed.
Sponsorship
Laravel Stripe Connect is completely free to use for personal or commercial use. If it's making your job easier or you just want to make sure it keeps being supported and improved, I'd really appreciate your donations!
Donate now via GitHub Sponsors
Thank you 🙏
Sponsors
Laradir - Connecting the best Laravel Developers with the best Laravel Teams
quantumweb - A bare-metal web agency. Less layers, better results
Installation
Install via Composer:
composer require simonhamp/laravel-stripe-connect
Add your Stripe credentials in .env
:
STRIPE_KEY=pk_test_XxxXXxXXX
STRIPE_SECRET=sk_test_XxxXXxXXX
Run migrations:
php artisan migrate
Important
If you intend to use a table other than your users
table to record your recipients' Stripe account
details, publish the migration by running php artisan vendor:publish
and select the appropriate
options. You can then edit the published migration in your app's database/migrations
folder.
Usage
Add the Payable
trait to any model that you consider to represent your recipient.
use SimonHamp\LaravelStripeConnect\Traits\Payable; class User extends Model { use Payable;
Then you can use the convenient methods available to get your recipients to set up or connect their Stripe account to your platform.
Here's an example route that will get your user to go through the Stripe Connect onboarding flow:
Route::get('/connect', function () { if (! auth()->user()->getStripeAccountId()) { auth()->user()->createStripeAccount(['type' => 'express']); } if (! auth()->user()->isStripeAccountActive()) { return redirect(auth()->user()->getStripeAccountLink()); } return redirect('dashboard'); })->middleware(['auth']);
Once a user's Stripe account is all connected and active, you can start creating transfers:
auth()->user()->transfer(10000, 'usd');
Note
Stripe expects amounts in the smallest denomination for the currency (in this case, cents), so the above is a transfer of US$100 to the logged in user.