Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.0.0] — 2025-02-16
Added
Subscriptions & Recurring Billing
SupportsRecurringcapability interfaceSubscriptionStatusandBillingIntervalenumsPlanDTO,SubscriptionPayload,SubscriptionItemDTOSubscription,SubscriptionItem,SubscriptionUsagemodels- Full lifecycle: create, cancel, pause, resume, update subscriptions
- 6 subscription events (
SubscriptionCreated,Renewed,Paused,Resumed,Cancelled,TrialEnding) - Dedicated
SubscriptionManager
Tokenization
- Updated
SupportsTokenizationcontract PaymentMethodmodel with token storage, expiry, and default handlingPaymentMethodSavedandPaymentMethodDeletedevents
- Updated
Advanced Webhooks
WebhookRouterservice with wildcard matchingWebhookRetryPolicywith fixed, linear, and exponential backoff
Payment Method Contracts
- 5 new capability interfaces:
SupportsWallets,SupportsBankTransfer,SupportsBuyNowPayLater,SupportsQRCode,SupportsCOD
- 5 new capability interfaces:
Developer Experience
SchemaValidatorfor pre-flight payload validation- VitePress documentation pages
Changed
Paymentgod class split intoPayment,SubscriptionManager, andRefundManager- Modular migrations (core tables separated from subscription tables)
db_loggingnow defaults tofalsefor better performance- Payment configurations are now read via a cached
PaymentConfigvalue object
[1.0.0] — 2024-XX-XX
Added
Core Architecture
Paymentmanager with fluent API (gateway(),withProfile(),usingContext(),usingCredentials())GatewayRegistryfor managing core and addon gateway registrationsGatewayDriverContract— Core driver interface- 6 capability interfaces:
SupportsHostedRedirect,SupportsWebhookVerification,SupportsRefund,SupportsStatusQuery,SupportsTokenization,SupportsInstallments
Canonical Payload System
- 12 immutable, readonly Data:
Payload,Money,Order,OrderItemDTO,Customer,Address,UrlsDTO,ContextDTO,RefundPayload,StatusPayload,Credentials,GatewayResult - Auto-generated idempotency keys
- Dot-notation flattening for logging
- 12 immutable, readonly Data:
Credential Management
- 3 credential repositories:
EnvCredentialsRepository,DatabaseCredentialsRepository,CompositeCredentialsRepository - Multi-tenant isolation with tenant IDs
- Time-windowed credential rotation
- Priority-based resolution
- Encrypted database storage
- 3 credential repositories:
Persistence Layer
- 7 Eloquent models with ULID primary keys
- 7 migration stubs with configurable table names
- Full payment lifecycle tracking (payments, attempts, webhooks, refunds, logs)
HTTP Layer
- Universal
WebhookControllerwith signature verification and idempotency ReturnControllerandCancelControllerfor callback handling- Configurable routes with middleware support
- Universal
Logging
PaymentLoggerwith dot-notation categories- Dual output: Laravel log channels + database table
- Configurable verbosity levels (off → debug)
- Automatic redaction of sensitive keys
CLI Commands
payments:make-gateway— Generate driver skeletons (inline or --addon)payments:gateways— List all discovered gatewayspayments:credentials:sync— Validate credential presencepayments:webhooks:replay— Safely replay stored webhook events
Auto-Discovery
GatewayAddonServiceProviderfor addon packagesGatewayAddonContractfor addon metadata
Events
PaymentCreated,PaymentVerified,PaymentFailed,PaymentCancelledPaymentRefundRequested,PaymentRefunded,WebhookReceived
Exceptions
- 7 typed exceptions for specific failure scenarios