- Which Turkish payment gateways does this package support, and can I add more?
- The package supports Sipay, Param/TurkPOS, iyzico, AHL Pay, and RubikPara out of the box. While it’s designed for Turkish providers, you can extend it by creating custom provider classes and binding them to Laravel’s service container. The architecture is modular, so adding non-Turkish providers (like Stripe) is technically possible but may require additional compliance adjustments.
- Do I need Livewire for this package, or is it optional?
- Livewire 3.5+ is required only for the built-in dashboard (Pulse-like UI). If you’re not using Livewire elsewhere, you can still use the package’s core payment processing features without the dashboard. The dashboard is optional and can be disabled entirely if needed.
- How do I test 3D Secure flows in CI/CD? Are sandbox environments available?
- Each provider offers a sandbox environment (e.g., iyzico’s test API, Sipay’s demo mode). The package supports these sandbox modes via configuration. For 3D Secure testing, use local redirects or tools like Laravel Dusk to simulate iframe embedding and callback flows. Always test both success and failure scenarios.
- What Laravel and PHP versions are supported, and what if I’m on an older version?
- The package requires Laravel 13+ and PHP 8.3+. If you’re on an older version, you’ll need to upgrade to use it. The package leverages modern PHP features like enums and typed properties, so downgrading isn’t supported. Check the [upgrade guide](https://laravel.com/docs/13.x/upgrade) for migration steps.
- How do I handle PCI compliance beyond what the package provides?
- The package abstracts most PCI-compliant flows (e.g., 3D Secure, tokenization). However, you may need additional controls like custom encryption for sensitive data or tokenization for stored cards. The package doesn’t enforce PCI DSS; it’s your responsibility to align with requirements like data retention policies and access logs.
- What happens if a payment provider’s API fails? Are there fallback mechanisms?
- The package doesn’t include built-in retry logic or circuit breakers, but you can implement these using Laravel’s queue workers (e.g., Horizon) or middleware. For critical failures, consider manual overrides via the dashboard or custom logic in your `PaymentService` bindings.
- Can I use this package alongside Stripe or PayPal for international payments?
- Yes, but you’ll need to integrate them separately since this package focuses on Turkish providers. Use Laravel’s service container to bind custom providers alongside the existing ones. Ensure your app handles currency conversions and compliance differences (e.g., GDPR vs. Turkish data laws).
- How do I customize the dashboard or disable it entirely?
- The dashboard is optional and can be disabled by setting `PAYMENT_KIT_ENABLED=false` in your `.env`. To customize it, override the Livewire components in `resources/views/vendor/payment-kit`. You can also publish only the config (without migrations) using `php artisan vendor:publish --tag=payment-kit-config`.
- Are there performance concerns with payment processing latency?
- Payment processing latency depends on the provider’s API response times. For high-traffic routes, consider offloading payment processing to queues (e.g., Laravel Queues) and using async callbacks. The package supports webhook-based updates, which can reduce synchronous delays.
- How do I track custom payment events beyond the Pulse dashboard?
- The package emits Laravel events (e.g., `PaymentProcessed`, `PaymentFailed`) that you can listen to via event listeners or broadcast to services like Mixpanel. For custom logs, extend the `Payment` model or use Laravel’s logging facade to record additional metadata during payment lifecycle events.