fannypack/beyonic

There is no license information available for the latest version (2.1) of this package.

laravel beyonic mobile money payment implementation

2.1 2019-09-05 08:47 UTC

This package is auto-updated.

Last update: 2024-04-05 19:26:10 UTC


README

This is a simple/basic implementation of beyonic payments in laravel 5

Actions supported

Note: You must have a valid Beyonic account to use this library

  • RECEIVING MONEY [Collection request]
  • SENDING MONEY [Payments]

For more information visit Beyonic

Installation

composer require fannypack/beyonic

For Laravel <= 5.4 Register service provider

FannyPack\Beyonic\BeyonicServiceProvider::class,

For Laravel <= 5.4 Register Facade

'Beyonic' => FannyPack\Beyonic\Beyonic::class,

For Laravel > 5.4 Service provider and Facade are discovered automatically

After the service provider is registered run this command

php artisan vendor:publish

This command will create a copy of the library's config file and migrations into your code base

beyonic.php

Run migrations to create beyonic_payments table to store your payment instances

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

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

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

$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

$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

$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

Bugs

For any bugs found, please email me at andrewmvp007@gmail.com or register an issue at issues