Releases: hyrograsper/lunar-fortis
Release list
v2.3.1
What's Changed
Fixed
- Payment drivers (
fortis,fortis-terminal) are now registered in the boot phase instead of the register phase, so they survive the payment manager singleton being rebound by other providers. Fixes "Driver [card-terminal] not supported" in queue workers. Log::swap()for PHP 8.4 compatibility; Filament 3 added to require-dev.
Full Changelog: v2.3.0...v2.3.1
v2.3.0
What's Changed
Improvements
- Switched from
lunarphp/lunartolunarphp/corepackage - Added Livewire v4 support
Full Changelog: v2.2.0...v2.3.0
v2.2.0
What's Changed
Comprehensive code simplification and cleanup with no functional changes.
Improvements
- Extracted duplicated logic into private helper methods across payment types
- Added proper
Buildertype hints and return types to query scopes - Simplified terminal observer sync logic
- Improved test quality with proper mocked unit tests
Cleanup
- Removed redundant comments, docblocks, and section header dividers
- Standardized string formatting (interpolation over concatenation)
- Replaced loose
==comparisons with strict=== - Used imports over fully qualified class names throughout
- Updated PHPStan baseline
Full Changelog: v2.1.1...v2.2.0
v2.1.1 - Zero-Dollar Cart Fix & Dependency Updates
What's Changed
Bug Fix 🐛
- Fixed crash when cart total is below minimum payment amount (/bin/zsh.01) (#14)
- Payment form now displays "Payment Not Required" message for zero-dollar carts
- Added
isZeroDollarCart()method for explicit detection - Enhanced null-safety in component mount
- Applied strict type comparisons and PSR-12 standards
Dependencies 📦
- Bumped actions/checkout from 5 to 6 in GitHub Actions workflows (#12)
Full Changelog: v2.1.0...v2.1.1
v2.1.0: Comprehensive Test Suite Enhancement
🚀 Release v2.1.0: Comprehensive Test Suite Enhancement
This release significantly enhances the test coverage and reliability of the Lunar Fortis package with comprehensive test improvements.
📊 Test Coverage Improvements
- Total Tests: 231 tests (201 unit + 30 integration)
- Total Assertions: 693 assertions
- Success Rate: 100% passing
- Risky Tests: 0 (fixed 2 risky tests)
🧪 New Test Suites Added
TerminalObserver Tests (11 tests)
- Complete lifecycle testing for model observers
- Direct method testing with reflection
- Error handling and edge case coverage
- Field mapping validation
Enhanced Livewire Tests (13 tests)
- Component configuration testing
- Property validation and method availability
- Error handling for payment responses
- Edge case coverage
Service Provider Tests (29 tests)
- Package configuration validation
- Service registration testing
- Method availability and signature validation
- Class dependency verification
Configuration Validation Tests (37 tests)
- Environment and policy validation
- JavaScript URL configuration
- Status mapping and elements configuration
- Type safety and completeness checks
🔧 Quality Improvements
- Fixed 2 risky tests that weren't making assertions
- Enhanced error handling and edge case coverage
- Added reflection-based method signature validation
- Improved test organization and maintainability
- Better mocking strategies for complex dependencies
🐛 Bug Fixes
- Fixed TerminalObserver array handling bug
- Resolved Cart model mocking issues
- Corrected configuration type safety issues
📈 Impact
This release provides excellent confidence in the package's reliability and maintainability, with comprehensive test coverage ensuring robust functionality across all components.
🔧 v2.0.1 - Configuration Fix
🔧 Lunar-Fortis v2.0.1 - Configuration Fix
🐛 Bug Fix
Missing Product Transaction IDs
- ✅ Added missing configuration keys to
config/services.php - ✅ Updated documentation with required environment variables
📋 What's Fixed
config/services.php
Added missing configuration keys:
'fortis' => [
'userId' => env('FORTIS_USER_ID'),
'userApiKey' => env('FORTIS_USER_API_KEY'),
'developerId' => env('FORTIS_DEVELOPER_ID'),
'locationId' => env('FORTIS_LOCATION_ID'),
'productTransactionId' => env('FORTIS_PRODUCT_TRANSACTION_ID'), // ✅ Added
'terminalProductTransactionId' => env('FORTIS_TERMINAL_PRODUCT_TRANSACTION_ID'), // ✅ Added
],Environment Variables
Updated .env documentation:
# Required Fortis API credentials
FORTIS_USER_ID=your_fortis_user_id
FORTIS_USER_API_KEY=your_fortis_api_key
FORTIS_DEVELOPER_ID=your_fortis_developer_id
FORTIS_LOCATION_ID=your_fortis_location_id
FORTIS_PRODUCT_TRANSACTION_ID=your_product_transaction_id # ✅ Added
FORTIS_TERMINAL_PRODUCT_TRANSACTION_ID=your_terminal_product_transaction_id # ✅ Added
FORTIS_ENVIRONMENT=sandbox # or 'production'🎯 Impact
This fix ensures that:
- Online payments work correctly with proper product transaction ID
- Terminal payments work correctly with terminal-specific product transaction ID
- Configuration documentation matches actual code implementation
- Out-of-the-box setup works as expected
📦 Upgrade Instructions
composer update hyrograsper/lunar-fortisThen add the missing environment variables to your .env file:
FORTIS_PRODUCT_TRANSACTION_ID=your_product_transaction_id
FORTIS_TERMINAL_PRODUCT_TRANSACTION_ID=your_terminal_product_transaction_idFull Changelog: v2.0.0...v2.0.1
🤖 Generated with Claude Code
🚀 v2.0.0 - Enterprise-Grade HTTP Configuration & Laravel 11+ Compatibility
🚀 Lunar-Fortis v2.0.0 - Major Release
✨ What's New
🔧 Enhanced HTTP Configuration System
- Multi-Status Code Retry Logic: Handles 429, 502, 503, 504 status codes
- Exponential Backoff: Configurable backoff strategies with maximum delay caps
- Connection Recovery: Intelligent network error handling
- Environment-Specific Tuning: Different configurations for dev, staging, and production
📈 Code Quality Improvements
- ✅ Fixed all PHPStan issues (101→0 errors)
- ✅ Applied modern PHP practices (constructor property promotion)
- ✅ Simplified complex logic (Terminal needsSync method: 23→11 lines)
- ✅ Enhanced type safety with proper annotations
🔀 Laravel 11+ Compatibility
- ✅ Full Laravel 11 & 12 support
- ✅ PHP 8.3 & 8.4 compatibility
- ✅ Comprehensive test coverage (150 tests, 529 assertions)
- ✅ Log facade compatibility fixed for Laravel 11+
🔧 New Environment Variables
# Enterprise HTTP Configuration
FORTIS_HTTP_TIMEOUT=30 # Request timeout in seconds
FORTIS_HTTP_RETRY_ATTEMPTS=3 # Number of retry attempts
FORTIS_HTTP_RETRY_DELAY=1000 # Delay between retries (ms)
FORTIS_HTTP_RETRY_CONNECTION=true # Retry on connection errors
FORTIS_HTTP_RETRY_STATUS_CODES="429,502,503,504" # Status codes to retry on
FORTIS_HTTP_RETRY_EXPONENTIAL=false # Use exponential backoff
FORTIS_HTTP_RETRY_MAX_DELAY=10000 # Max delay with exponential backoff (ms)🔄 Breaking Changes
- Laravel 10 support dropped - requires Laravel 11+
- PHP 8.2 support dropped - requires PHP 8.3+
📋 Migration Guide
From v1.x to v2.0
- Update PHP: Ensure PHP 8.3+
- Update Laravel: Ensure Laravel 11+
- Update dependencies: Run
composer update - Optional: Configure new HTTP retry settings
New Testing Commands
composer test # Run all tests
composer test-coverage # Run with coverage
composer test-parallel # Run in parallel
composer quality # Run format, analyse, test🎯 Ready for Production
This release transforms Lunar-Fortis into an enterprise-grade payment integration with:
- Bulletproof HTTP handling for mission-critical applications
- Professional code quality meeting industry standards
- Comprehensive documentation for team development
- Real-world tested reliability and resilience
Perfect for high-traffic e-commerce, mission-critical POS systems, and enterprise payment processing.
🤖 Generated with Claude Code
v1.7.1
v1.7.0
v1.6.0
What's Changed
- Update fortis sdk. Prefix logs with LunarFortis: by @alecgarcia in #9
Full Changelog: v1.5.0...v1.6.0