- What is vandarpay/cashier and what does it do?
- vandarpay/cashier is a Laravel package that wraps the VandarPay Internet Payment Gateway (IPG) and Direct Debit APIs behind a Cashier-style fluent interface. It handles payment request creation, callback verification, transaction verification, and Eloquent-backed storage of payment and mandate records. It is a thin, vendor-specific binding rather than a general-purpose payment abstraction, so it is only useful if you are transacting in IRR/IRT through Vandar.
- How do I install vandarpay/cashier in a Laravel application?
- Install it with Composer and let Laravel package auto-discovery register the service provider. Publish the config file and supply your Vandar merchant credentials through environment variables. Manual service-provider registration is normally unnecessary on supported Laravel versions. Check composer.json constraints against your Laravel and PHP versions before installing to avoid Guzzle or illuminate/support conflicts.
- Which Laravel and PHP versions does vandarpay/cashier support?
- The README does not publish a clear compatibility matrix, and the package was last released in February 2024, so Laravel 9/10-era applications on PHP 8.1+ are the safest fit. There is no public evidence of CI coverage for Laravel 11 or 12. Validate the composer.json constraints against your exact versions and run the test suite in a sandbox before committing.
- How do I configure VandarPay credentials for IPG payments?
- Credentials are supplied via environment variables and read through a publishable config file. You need a Vandar merchant account and the credentials Vandar issues for IPG access. Configure callback URLs so Vandar can reach your application over HTTPS. Confirm whether amounts in your config and requests are expressed in Rial or Toman before going live.
- Does vandarpay/cashier verify payment callbacks and handle idempotency?
- The package provides helpers for the callback step, but you should not assume it enforces signature validation, idempotency, or amount-integrity checks on your behalf. Payment code is high-blast-radius, so verify callback signatures and compare the returned amount against the stored order independently in your adapter. Treat the package as a scaffold you own and harden rather than a fully audited dependency.
- Can vandarpay/cashier handle Direct Debit mandates and subscriptions?
- Yes, Direct Debit support is one of the package's stated features, including mandate creation and lifecycle operations. However, the package can only partially abstract mandate consent, revocation, retry, expiry, and settlement timing, which remain Vandar concerns. Plan to model mandate state in your own domain and spike the full Direct Debit flow in the Vandar sandbox first.
- Does vandarpay/cashier support refunds and partial captures?
- The overview focuses on payment request creation, callback handling, and verification rather than refunds or partial captures. There is no published evidence that refunds or settlement reconciliation are in scope. If you need those operations, confirm against the source code and Vandar's API documentation before relying on the package.
- How does vandarpay/cashier handle Rial versus Toman currency units?
- Currency denomination is not something the package can settle for you; Iranian payment rails use Rial while many applications display Toman, and mixing them is a common production incident. Decide on a single convention at your adapter boundary and normalize amounts in one place with tests. Verify how Vandar expects the amount field to be formatted in each API call.
- Is vandarpay/cashier production-ready and actively maintained?
- vandarpay/cashier is small, single-vendor, and was last released in February 2024, with no evidence of a broad contributor base or security audit. The dominant risks are bus factor, abandonment, and Laravel major-version drift rather than code quality alone. Treat it as a starting scaffold you will own, pin the version, and review callback and amount logic yourself.
- What are alternatives to vandarpay/cashier for Iranian payment gateways in Laravel?
- Alternatives include building a small adapter directly against Vandar's API, using a broader Laravel payment abstraction, or wrapping another Iranian PSP behind the same internal PaymentGateway port. Because vandarpay/cashier is a thin, vendor-specific binding, defining your own port and implementing it with this package as the adapter keeps your options open. This also gives you a seam to swap PSPs and enforce idempotency and amount checks.