- How do I install kadirov/payme in a Laravel application?
- Install the package with Composer using composer require kadirov/payme. Laravel's package auto-discovery registers the service provider, and you can then publish the configuration file with the vendor:publish Artisan command. After publishing, add your Payme merchant credentials to the config or your .env file.
- Which Payme Merchant API methods does this package support?
- The package implements the core Payme Merchant API endpoints: CheckPerformTransaction, CreateTransaction, PerformTransaction, CancelTransaction, and CheckTransaction. These cover the full order lifecycle, from validating that a payment can be performed through to confirming, cancelling, or checking the status of a transaction. Each endpoint is wrapped in framework-friendly classes so you do not have to write the low-level protocol handling yourself.
- How do I configure my Payme merchant key and other credentials?
- Credentials are stored in the package's published configuration file, which is typically populated from environment variables. You add the merchant key issued by Payme, and the package uses it for merchant authentication and validation of incoming requests. Amount handling, the order model, and database connection settings are configurable in the same file.
- Can I use my own Eloquent order model with kadirov/payme?
- Yes. The order model is configurable, so you can point the package at your existing Order, Payment, or Invoice model instead of adopting a new one. This lets you keep your current database schema and business logic while still using the package's transaction handling. You can also configure the database connection the package uses for its operations.
- How does the package handle Payme callbacks and request validation?
- Payme sends Merchant API requests to your application, and the package provides the routes, middleware, and request validation needed to receive them securely. Incoming calls are authenticated using your Payme merchant key before any transaction logic runs, so unauthenticated requests are rejected. You only need to configure the endpoint in your Payme merchant cabinet and ensure the route is reachable.
- Does kadirov/payme provide events or hooks for transactions?
- Yes, the package fires event hooks for successful, cancelled, and failed transactions. You can listen for these events in your own application to update order statuses, send notifications, or trigger fulfilment logic. This keeps payment side effects out of the package internals and inside your domain code.
- Which Laravel and PHP versions are supported by kadirov/payme?
- Version support is defined in the package's composer.json, so check the require section and the README for the currently supported PHP and Laravel versions. Because it is a Laravel-native package with a service provider and config publishing, it targets modern Laravel releases. Confirm compatibility with your application's framework version before adding it to a production project.
- How can I test a Payme integration without taking real payments?
- Use Payme's test merchant credentials and send sample Merchant API requests to your local or staging endpoint to exercise the CheckPerformTransaction, CreateTransaction, and PerformTransaction flow. Because the package validates authentication, make sure the test requests are signed with the matching test key. Run through success, cancellation, and failure paths and verify that your event listeners update orders correctly before going live.
- Is kadirov/payme secure enough for production use?
- The package authenticates every Payme request with your merchant key and validates incoming payloads before processing transactions, which is the expected baseline for a payment integration. In production you should still serve your callback endpoint over HTTPS, keep merchant keys out of version control, and log transaction activity for auditing. Review the package code and your Payme merchant cabinet settings before enabling live payments.
- How are refunds and cancelled transactions handled with this package?
- Refunds and cancellations are processed through the CancelTransaction endpoint, which is part of the implemented Merchant API workflow. The package manages the transaction state change and fires the cancelled transaction event so your application can reverse an order or issue a refund in your own logic. Amount handling is configurable, so make sure the values you pass match Payme's expected units for your merchant account.