shaqi-labs / pay-bridge
PHP library for integrating multiple payment gateways
v1.0.1
2026-03-18 22:31 UTC
Requires
- php: ^8.0
- ext-curl: *
- ext-json: *
- ext-openssl: *
- getsafepay/safepay-php: ^1.0
- getsafepay/sfpy-php: ^0.0.9
README
Pay Bridge is a PHP library that provides a consistent way to integrate multiple payment gateways (Pakistan-focused). Each gateway has its own *Client (configuration + HTTP) and *API (operations) class.
Table of Contents
- Requirements
- Installation
- Quick Start
- Examples
- Gateways
- Docs
- Configuration
- Error Handling
- Security Notes
- License
Requirements
- PHP
^8.0 - Extensions:
ext-curl,ext-json,ext-openssl
Installation
To install Pay Bridge, you can use Composer. Run the following command:
composer require shaqi-labs/pay-bridge
Quick Start
Every gateway follows the same pattern:
- Create a
*Clientwith your credentials/config - Create a
*APIusing that client - Call the API methods
Example (AbhiPay):
<?php require __DIR__ . '/vendor/autoload.php'; use ShaqiLabs\AbhiPay\AbhiPayAPI; use ShaqiLabs\AbhiPay\AbhiPayClient; $client = new AbhiPayClient([ 'merchant_id' => 'YOUR_MERCHANT_ID', 'secret_key' => 'YOUR_SECRET_KEY', 'return_url' => 'https://example.com/return', // Optional network hardening (defaults are already set) 'timeout' => 30, 'connect_timeout' => 10, ]); $api = new AbhiPayAPI($client); $result = $api->createCheckoutLink([ 'amount' => 25.30, 'description' => 'Test order', ], 'url'); // url / response / redirect var_dump($result);
Examples
Examples live in examples/ and use placeholder credentials (replace with your sandbox/production values).
composer install php examples/AbhiPay.php
Gateways
| Provider | Usage Guide | Type | API Doc |
|---|---|---|---|
| Safe Pay | Safe Pay Usage Guide | Hosted | Safe Pay API Docs |
| Safe Pay Embedded | Safe Pay Embedded Usage Guide | Embedded | Safe Pay Embedded API Docs |
| UBL | UBL Usage Guide | Hosted | UBL API Docs |
| PayFast | PayFast Usage Guide | Hosted | PayFast API Reference |
| Alfalah IPG | Alfalah IPG Usage Guide | Hosted | Alfalah IPG API Docs |
| Alfalah APG | Alfalah APG Usage Guide | Hosted | Alfalah APG API Docs |
| JazzCash | JazzCash Usage Guide | Both | JazzCash API Docs |
| EasyPaisa | EasyPaisa Usage Guide | Both | EasyPaisa Merchant Portal |
| AbhiPay | AbhiPay Usage Guide | Hosted | AbhiPay API Docs |
| BaadMay | BaadMay Usage Guide | Hosted | BaadMay API Docs |
Docs
- Usage guides (per gateway) are in
src/<Gateway>/Usage Guide <Gateway>.mdand linked in the table above. - PDF/API documentation shipped in this repo (see
docs/):- Alfalah APG: API Docs Alfalah APG (PDF)
- BaadMay: API Docs BaadMay (PDF)
- JazzCash: API Docs JazzCash (PDF)
- UBL: Api Docs UBL (PDF)
- Internal notes (this repo):
Configuration
- Most clients accept:
environment(usuallysandbox/production, where supported)timeout(seconds) andconnect_timeout(seconds)
- Where supported, prefer returning data/URL and handle redirects in your application:
- AbhiPay:
createCheckoutLink($order, 'url' | 'response' | 'redirect') - BaadMay:
createCheckoutLink($order, 'url' | 'response' | 'redirect')
- AbhiPay:
Error Handling
- Each gateway throws its own exception class (e.g.
ShaqiLabs\AbhiPay\AbhiPayException). - Network layer throws on:
- cURL errors
- HTTP status
>= 400 - Unparsable JSON responses (where JSON is expected)
Security Notes
- Never commit real merchant credentials / API keys into the repository.
- Use environment variables or a secrets manager in production.
- Avoid automatic redirects inside libraries when building APIs/CLI apps; return URLs/data and redirect at the application layer.