💳
Business

Payment Processing

Admin Settings

Unified payment processing with Stripe and PayPal

Overview

Accept payments via Stripe and PayPal with a unified abstraction layer. Supports one-time payments, subscriptions, refunds, and webhook handling. Full transaction logging for audit and reporting.

Design Considerations

UX patterns and visual design notes for this feature:

  • Payment forms should feel secure and trustworthy
  • Show accepted payment methods clearly
  • Loading states during payment processing
  • Clear success/failure feedback

Key Benefits

What makes this feature stand out:

  • Stripe integration (cards, SEPA, iDEAL)
  • PayPal integration
  • Subscription billing support
  • Full and partial refunds
  • Automatic webhook processing
  • Transaction audit logging
  • Multi-currency support
Technical Note

PaymentHelper provides abstraction layer. Install SDKs: composer require stripe/stripe-php paypal/paypal-checkout-sdk. API keys in .env file.

Helpers
PaymentHelper
Models
PaymentProviderPaymentTransactionPaymentWebhookLog
Database Tables
payment_providerpayment_transactionpayment_webhook_log

Configuration

Config Relationship Legend
DB overrides params.php🔗 DB related setting📋 DB stores value only
params.php Configuration

Config path: params['payments']

params['features']['payments'] => trueparams['payments']['defaultCurrency'] => 'EUR'params['payments']['defaultProvider'] => 'stripe'params['payments']['stripe']['enabled'] => trueparams['payments']['stripe']['testMode'] => trueparams['payments']['refunds']['maxDays'] => 180
Note: API keys must be in .env file: STRIPE_SECRET_KEY, STRIPE_PUBLIC_KEY, STRIPE_WEBHOOK_SECRET, PAYPAL_CLIENT_ID, PAYPAL_CLIENT_SECRET.