- PHP 94.5%
- Blade 5.5%
- Throttle the inbound webhook per IP (240/min) as an abuse/amplification backstop; signature verification still fails closed and Stripe retries on 429. - Wrap the refund record-modify-write in a transaction with a row lock on the original payment so two DISTINCT partial refunds delivered concurrently can't both read a stale cumulative and over-refund. The refund-id unique only backstopped exact duplicates. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| config | ||
| resources | ||
| routes | ||
| src | ||
| .gitattributes | ||
| .gitignore | ||
| CHANGELOG.md | ||
| composer.json | ||
| CONTRIBUTING.md | ||
| LICENSE.md | ||
| README.md | ||
LiBilling Stripe Payment Gateway Module
A LiBilling payment gateway module for Stripe. Provides credit card management, subscription billing, one-time charges, refunds, and Stripe Checkout through Laravel Cashier.
Features
- Subscription Billing: Recurring charges via Stripe subscriptions
- One-Time Charges: Single payment processing
- Refunds: Full and partial refund support
- Stripe Checkout: Hosted checkout sessions
- Webhooks: Stripe webhook event processing
- Card Management: Customer card add, remove, and default management
Installation
This package is loaded as a local Composer path repository. No separate installation is needed when developing within the LiBilling monorepo.
For standalone installation:
composer require libilling/libilling-stripe
Configuration
Stripe is configured through Laravel Cashier's standard environment variables:
STRIPE_KEY=pk_test_xxxxx
STRIPE_SECRET=sk_test_xxxxx
STRIPE_WEBHOOK_SECRET=whsec_xxxxx
Publish the package config if you need additional options:
php artisan vendor:publish --tag=libilling-stripe
Capabilities
Declared via supports() using GatewayCapability constants:
charge: One-time credit card chargesrefund: Full and partial refundssubscription: Recurring billing via Stripe subscriptionscheckout: Stripe Checkout sessionswebhooks: Stripe webhook event processingcard_management: Customer card add/remove/default management
Dependencies
laravel/cashier: Laravel Cashier for Stripelithiumhosting/laravel-stripe-billing: Extended Stripe billing utilities
Testing
vendor/bin/sail artisan test --filter=ModuleSystemTest
License
LiBilling is (C) Lithium Holdings, LLC. All components except for third-party modules and select packages with their own license are licensed under a Commercial License. Contact licensing@lithiumholdings.com for licensing enquiries. Any dissemination of material herein is prohibited without expressed written consent of Lithium Holdings.
This package, libilling-stripe is licensed under The MIT License (MIT). Please see License File for more information.
Is it any good?
Yes.
When people first hear about a new product, they frequently ask if it is any good. A Hacker News user remarked:
Note to self: Starting immediately, all raganwald projects will have a "Is it any good?" section in the readme, and the answer shall be "yes.".