phalconvee / laravel-paga
Paga has made it very easy for businesses to accept payments.This Business Service Library is a Laravel/PHP module that helps you make API calls when processing Paga Business Transactions.
Requires
- php: ^7.1
- guzzlehttp/guzzle: ^7.0.1
- illuminate/support: ^6|^7|^8|^9
Requires (Dev)
- orchestra/testbench: ^4.0
- phpunit/phpunit: ^6|^7|^8
This package is auto-updated.
Last update: 2024-10-23 08:06:55 UTC
README
A Laravel package for working with the Paga Business API.
Installation
PHP 5.4+, and Composer are required.
You can get the latest version of Laravel Paga via composer:
composer require phalconvee/laravel-paga
You'll need to run compser install
or composer update
to download it and have the autoloader updated.
Once Laravel Paga is installed, you need to register the service provider. Open up config/app.php
and add the following to the providers key
'providers' => [ ... Phalconvee\Paga\PagaServiceProvider::class, ... ]
If you use Laravel >= 5.5 you can skip this step and go to
configuration
Phalconvee\Paga\PagaServiceProvider::class
Also, register the Facade like so:
'aliases'=>[ ... 'Paga' => Phalconvee\Paga\Facades\Paga::class ... ]
Configuration
You can publish the configuration file using this command:
php artisan vendor:publish --provider="Phalconvee\Paga\PagaServiceProvider"
A configuration-file named paga.php
with some defaults will be placed in your config
directory:
<?php return [ /** * API Key From Paga Dashboard */ 'apiKey' => env('PAGA_HMAC_API_KEY'), /** * Public Key From Paga Dashboard */ 'publicKey' => env('PAGA_PUBLIC_KEY'), /** * Secret Key / Credentials From Paga Dashboard */ 'secretKey' => env('PAGA_SECRET_KEY') ];
Business services exposed by the package
- getBanks
- getMerchants
- getMerchantServices
- getMobileOperators
- getOperationStatus
- accountBalance
- airtimePurchase
- depositToBank
- validateDepositToBank
- moneyTransfer
- moneyTransferBulk
- onboardMerchant
- merchantPayment
- transactionHistory
- recentTransactionHistory
- registerCustomer
- validateCustomer
Usage
Open your .env file and add your api key, public key, and secret key/credentials like so:
PAGA_HMAC_API_KEY=xxxxxxxxxxxxxx PAGA_PUBLIC_KEY=xxxxxxxxxxxxxx PAGA_SECRET_KEY=xxxxxxxxxxxxxx
If you are using a hosting service like AWS, heroku, ensure to add the above details to your environment variables and configuration variables respectively.
1. Prerequisites
Confirm that your server can conclude a TLSv1.2 connection to Paga's servers. Most up-to-date software have this capability. Contact your service provider for guidance if you have any SSL errors. Don't disable SSL peer verification!
2. Initialize server environment
You'll need to initialize the server environment you intend to run your request against, when performing tasks on Paga.
There's both the test and live environment. Your credentials will be authenticated against the enironment you initialize.
It is recommended to initialize this environment in your constructor when using this package within a controller class.
<?php use Phalconvee\Paga\Facades\Paga; class MyExampleController extends Controller { public function __construct() { Paga::setTest(true); // passing false (boolean) sets environment to live. } }
This package provides fluent methods as well. See below.
/** * This method generates a unique secure cryptographic hash token to use as transaction reference. * @returns string */ Paga::getTransactionReference(); /** Alternatively, use the helper */ paga()->getTransactionReference(); /** * This method returns list of banks integrated with Paga. * @returns array */ Paga::getBanks(); /** Alternatively, use the helper */ paga()->getBanks(); /** * This method returns list of merchants integrated with Paga. * @returns array */ Paga::getMerchants(); /** Alternatively, use the helper */ paga()->getMerchants(); /** * This method returns list of merchants services registered on Paga. * @returns array */ Paga::getMerchantServices(); /** Alternatively, use the helper */ paga()->getMerchantServices(); /** * This method returns operation status per transaction. * @returns array */ Paga::getOperationStatus(); /** Alternatively, use the helper */ paga()->getOperationStatus(); /** * This method returns mobile operators on Paga. * @returns array */ Paga::getMobileOperators(); /** Alternatively, use the helper */ paga()->getMobileOperators(); /** * This method allows you to transfer funds from a variety of sources via Paga. * @returns array */ Paga::moneyTransfer(); /** Alternatively, use the helper */ paga()->moneyTransfer(); /** * This method allows you to make bulk money transfer via Paga. * @returns array */ Paga::moneyTransferBulk(); /** Alternatively, use the helper */ paga()->moneyTransferBulk(); /** * This method allows you to purchase airtime via Paga. * @returns array */ Paga::airtimePurchase(); /** Alternatively, use the helper */ paga()->airtimePurchase(); /** * This method allows you to get account balance on Paga. * @returns array */ Paga::accountBalance(); /** Alternatively, use the helper */ paga()->accountBalance(); /** * This method allows you deposit funds into any bank account. * @returns array */ Paga::depositToBank(); /** Alternatively, use the helper */ paga()->depositToBank(); /** * This method allows to validate deposit to bank via Paga. * @returns array */ Paga::validateDepositToBank(); /** Alternatively, use the helper */ paga()->validateDepositToBank(); /** * This method allows to make payments to registered merchants on Paga. * @returns array */ Paga::merchantPayment(); /** Alternatively, use the helper */ paga()->merchantPayment(); /** * This method gets merchant Paga transaction history. * @returns array */ Paga::transactionHistory(); /** Alternatively, use the helper */ paga()->transactionHistory(); /** * This method gets merchant recent Paga transaction history (last 5 records). * @returns array */ Paga::recentTransactionHistory(); /** Alternatively, use the helper */ paga()->recentTransactionHistory(); /** * This method allows aggreagtor organisations create sub organisations on Paga. * @returns array */ Paga::onBoardMerchant(); /** Alternatively, use the helper */ paga()->onBoardMerchant(); /** * This method creates customer on Paga. * @returns array */ Paga::registerCustomer(); /** Alternatively, use the helper */ paga()->registerCustomer(); /** * This method validates customer created on Paga. * @returns array */ Paga::validateCustomer(); /** Alternatively, use the helper */ paga()->validateCustomer();
3. Closing notes
For more information on the services listed above, visit the Paga DEV website
Check SAMPLES for more sample calls.
Todo
- Add Comprehensive Tests
- Implement advanced customer verification methods.
Changelog
Please see CHANGELOG for more information what has changed recently.
Contributing
Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities.
Security
If you discover any security related issues, please email phalconvee@gmail.com instead of using the issue tracker.
How can I thank you?
Kindly star the github repo. You can also share the link for this repository on Twitter, StackOverflow or HackerNews.
I Appreciate it 🙏. Henry Ugochukwu.
Credits
License
The MIT License (MIT). Please see License File for more information.