The Stripe Payment Gateway add-on enables your Larapen shop to accept credit and debit card payments securely via Stripe — using the Payment Intents API with 3D Secure support, webhook-driven order updates, and encrypted credential storage.
Key Features
- Payment Intents API — Uses Stripe's latest Payment Intents flow for SCA-compliant, secure card payments.
- Credit card payments — Accept Visa, Mastercard, American Express, and other major cards through Stripe's secure payment infrastructure.
- 3D Secure — Automatic 3D Secure authentication when required by the card issuer for Strong Customer Authentication (SCA) compliance.
- Webhook processing — Handles payment success, failure, refund, and dispute events via signed webhooks for real-time order updates.
- Encrypted credentials — API keys are encrypted at rest using Laravel's Crypt facade. Never stored in plaintext.
- Stripe Customer records — Stores Stripe customer IDs linked to user accounts for faster repeat purchases.
- Refund support — Process full or partial refunds directly from the admin panel.
- Multi-currency — Supports any currency enabled in your Stripe account.
- Capture control — Automatic capture (default) or manual capture for review-before-charge workflows.
Admin Panel
| Section | Description |
|---|---|
| Settings | Configure Stripe API keys (publishable key, secret key, webhook signing secret), capture method, currency, and 3D Secure behavior. All sensitive keys stored encrypted. |
Configuration
| Setting | Description |
|---|---|
| Publishable key | Your Stripe publishable key (starts with pk_). |
| Secret key | Your Stripe secret key (starts with sk_). Stored encrypted. |
| Webhook secret | Your Stripe webhook signing secret (starts with whsec_). Stored encrypted. |
| Capture method | Automatic (default) or manual. |
| Currency | Payment currency (inherits from Shop settings by default). |
| 3D Secure | Automatic (default) — triggered when required by the issuing bank. |
Webhook events
The add-on handles the following Stripe webhook events:
payment_intent.succeeded— Marks the order as paid and triggers order completion.payment_intent.payment_failed— Records the payment failure.charge.refunded— Updates the order status to refunded.charge.dispute.created— Flags the order with a dispute notification.
Payment flow
- Customer selects "Credit Card" at checkout.
- Stripe Elements form collects card details securely (PCI-compliant).
- A Payment Intent is created server-side.
- 3D Secure authentication is triggered if required by the card issuer.
- On success, the webhook confirms the payment and the order is marked as paid.
Dependencies
Requires: The E-Shop add-on must be installed and active. The Stripe add-on registers itself as a payment gateway via the PaymentGatewayInterface and is automatically discovered by the shop checkout system.
Setup guide
- Install and activate the E-Shop add-on first.
- Install and activate the Stripe add-on.
- Go to Stripe > Settings in the admin panel.
- Enter your Stripe API keys (found in the Stripe Dashboard).
- Configure the webhook endpoint URL in Stripe:
https://yoursite.com/stripe/webhook. - Enter the webhook signing secret.
- Stripe will appear as a payment option during checkout.
Ideal for
- Any Larapen shop needing to accept credit card payments online.
- Businesses in countries where Stripe is available.
- SCA-compliant payment processing in the EU.
- Multi-currency international sales.
- Digital product stores needing instant payment confirmation.