Download the PHP package phpcorelab/upi-gateway without Composer
On this page you can find all versions of the php package phpcorelab/upi-gateway. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package upi-gateway
upi-gateway
Provider-agnostic PHP library for UPI QR code generation and payment status polling. Switch payment gateways — and environments — with a single config change.
Installation
Requires PHP 8.1+.
Supported Providers
| Provider | Sandbox URL | Live URL | QR | Poll | Refund | Webhook |
|---|---|---|---|---|---|---|
| Razorpay | api.razorpay.com (test keys) | api.razorpay.com (live keys) | ✅ | ✅ | ✅ | ✅ |
| PhonePe | api-preprod.phonepe.com | api.phonepe.com | ✅ | ✅ | ✅ | ✅ |
| Paytm | pguat.paytm.io | securegw.paytm.in | 🚧 | 🚧 | 🚧 | 🚧 |
Razorpay note: Razorpay uses the same base URL for both environments. Sandbox mode is activated by using test-mode API keys (
rzp_test_*). Live mode uses production keys (rzp_live_*).
Configuration
Provide both sandbox and live credentials upfront. The active environment determines which set is used at runtime — no code changes needed when going live.
Shorthand (single key pair)
If you only have one set of credentials (e.g. during initial development),
you can use the plain key_id / key_secret keys and the adapter will fall back to them:
Usage
1. Generate a UPI QR code
2. Poll for payment status
Synchronous:
Async / queue-based (recommended for production):
3. Handle webhooks
4. Switch provider or environment at runtime
Important: Never switch to
liveenvironment at runtime in a test or staging context. The environment should be set via config and treated as deployment-level configuration.
Adding a Custom Provider
DTOs
| Class | Key Properties |
|---|---|
OrderPayload |
orderId, amountPaisa, currency, customerName, customerPhone |
QrResult |
transactionId, qrString, qrImageUrl, expiresAt, raw |
PaymentStatus |
transactionId, state (enum), amountPaisa, providerRef, failureReason |
RefundResult |
refundId, success, message, raw |
PaymentState enum: Pending · Success · Failed · Expired · Refunded
Environment enum: Sandbox · Live
Exceptions
| Exception | When thrown |
|---|---|
ProviderException |
HTTP / API call to provider fails |
WebhookVerificationException |
Signature or checksum mismatch |
ProviderNotFoundException |
Provider name not registered |
All extend UpiGatewayException extends RuntimeException.
Running Tests
License
MIT