ElmMacPaystack is a lightweight PHP SDK for integrating Paystack into classic/procedural PHP projects. It handles initialize, callback and webhook flows, and logs full request/response payloads into a generic elmmacpaystackpayments table.
- Simple PHP class wrapper around Paystack REST API
- Initialize payments with custom metadata
- Callback handler for success/failed payments
- Optional webhook listener with signature verification
- Request / response payload logging for debugging & analytics
- PHP 7.4+ (or higher)
- cURL extension enabled
- MySQL / MariaDB (for the example payments table)
- A Paystack account with secret & public keys
- Copy
src/ElmMacPayStack.phpinto your project (for example into asrc/orlib/folder). - Include the class in your bootstrap / init script:
require_once __DIR__ . '/src/ElmMacPayStack.php';
use ElmMacPaystack\ElmMacPayStack;
$paystack = new ElmMacPayStack('YOUR_PAYSTACK_SECRET_KEY');- Create the
elmmacpaystackpaymentstable using the SQL provided indatabase_table.sql(or adapt it to your schema).
$payload = [
'email' => 'customer@example.com',
'amount' => 2500 * 100, // kobo
'reference' => uniqid('elmmac_', true),
'callback_url'=> 'https://yourdomain.com/elmmacpaystack_callback.php',
'metadata' => ['user_id' => 123],
];
$response = $paystack->initialize($payload);
if ($response['status']) {
header('Location: ' . $response['data']['authorization_url']);
exit;
} else {
// handle error
}Then in your callback script you can:
// verify reference and update elmmacpaystackpayments(See the example files in elmmacpaystack/ for init, callback, and webhook handlers.)
- More helper methods (verify, refund, list transactions)
- Framework-agnostic middleware snippets (Laravel, Symfony, etc.)
- Better error handling & typed responses
Pull requests and issues are welcome. Please open an issue first if you plan a bigger change so we can discuss direction.
This project is open-source. You can use the MIT license below or choose a different license that fits your needs.
Developed with 🚀 by ElmMac Pty Ltd
Maintained by @ElmMac - Misael Cruise Mutege — WhatsApp: +27786411181 Durban, South Africa
Digital Dev | Hustler Mode: ON 💼