- Add comprehensive OxaPay payment provider with invoice creation, webhook processing, and subscription status sync
- Implement conditional payload fields (to_currency, callback_url) based on configuration
- Create universal sync command for all non-recurring payment providers
- Add subscription model fields for payment tracking
- Implement proper status mapping between OxaPay and Laravel subscription states
- Add webhook signature validation using HMAC SHA512
Add comprehensive webhook validation and processing system with Polar.sh integration:
- Create built-in Standard Webhooks package following official specification
- Implement HMAC-SHA256 signature validation with base64 encoding
- Add webhook factory for multi-provider support (Polar, Stripe, generic)
- Replace custom Polar webhook validation with Standard Webhooks implementation
- Add proper exception handling with custom WebhookVerificationException
- Support sandbox mode bypass for development environments
- Update Polar provider to use database-driven configuration
- Enhance webhook test suite with proper Standard Webhooks format
- Add PaymentProvider model HasFactory trait for testing
- Implement timestamp tolerance checking (±5 minutes) for replay protection
- Support multiple signature versions and proper header validation
This provides a secure, reusable webhook validation system that can be extended
to other payment providers while maintaining full compliance with Standard
Webhooks specification.
BREAKING CHANGE: Polar webhook validation now uses Standard Webhooks format
with headers 'webhook-id', 'webhook-timestamp', 'webhook-signature' instead of
previous Polar-specific headers.
- Add comprehensive billing page with current subscription display and transaction history
- Integrate Polar.sh customer portal for subscription management
- Fix Polar API endpoint from /customer-portal to /customer-sessions
- Use Polar's direct customer_portal_url response for seamless redirect
- Add responsive button layout with cursor-pointer styling
- Implement human-readable timestamps using diffForHumans()
- Add subscription sync functionality with 30-minute recheck window
- Include subscription cancellation with modal confirmation
- Support activation key provider with pending activation display
- Add proper error handling and user feedback messages
- Create PaymentCancelController with authentication and subscription detection
- Design responsive cancellation view with red/orange gradient theme
- Add session token logging and recent subscription lookup functionality
- Update payment cancel route to use new controller with auth middleware
- Include security assurances and proper navigation to checkout/dashboard
- Remove broken route references and ensure all buttons link to valid pages
- Add PaymentSuccessController with authentication and subscription selection logic
- Create PaymentConfirmation Livewire component with polling mechanism
- Implement real-time subscription status verification via Polar provider API
- Add confetti animation for successful payment confirmation
- Design responsive payment success page with dark mode support
- Fix Polar provider field mapping (updated_at -> modified_at)
- Add comprehensive error handling and logging
- Support multiple subscription status states (verifying, activated, pending, error)
- Implement automatic polling with 30-second intervals (max 5 attempts)
- Add fallback redirects and user-friendly status messages
- Build PolarProvider from scratch with proper HTTP API integration
- Add encrypted configuration loading from payment_providers table via model
- Implement sandbox/live environment switching with proper credential handling
- Fix product creation API structure for Polar.sh requirements
- Add comprehensive error handling and logging throughout checkout flow
- Fix PaymentController checkout URL handling to support Polar's checkout_url response
- Add debug logging for troubleshooting checkout session creation
- Support both regular and trial checkout flows for Polar payments
- Add unified payment provider architecture with contract-based design
- Implement 6 payment providers: Stripe, Lemon Squeezy, Polar, Oxapay, Crypto, Activation Keys
- Create subscription management with lifecycle handling (create, cancel, pause, resume, update)
- Add coupon system with usage tracking and trial extensions
- Build Filament admin resources for payment providers, subscriptions, coupons, and trials
- Implement payment orchestration service with provider registry and configuration management
- Add comprehensive payment logging and webhook handling for all providers
- Create customer analytics dashboard with revenue, churn, and lifetime value metrics
- Add subscription migration service for provider switching
- Include extensive test coverage for all payment functionality