sonawap/paystack

This library will help you manage and use paystack api

1.3 2020-12-22 19:55 UTC

This package is auto-updated.

Last update: 2025-04-24 09:39:36 UTC


README

Helps you manage and use Packstack's api

To Start run

Composer require sonawap/paystack

Define your paystack key

Go to vendor > sonawap > paystack > core > config > config.php then replace with your key

Create a new file index.php

Include the autoload file

<?php
require 'vendor/autoload.php';

Using the Library

use Sonawap\Paystack\Transaction\Transaction;
use Sonawap\Paystack\Transaction\Plan;
use Sonawap\Paystack\Transaction\Product;
use Sonawap\Paystack\Transaction\Invoice;
use Sonawap\Paystack\Customer\Customer;

Create a new instance of the class

$transaction = new Transaction();
$customer = new Customer();
$plan = new Plan();
$product = new Product();
$invoice = new Invoice();

Now you have access to all the methods in the classes, see docs or example for details

Transaction

/// initialize a transaction

$transaction->initializeTransaction($fields); //$fields as to be array

<!-- Example -->

$transaction->initializeTransaction(
    $fields = [
        'email' => "customer@email.com",
        'amount' => "20000",
    ]
);

/// Charge Authorization

$transaction->chargeAuthorization(array); //$field as to be array

/// Check Authorization

$transaction->checkAuthorization(array); //$field as to be array

/// Partial_debits

$transaction->partial_debit(array); //$field as to be array

$transaction->transactionTotal([
    'perPage' => 5,
    'page' => 1
]); 


// List transactions carried out on your integration

$transaction->transactionTotal(array); //$field as to be array

// Get details of a transaction carried out on your integration.

$transaction->transactionTotal(array); //$field as to be array

/// Verify Transaction

$transaction->verifyTransaction(reference); // passing the reference gotten from the initialization of the transaction

Customer

// Create a Customer
$customer->createCustomer(); // $field must be array


// Example
$result = $customer->createCustomer(
    $fields = [
        'first_name' => '',
        'last_name' => '',
        'email' => "customer@email.com"
    
    ]
);

// Desactivate Authorisation

$customer->deAuth(array);

// List Customers

$customer->listCustomers([
    'perPage' => 5,
    'page' => 1
]); 

// Fetch Customer

$customer->fetchCustomer("email"); ;

// Update Customer

$customer->updateCustomer(array);

// Validate Customer

$customer->validateCustomer(array);

// Whitelist/Blacklist Customer

$customer->wnbCustomer(array);

Plans

// Create Plan

$plan->createPlan(array);

// Example 
$plan->createPlan(
    $fields = [

		'name' => "Monthly retainer",

		'interval' => "monthly", 
	
		'amount' => "500000"
    
    ]
);

// Fetch Plan

$plan->fetchPlan(idOrCode);

// List Plans

$plan->listPlans(perPage, Page);

// Update Plan

$plan->updatePlan(code, array);

Product

// Create Product

$product->createProduct(array);

// Example 
$product->createProduct(
    $fields = [
        'description' => "Product Six Description",
        'name' => "Product Six",
        'price' => 500000,
        'currency' => "USD",
        'limited' => false,
        'quantity' => 100,
    ]
);

// Fetch Product

$product->fetchProduct(idOrCode);

// List Products

$product->listProducts(perPage, Page);

// Update Product

$product->updateProduct(code, array);

Invoice

// Create Product

$invoice->createInvoice(array);

// Example 
$invoice->createInvoice(
    $fields = [

        "description" => "a test invoice",
        "line_items"=> [
            {
                "name" => "item 1", 
                "amount" => 20000
            },

            {
                "name" => "item 2", 
                "amount" => 20000
            }
        ],
        "tax" => [
            {
                "name" => "VAT", 
                "amount" => 2000
            }
        ],
        "customer" => "CUS_xwaj0txjryg393b",
        "due_date" => "2020-07-08"

    ];
);

// Send Nofication

$invoice->sendNotification($fields = []);

// Archive Invoice

$invoice->archiveInvoice($fields = []);

// Total Invoice

$invoice->totalInvoice();

// List Invoices

$invoice->listInvoices() ;  //perPage = 5, customer = Customer_id

// View Invoice

$invoice->fetchInvoice($idOrCode) ;  

// View Invoice

$invoice->finalizeInvoice() ; 

// Verify Invoice

$invoice->verifyInvoice($idOrCode) ;  

// Archive Invoice

$invoice->verifyInvoice($idOrCode) ;  

// Update Product

$invoice->updateInvoice(code, array);

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT