Skip to content

Paystack PHP SDK

License

Notifications You must be signed in to change notification settings

matscode/paystack-php-sdk

Repository files navigation

Paystack PHP SDK

API Doc | Demo

Visit matscode/paystack for v1.9.1 and below of this SDK

Available resources

  • Transaction (Initialize, List, Verify)
  • Bank (List, Resolve account)

Resource roadmap

More resources would be added in time

  • Customers
  • Plans
  • Subscription
  • Transfers
  • others...

This SDK communicates with Paystack API. You need to have a paystack merchant account and paystack secret key to use this SDK.

Development is actively ongoing while releases are Stable.
If you find a BUG/Security Issue, do be kind to open an issue or email Me.

Requirements

  • GuzzleHttp

Installation

composer require matscode/paystack-php-sdk
require_once __DIR__ . "/vendor/autoload.php";

Manual

  • Download the archive
  • Extract into your project
  • And lastly
    require_once __DIR__ . "/vendor/autoload.php";

Initialize Paystack SDK

use Matscode\Paystack\Paystack;

$paystackSecret = 'sk_test_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
$Paystack = new Paystack($paystackSecret);

Transaction Resource

Initialize Charge

$response = $Paystack->transaction->initialize([
            'email'  => 'customer.email@gmail.com',
            'amount' => 500000, // amount is in kobo
            'callback_url' => 'https://www.app.local/paystack/transaction/verify'
        ]);

OR

// Set data to post using this method
$response = $Paystack->transaction
            ->setCallbackUrl('https://www.app.local/paystack/transaction/verify')
            ->setEmail('customer.email@gmail.com')
            ->setAmount(75000) // amount is treated in Naira while using this setAmount() method
            ->initialize();

Now do a redirect to payment page (using authorization_url)
Recommended to check if authorization_url is set, and save your transaction reference code. useful to verify Transaction status

// recommend to save Transaction reference in database and do a redirect
header('Location: ' . $response->data->authorization_url);

Verifying Transaction

$reference_code = $_GET['reference']
$response = $Paystack->transaction->verify($reference_code);

OR

// This method does the check for you and return `(bool) true|false` 
$response = $Paystack->transaction->isSuccessful($reference_code);

Bank Resource

Get list of banks

$response = $Paystack->bank->list();

Resolve account info

$bank_code='0000';
$account_number='0987654321'
$response = $Paystack->bank->resolve($bank_code, $account_number); 
//result: returns account information is found, throws exception otherwise

Contact

Personal Home | Email