This package provides a Stripe payment adapter for Lunar API. It can authorize your payments and handle incoming Stripe webhooks.
Should be as easy as:
- Install the package
- Fill in your env variables
- Accept payments
You can install the package via composer:
composer require dystcz/lunar-api-stripe-adapter
You can publish the config file with:
php artisan vendor:publish --provider="Dystcz\LunarApiStripeAdapter\LunarApiStripeAdapterServiceProvider" --tag="lunar-api.stripe"
This will publish two configuration files:
config/lunar-api/stripe.php
- contains the payment adapter configurationconfig/stripe-webhook.php
- contains the webhook configuration
You can configure the Stripe webhooks in the config/stripe-webhook.php
file.
This package builds on top of Spatie's laravel-stripe-webhooks
package, so you can use the same configuration.
For more configuration options, please refer to the documentation
of the package.
Do not forget to fill in your .env
file with the following variables:
STRIPE_PUBLIC_KEY=pk_live_...
STRIPE_SECRET_KEY=sk_live_...
STRIPE_WEBHOOK_SECRET=whsec_...
STRIPE_WEBHOOK_CONNECTION=redis
STRIPE_WEBHOOK_QUEUE=priority
STRIPE_SIGNATURE_VERIFY=true
Here is a list of Stripe events which are currently handled by this package.
You can easily add your own handlers and register
them in the config/stripe-webhook.php
file.
You can add a couple of useful methods to your handlers
by extending the WebhookHandler
class.
Event | Webhook handler class | Description |
---|---|---|
payment_intent.succeeded |
HandlePaymentIntentSucceeded |
Dispatches OrderPaymentCanceled event. |
payment_intent.payment_failed |
HandlePaymentIntentFailed |
Dispatches OrderPaymentFailed event. |
payment_intent.canceled |
HandlePaymentIntentCanceled |
Authorizes the payment via AuthorizeStripePayment class which dispatches the OrderPaymentSuccessful . |
You can listen to these and others events in your application and handle them accordingly.
Note
All other events are handled by HandleOtherEvent
class
which does nothing by default, but you can easily swap the default
handler for your own in the config.
If you ever need to implement custom logic, you can use the methods listed below.
$payment = App::make(StripePaymentAdapter::class);
// Get payment driver
$payment->getDriver();
// Get payment type
$payment->getType();
// Create a payment intent
$payment->createIntent($cart)
// Handle a webhook (validate and authorize payment)
$payment->handleWebhook($request)
composer test
Please see CHANGELOG for more information on what has changed recently.
Please see CONTRIBUTING for details.
Please review our security policy on how to report security vulnerabilities.
The MIT License (MIT). Please see License File for more information.