signed routes for security).User model.MoneyFusion::payIn()). Feasibility: High if the API version matches the package’s assumptions.config to override API endpoints/credentials dynamically.transactions and webhook_logs. Feasibility: High for basic use cases, but custom fields (e.g., metadata, tax_id) may require extensions.schema:dump for versioning.VerifyMoneyFusionWebhook middleware to log failed signatures and integrate with Laravel’s failed event system.payInLater) for async processing, with a fallback to sync for critical paths.MoneyFusionService interface, mockable via Laravel’s bind or resolves methods.api_key) be scoped per tenant? The package assumes a single config.429 Too Many Requests, 402 Payment Failed) translated into Laravel exceptions? Custom error pages may be needed.MoneyFusion) and bind interfaces for testability.VerifyMoneyFusionWebhook to integrate with Laravel’s throttle or validate middleware.PaymentFailed) to decouple notification logic from controllers.transactions table via a new migration (e.g., add_custom_metadata_to_transactions).DatabaseSeeder for local development.composer require sefako/moneyfusion-laravel and publish assets:
php artisan vendor:publish --provider="Sefako\MoneyFusion\MoneyFusionServiceProvider"
config/moneyfusion.php) and update with live API credentials.php artisan migrate
transactions table if needed (e.g., add reference_id for internal tracking).routes/web.php:
Route::post('/moneyfusion/webhook', [\Sefako\MoneyFusion\Http\Controllers\WebhookController::class, 'handle']);
signed middleware and rate limiting.moneyfusion:test-connection Artisan command to verify API access.$response = $this->post('/pay-in', ['amount' => 100]);
$response->assertRedirect();
config/moneyfusion.php:
'webhook' => [
'log_attempts' => true,
],
webhook_logs table for failed deliveries.composer.json for laravel/framework constraints.Str::of()).config to override if needed:
'api' => [
'base_url' => env('MONEYFUSION_API_URL', 'https://api.moneyfusion.com/v2'),
],
spatie/laravel-queueable-middleware).transaction.status changes via Laravel Scout or a custom observer).composer.json to avoid breaking changes. Monitor GitHub for updates.illuminate/http). Check for conflicts with your app’s dependencies.config/moneyfusion.php. Risk: Hardcoding secrets in version control..env and env() helper, then override config:
'api_key' => env('MONEYFUSION_API_KEY'),
debug mode in config to log API requests/responses:
'debug' => env('APP_ENV') === 'local',
moneyfusion:test-connection and moneyfusion:list-transactions for diagnostics.PaymentGateway).How can I help you explore Laravel packages today?