- How do I integrate this Sberbank Omnipay driver into a Laravel application?
- First, install the package via Composer: `composer require andrewnovikof/omnipay-sberbank`. Then, register the gateway in your Laravel Service Provider using `Omnipay::create('Sberbank')`, configure credentials via `.env`, and bind it to your app’s container. Use Laravel’s facades or dependency injection to trigger payments like `authorize()` or `purchase()`.
- Does this package support Laravel’s service container and dependency injection?
- Yes, the package is Omnipay-based and works natively with Laravel’s service container. Bind the gateway in your `AppServiceProvider` and inject it into controllers or services. Laravel’s facades (e.g., `PaymentGateway`) can also abstract the integration for cleaner code.
- What Laravel versions and PHP versions does this package support?
- The package supports PHP 7.1+ (v3.2.2) or PHP 8+ (v3.3.0). Since Omnipay has no Laravel-specific dependencies, it works with any Laravel version that supports these PHP versions. Check your Laravel app’s PHP version compatibility first.
- How do I enable test mode for Sberbank payments in Laravel?
- Use `$gateway->setTestMode(true)` before sending requests. Configure test credentials in your `.env` file (e.g., `SBERBANK_TEST_USERNAME`). The package handles test mode seamlessly, allowing you to validate flows without live transactions.
- Can I handle Sberbank’s redirect responses in Laravel?
- Yes, after calling `$response->getRedirectUrl()`, redirect users to the Sberbank payment page. Use Laravel’s `Redirect` facade or middleware to process the callback at the `returnUrl`. The package provides `$response->getOrderId()` to track transactions server-side.
- Are there any known issues with webhook or asynchronous notifications?
- The package does not natively support Sberbank’s asynchronous notifications (webhooks). You’ll need to implement a Laravel route to validate and process webhooks manually, likely using Sberbank’s API to verify signatures and update payment statuses in your database.
- What’s the retry strategy for failed transactions in this package?
- The package itself does not include built-in retry logic. For failed transactions, implement a Laravel job queue (e.g., `laravel-queue`) to retry requests with exponential backoff. Use Omnipay’s `send()` method in a loop, catching exceptions to avoid infinite retries.
- How do I securely store Sberbank API credentials in Laravel?
- Store credentials in Laravel’s `.env` file (e.g., `SBERBANK_USERNAME`, `SBERBANK_PASSWORD`). Use Laravel’s `env()` helper or the `config()` facade to access them. For enhanced security, consider using Laravel Forge, Envoyer, or AWS Secrets Manager for production deployments.
- Does this package handle PCI DSS compliance or tokenization?
- The package itself does not enforce PCI DSS compliance—this is your responsibility. Use Laravel’s encryption (e.g., `encrypt()`) for sensitive data and ensure your server meets PCI DSS requirements. For tokenization, rely on Sberbank’s API or a dedicated PCI-compliant service like Stripe.
- What alternatives exist if this package lacks features like webhooks or retries?
- Consider forking the repository to add missing features or using a more actively maintained Omnipay driver like `omnipay/stripe` for inspiration. Alternatively, build a custom Laravel service layer around Omnipay’s core to handle webhooks, retries, and idempotency with Laravel’s queues and caching.