PHP & Laravel package, that makes working with Paystack api a breeze.

dev-master 2023-12-21 01:47 UTC

This package is auto-updated.

Last update: 2024-04-21 02:38:14 UTC


README

Latest Stable Version License

Paystack is a PHP & Laravel package, that makes working with Paystack api a breeze.

Laravel and Core PHP supported library for Paystack

Features

  • Customers

  • Transactions

  • Transaction Split

  • Terminal

  • Misc

Installation

  1. Using Composer

    composer require musheabdulhakim/paystack
    require_once __DIR__ . "/vendor/autoload.php";
  2. Manual

  • Download the archive
  • Extract into your project
  • Run composer
    composer install
  • And lastly
    require_once __DIR__ . "/vendor/autoload.php";
  1. Clone the repository

    git clone https://github.com/MusheAbdulHakim/Paystack.git
    composer install
    require_once __DIR__ . "/vendor/autoload.php";

Usage

Initialize Paystack

  1. Using .env file, set the values of your keys

    SECRET_KEY = "sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    PUBLIC_KEY = "pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    MERCHANT_EMAIL = "test@example.com"
        <?php
    
        use Musheabdulhakim\Paystack\Paystack;
    
        include_once('./vendor/autoload.php');
        $paystack = new Paystack();
  2. If you don't want to use .env file, you can set the values by passing it to the initialized class.

        <?php
    
        use Musheabdulhakim\Paystack\Paystack;
    
        include_once('./vendor/autoload.php');
    
        $paystack = new Paystack([
            'SECRET_KEY' => 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
            'PUBLIC_KEY' => 'pk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx',
            'MERCHANT_EMAIL' => 'test@example.com'
        ]);

Transaction

Initialize Transaction

$transaction = $paystack->transaction(
    $email, 
    $amount, 
    [
        // optional parameters
    ]
);

//or

$transaction = $paystack->transaction('test@transaction.com','1000');

//or

$transaction = $paystack->transaction('test@transaction.com','1000',[
    // optional parameters
]);

//or

$paystack->transaction->init(
    $email, 
    $amount, 
    [
        // optional parameters
    ]
);

//or

$params = [
    'email' => "customer@email.com",
    'amount' => "20000",
    'split_code' => 'SPL_98WF13Eb3w'
];
$paystack->transaction->initialize($params);

Verify Transaction

Verify Transaction

$transaction = $paystack->transaction->verify('1vl0abs51p');
$transaction = $paystack->transaction()->verify('1vs0ars51p');

//check the status of the transaction
$transaction_status = $paystack->transaction->verify('1vl0abs51p')["status"];

List Transaction

List Transaction


$transactions = $paystack->transaction->list();
//or 
$transaction = $paystack->transaction()->list();

//pass optional parameters to the list method
$params = [
    'page' => '',
    'customer' => '',
    'terminalid' => ''
];
$transactions = $paystack->transaction->list($params);

Fetch Transaction

Fetch Transaction


$transaction = $paystack->transaction->fetch(2745284445);
//or 
$transaction = $paystack->transaction()->fetch(2745284445);

Charge Authorization

Charge Authorization

$params = [
    //optional parameters
];
$transaction = $paystack->transaction->chargeAuth('test@gmail.com','10000','AUTH_ir6emhfrpk',$params);


View Transaction Timeline

View Transaction Timeline


$transaction_timeline = $paystack->transaction->timeline('1vl0abs51p');

Transaction Totals

Transaction Totals

$params = [
    // Your query parameters
];

$transation_total = $paystack->transaction->total($params);

Export Transactions

Export Transactions

$params = [
    // Your query parameters
];

$export = $paystack->transaction->export($params);

Partial Debit

Partial Debit

$params = [
    // Your query parameters
];

$trans = $paystack->transaction->partialDebit($authorization_code, $currency, $amount, $email, $params);

Customization

  1. You can override the Client class and use your own http client

Test

To run the tests, run the following command from the project folder.

 ./vendor/bin/phpunit

License

The MIT License (MIT). See the License File for more information.