laravel-payant
, (*1)
Inspired By unicodeveloper's laravel-paystack, (*2)
Main functions from Jonathan Itakpe's payantNG-php, (*3)
A Laravel 5 Package for working with Payant, (*4)
Installation
PHP 5.4+, and Composer are required., (*5)
To get the latest version of Laravel Payant, simply add the following line to the require block of your composer.json
file., (*6)
"olaoluwa-98/laravel-payant": "1.1.*"
You'll then need to run composer install
or composer update
to download it and have the autoloader updated., (*7)
Once Laravel Payant is installed, you need to register the service provider. Open up config/app.php
and add the following to the providers
key., (*8)
Olaoluwa98\Payant\PayantServiceProvider::class
Also, register the Facade like so:, (*9)
'aliases' => [
...
'Payant' => Olaoluwa98\Payant\Facades\Payant::class,
...
]
Configuration
You can publish the configuration file using this command:, (*10)
php artisan vendor:publish --provider="Olaoluwa98\Payant\PayantServiceProvider"
A configuration-file named payant.php
with some sensible defaults will be placed in your config
directory:, (*11)
<?php
return [
/**
* Public Key From Payant Dashboard
*
*/
'public_key' => env('PAYANT_PUBLIC_KEY'),
/**
* Private Key From Payant Dashboard
*
*/
'private_key' => env('PAYANT_PRIVATE_KEY'),
/**
* Payant API MODE
*/
'mode' => env('PAYANT_MODE'),
];
Usage
Open your .env file and add your public key, private key, demo status like so:
You can get them from your Payant Dashboard, (*12)
PAYANT_PUBLIC_KEY=xxxxxxxxxxxxx
PAYANT_PRIVATE_KEY=xxxxxxxxxxxxx
PAYANT_MODE= DEMO or LIVE
Functions are named based on the documentation located API Documentation
Read the functions in the documentation to know parameters needed for each function, (*13)
You can use the package in your controller by adding use Payant;
, (*14)
$client_data = ['first_name' => 'Emmanuel',
'last_name' => 'Awotunde',
'email' => 'awotunde.emmanuel1@gmail.com',
'phone' => '+2348090579032'];
Payant::addClient($client_data);
the function above would return the following JSON data if request is successful, (*15)
{
"status": "success",
"message": "Client created successfully.",
"data": {
"company_id": <company_id>,
"name": "<name>",
"first_name": "<first_name>",
"last_name": "<last_name>",
"email": "<email>",
"phone": "<phone_no>",
"website": "<website>",
"address": "<address>",
"type": "Customer",
"settlement_bank": "",
"account_name": "",
"account_number": "",
"status": "1",
"created_at": "date",
"updated_at": "date",
"id": <id_of_client>
}
}
Functions in this package
- Miscellaneous
-
getBanks()
[GET]
-
resolveAccount( array $client_data )
[POST]
- Client
-
addClient( array $client_data )
[POST]
-
getClient( $client_id )
[GET]
-
editClient( $client_id, array $client_data )
[PUT]
-
deleteClient( $client_id )
[DELETE]
- Invoices
-
addInvoice( $client_id, array $client_data, $due_date, $fee_bearer, array $items )
[POST]
-
getInvoice( string $reference_code )
[GET]
-
sendInvoice( string $reference_code )
[GET]
-
getInvoiceHistory( $period, $start = null, $end = null )
[POST]
-
deleteInvoice( string $reference_code )
[DELETE]
- Transfer
-
addTransfer( array $client_data, string $amount )
[POST]
-
getTransfer( string $reference_code )
[GET]
-
getTransferHistory( $period, $start = null, $end = null )
[POST]
-
deleteTransfer( string $reference_code )
[DELETE]
- Payments
-
addPayment( string $reference_code, string $due_date, string $amount, string $channel )
[POST]
-
getPayment( string $reference_code )
[GET]
-
getPaymentHistory( string $period, string $start, string $end )
[POST]
-
deleteTransfer( string $reference_code )
[DELETE]
- Wallets
-
addWallet( string $name, string $passcode )
[POST]
-
getWallet( string $reference_code )
[GET]
-
changeWalletPasscode( string $reference_code, string $old_passcode, string $passcode )
[PUT]
-
getWallets()
[GET]
-
setWalletStatus( string $reference_code )
[GET]
-
withdrawFromWallet( string $reference_code, array $client_data, string $amount, string $passcode )
[POST]
-
getWalletTransactions( string $reference_code, $period, $start = null, $end = null )
[POST]
- Products
-
addProduct( string $name, string $description, string $unit_cost, string $type )
[POST]
-
getProduct( $product_id )
[GET]
-
editProduct( $product_id, array $product_data )
[PUT]
-
getProducts()
[GET]
-
deleteProduct( $product_id )
[DELETE]
Todo
Contributing
Please feel free to fork this package and contribute by submitting a pull request to enhance the functionalities., (*16)
How can I thank you?
Why not star the github repo? I'd love the attention! Why not share the link for this repository on Twitter or HackerNews? Spread the word!, (*17)
Don't forget to follow me on twitter!, (*18)
Thanks!
Emmanuel Awotunde., (*19)
License
The MIT License (MIT). Please see License File for more information., (*20)