This package is an add-on to the Paystack Adapter provided by Gbowo and is therefore not guaranteed to have the same API as that of an add-on package of any alternative payment adapter supported by Gbowo
$ composer require adelowo/gbowo-paystack
Gbowo's doc is highly recommended and is a good place to start.
Depending on what you are trying to accomplish, you'd ideally want to take a look at all available plugins here:
Only add plugins you need. There isn't a reason to add everything into the adapter.
Paystack\Customer\CreateCustomer
: Create a new customer
$paystack->addPlugin(new Paystack\Customer\CreateCustomer(PaystackAdapter::API_LINK));
$data = $paystack->createCustomer(["email" => "me@lanreadelowo.com", "first_name" => "Lanre", "last_name" => "Adelowo"]);
//$data contains the details of the newly created customer
Paystack\Customer\UpdateCustomer
: Update a customer's data
$paystack->addPlugin(new Paystack\Customer\UpdateCustomer(PaystackAdapter::API_LINK));
$data = $paystack->updateCustomer("customerCode", ["email" => "lanre@coolstartup.com"]);
//$data contains the details of the updated customer
Paystack\Customer\DeactivateAuthorization
: Deactivate the authorization code for a user. If you do this, you are essentially forgetting a user's card and would lose the ability to charge that card.
Example usecase => When a user is deleting his account or deletes a card.
$paystack->addPlugin(new Paystack\Transaction\DeactivateAuthorization(PaystackAdapter::API_LINK));
$isDeactivated = $paystack->deactivateAuthorization("AUTH_cod3_h3r3");
//$isDeactivated is a boolean which truthiness determines if the authorization code was succesffuly deactivated
Paystack\Transaction\ExportTransactions
: Export all of your transactions with Paystack
$paystack->addPlugin(new Paystack\Transaction\ExportTransactions(PaystackAdapter::API_LINK));
//can also pass in an array into the method call,
//e.g ["settled" => true, "currency" => "NGN", "status" => "Some status"]
//The dictionary would be converted to a query string which is sent alongside the request.
//Do review the docs for valid params.
$pathToFile = $paystack->exportTransactions();
//$pathToFile would contain a link to a csv file which you then have to download
Paystack\Transaction\GetTransaction
: Fetch the details of a specific transaction
$paystack->addPlugin(new Paystack\Transaction\GetTransaction(PaystackAdapter::API_LINK));
$data = $paystack->getTransaction("20911");
//$data would contain everything paystack knows about that transaction
Paystack\Subscription\CreateSubscription
- Add a new subscription to the dashboard
$paystack->addPlugin(new Paystack\Subscription\CreateSubscription(PaystackAdapter::API_LINK));
$data = $paystack->createSubscription(string $customerCode, string $planCode, string $customerAuthCode = "");
//The customer auth code can be excluded as it is only useful for customers with multiple authorizations.
//Please check the docs.
Paystack\Subscription\GetAllSubscriptions
- Retrieve all subscriptions in the dashboard
$paystack->addPlugin(new Paystack\Subscription\GetAllSubscriptions(PaystackAdapter::API_LINK));
$data = $paystack->getAllSubscriptions();
Paystack\Subscription\GetSubscription
- Retrieve a certain subscription from the dashboard
$paystack->addPlugin(new Paystack\Subscription\GetSubscription(PaystackAdapter::API_LINK));
$data = $paystack->getSubscription("SUB_code");
Paystack\Plan\CreatePlan
- Adds a new plan to the dashboard
$paystack->addPlugin(new Paystack\Plan\CreatePlan(PaystackAdapter::API_LINK));
$params = ["name" => "some plan", "amount" => 1000, "interval" => "hourly"];
//visit the api docs to see all possible data that can be sent
$data = $paystack->createPlan($params);
Paystack\Plan\UpdatePlan
- Updates a plan in the dashboard
$paystack->addPlugin(new Paystack\Plan\UpdatePlan(PaystackAdapter::API_LINK));
$params = ["name" => "renaming this plan", "amount" => 2000, "interval" => "weekly"];
//visit the api docs to see all possible data that can be sent
$status = $paystack->updatePlan(
"PLN_gx2wn530m0i3w3m",
["name" => "renaming this plan yet again", "amount" => \Gbowo\toKobo(200000), "interval" => "weekly"]);
Paystack\Bank\ListBanks
- Fetch a list of all banks known to Paystack
$paystack->addPlugin(new ListBanks(PaystackAdapter::API_LINK));
$banks = $paystack->listBanks();
// $paystack->listBanks(["perPage" => 20, "page" => 2]); //show 20 banks and show results from the second page (the results are paginated)
Paystack\Bank\GetBVN
- Fetch the details of a user's BVN (Bank Verification Number)
$paystack->addPlugin(new GetBVN(PaystackAdapter::API_LINK));
$data = $paystack->getBVN("12345678901"); //Must be 11 digits, else an exception is thrown
Paystack\Bank\GetAccountDetails
- Fetch the details of a user's account number.
$paystack->addPlugin(new GetAccountDetails(PaystackAdapter::API_LINK));
//Yeah, that's a valid account number. Run the code to get my bank details and throw me some cash :)
$data = $paystack->getAccountDetails(["account_number" => "0115544526", "bank_code" => "058"]));
Paystack\Bank\GetCardBIN
- Fetch the details of a card via it's BIN (Bank Identification number)
$paystack->addPlugin(new GetCardBIN(PaystackAdapter::API_LINK));
$data = $paystack->getCardBIN("123456");
Paystack\Customer\CheckPending
- Check the status of a previously pending transaction.
$paystack->addPlugin(new CheckPending(PaystackAdapter::API_LINK));
$data = $paystack->checkPending($transactionRef);
Awesome, I'd love that. Fork, send PR. But hey, unit testing is one honking great idea. Let's have more of that.
Please make use of the issue tracker for bug reports, feature request and others except Security issues. If you do discover a vulnerability, please send a mail to me@lanreadelowo.com
.