Skip to content

Releases: hyrograsper/lunar-fortis

v2.3.1

Choose a tag to compare

@alecgarcia alecgarcia released this 30 Jul 12:18
515baa4

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

Choose a tag to compare

@alecgarcia alecgarcia released this 24 Jun 02:53
7ea6e9b

What's Changed

Improvements

  • Switched from lunarphp/lunar to lunarphp/core package
  • Added Livewire v4 support

Full Changelog: v2.2.0...v2.3.0

v2.2.0

Choose a tag to compare

@alecgarcia alecgarcia released this 16 Feb 04:03
8b16371

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 Builder type 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

Choose a tag to compare

@alecgarcia alecgarcia released this 15 Feb 23:42
83f2312

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

Fixes hyrograsper/fastmetal#254

v2.1.0: Comprehensive Test Suite Enhancement

Choose a tag to compare

@alecgarcia alecgarcia released this 30 Oct 19:01
38448c0

🚀 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

Choose a tag to compare

@alecgarcia alecgarcia released this 18 Sep 18:21

🔧 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-fortis

Then 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_id

Full Changelog: v2.0.0...v2.0.1

🤖 Generated with Claude Code

🚀 v2.0.0 - Enterprise-Grade HTTP Configuration & Laravel 11+ Compatibility

Choose a tag to compare

@alecgarcia alecgarcia released this 18 Sep 17:36
f967476

🚀 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

  1. Update PHP: Ensure PHP 8.3+
  2. Update Laravel: Ensure Laravel 11+
  3. Update dependencies: Run composer update
  4. 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

Choose a tag to compare

@alecgarcia alecgarcia released this 17 Sep 02:47

Full Changelog: v1.7.0...v1.7.1

v1.7.0

Choose a tag to compare

@alecgarcia alecgarcia released this 17 Sep 02:20

Full Changelog: v1.6.0...v1.7.0

v1.6.0

Choose a tag to compare

@alecgarcia alecgarcia released this 17 Sep 00:37
1ee0728

What's Changed

  • Update fortis sdk. Prefix logs with LunarFortis: by @alecgarcia in #9

Full Changelog: v1.5.0...v1.6.0