About this library
This is a simple/basic implementation of beyonic payments in laravel 5, (*1)
Actions supported
Note: You must have a valid Beyonic account to use this library
- RECEIVING MONEY [Collection request]
- SENDING MONEY [Payments], (*2)
For more information visit Beyonic, (*3)
Installation
composer require fannypack/beyonic, (*4)
For Laravel <= 5.4 Register service provider, (*5)
FannyPack\Beyonic\BeyonicServiceProvider::class,
For Laravel <= 5.4 Register Facade, (*6)
'Beyonic' => FannyPack\Beyonic\Beyonic::class,
For Laravel > 5.4 Service provider and Facade are discovered automatically, (*7)
After the service provider is registered run this command, (*8)
php artisan vendor:publish
This command will create a copy of the library's config file and migrations into your code base, (*9)
beyonic.php
Run migrations to create beyonic_payments table to store your payment instances, (*10)
php artisan migrate
Environment setup
The library loads configurations from the .env file in your application's root folder. These are the contents of beyonic.php, (*11)
return [
'apiKey' => env('BEYONIC_API_KEY', ''),
'currency' => env('CURRENCY', 'UGX'),
'callback_url' => env('CALLBACK_URL', ''),
'account_id' => env('ACCOUNT_ID', ''),
];
Usage in context of your beyonic account
Using it with your models, add trait FannyPack\Beyonic\Billable to your models and make sure your model has a phone_number field, (*12)
namespace App;
use FannyPack\Beyonic\Billable;
use Illuminate\Database\Eloquent\Model;
class Account extends Model
{
use Billable;
}
Requesting payment from a billable instance, this method takes an optional phone number in case you want to provide a
different number to withdraw the funds from and the method returns a FannyPack\Beyonic\Payment::class instance, (*13)
$account = Account::find(1);
$payment = Beyonic::deposit($account, $amount, $reason, $optional_phone_number);
// or
$payment = $account->deposit($amount, $reason, $optional_phone_number);
Information about a Collection request, (*14)
$payment = $account->payments[0]
$response = Beyonic::info($payment);
// or
$response = $payment->info();
Sending payment to th phone number associated with the billable instance, this method takes an optional phone number
in case you want to provide a different number to deposit the funds to and the method returns a
FannyPack\Beyonic\Payment::class instance, (*15)
$payment = Beyonic::withdraw($account, $amount, $reason, $optional_phone_number);
// or
$payment = $account->withdraw($amount, $reason, $optional_phone_number);
For information about the response body visit Beyonic, (*16)
Bugs
For any bugs found, please email me at andrewmvp007@gmail.com or register an issue at issues, (*17)