Skip to content

ElegantEngineeringTech/laravel-stripe

Repository files navigation

Stripe and Stripe Connect for your Laravel App

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A simple way to attach Stripe Customer and Account to your Model in Laravel.

  • Stripe webhooks ready to use out of the box
  • Access Stripe php sdk easily

Installation

You can install the package via composer:

composer require elegantly/laravel-stripe

You should publish and run the migrations with:

php artisan vendor:publish --tag="stripe-migrations"
php artisan vendor:publish --provider="Spatie\WebhookClient\WebhookClientServiceProvider" --tag="webhook-client-migrations"
php artisan migrate

You can publish the config file with:

php artisan vendor:publish --tag="stripe-config"

This is the contents of the published config file:

use Elegantly\Stripe\Commands\CreateStripeWebhooksCommand;
use Elegantly\Stripe\ModelRepository;

return [

    'models' => [
        'accounts' => [
            \App\Models\User::class,
        ],
        'customers' => [
            \App\Models\User::class,
        ],
        'repository' => ModelRepository::class,
    ],

    'cache' => [
        'accounts' => true,
        'customers' => false,
    ],

    'key' => env('STRIPE_KEY'),

    'secret' => env('STRIPE_SECRET'),

    'version' => env('STRIPE_VERSION', '2024-04-10'),

    /**
     * This is only used for the CreateStripeWebhooksCommand
     * You can add more webhooks directly from your Stripe Dashboard
     */
    'webhooks' => [
        [
            'url' => '/webhooks/stripe',
            'connect' => false,
            'enabled_events' => [
                ...CreateStripeWebhooksCommand::DEFAULT_WEBHOOKS_EVENTS,
            ],
        ],
    ],

];

Prepare your model

Setup your database

This package simply rely on columns you have to add to any Model having a stripe customer or account. To do so, we provide a mirgation that will automatically add the required columns to your models. To configure what models are related to stripe, you must edit the configs.

Add the right trait

Add HasStripeCustomer trait to your Model:

class Organization extends Model
{
    use HasStripeCustomer;
    // ...
}

Configure Webhooks

Configure Webhooks on Stripe

This package rely on the great spatie/laravel-stripe-webhooks package.

You must follow their documentation to setup webhooks.

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.