- What is alphaolomi/laravel-azampay and what does it do?
- It is a Laravel package that wraps AzamPay, Tanzania's payment gateway, in a service provider and facade. It offers a fluent API for mobile money and bank payments, checkout flows, callbacks, and transaction handling. It brokers calls to AzamPay's REST API rather than owning payment state, so it fits best as an adapter behind your own payment interface.
- How do I install laravel-azampay with Composer?
- Install it with Composer using alphaolomi/laravel-azampay and pin the current major version, ^1.0.0. Laravel package discovery should register the service provider and facade automatically. Then publish the config file with php artisan vendor:publish and set your AzamPay credentials and environment.
- Which Laravel and PHP versions does laravel-azampay support?
- The package requires PHP 8.x and supports Laravel 9, 10, and 11, with Laravel 11 support explicitly added in the 1.0.0 release. It relies on Laravel's HTTP client, so it inherits Guzzle, middleware, retry, and logging behavior. It is not intended for non-Laravel PHP apps without manual wiring.
- How do I configure AzamPay credentials in Laravel?
- After publishing the config, set client_id, client_secret, app_name, and the environment for sandbox or production. These values come from your AzamPay account and should be stored in .env rather than committed. The package reads them through Laravel's config repository.
- Does laravel-azampay support sandbox and production environments?
- Yes, the configuration includes an environment setting for sandbox versus production. The technical assessment notes that the config surface is global by default, so multi-tenant apps need extra work if each tenant has its own credentials. Verify per-tenant configurability in the source before relying on it.
- How do I create a checkout session or collect a mobile money payment?
- Use the facade methods for checkout session creation, payment collection, and disbursement after configuring credentials. The package is a thin wrapper, so you still need to map AzamPay transaction states onto your own order state machine. Treat every money-movement call as needing an idempotency key and reconciliation.
- Does laravel-azampay verify AzamPay callback or webhook signatures?
- The package exposes callback handling, but the assessment flags webhook and callback verification as a surrounding concern you must confirm in the source. Small wrappers often leave signature verification to the consumer. Do not rely on callbacks alone; reconcile against AzamPay settlement reports.
- Does it support idempotency keys and safe retries for collect and disburse?
- The assessment lists idempotency on every money-movement call and safe retry semantics as things you must build rather than assume. The package rides on Laravel's HTTP client, which gives you retry middleware and logging, but safe semantics depend on AzamPay's API support. Diff the source and test against sandbox before using retries in production.
- What changed between laravel-azampay 0.2.0 and 1.0.0?
- The 1.0.0 release notes read as CI and dependency hygiene plus Laravel 11 support, with no enumerated breaking API changes. Because it is a semver-major bump, diff src, config keys, and facade method signatures before upgrading. Treat undocumented changes as unknown until verified.
- Is laravel-azampay production-ready, tested, and well maintained?
- It is a small, single-maintainer package with a 1.0.0 release that is largely dependabot activity, so bus factor and long-term maintenance are the main risks. The release notes give no signal on test coverage depth or contract tests against the AzamPay sandbox, so validate with your own integration tests. You also own webhook verification, reconciliation, failure semantics, and compliance, so pin the major version and have a plan to fork or isolate the adapter.