1. Go to this page and download the library: Download phelix/flutterwave library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
phelix / flutterwave example snippets
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\Account;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$account = new Account($flutterwave);
//1. Get balances for all accounts
$balances = $account->getAllBalances();
// 2. Get balance for a specific account (identified by currency)
$kes_account_balance = $account->getAccountBalance("KES");
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\OTP;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$otp = new OTP($flutterwave);
//1. Use this to generate and send an OTP to a customer
$otp_response = $otp->createOTP("Joehn Doe","[email protected]" ,"0112345678", "JP Enterprises", 5, ['whatsapp', 'sms'], 60, true);
// 2. Use this to verify/validate an OTP
$otp_val = $otp->validateOTP("otp_reference", 12345);
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\PaymentPlan;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$plan = new PaymentPlan($flutterwave);
//1. Use this to create a plan. (This creates a plan named "Test Plan" for KES 1000 to be deducted monthly for 12 months
$response = $plan->createPlan("KES", "Test Plan", 1000, "monthly", 12);
// 2. Use this to list all your plans
$plans = $plan->getPlans();
// 3. Use this to get a specific plan
$plan = $plan->getOnePlan(1);
// 4. Use this to update name of a plan
$update = $plan->updatePlan(1, "New Name");
// 5. Use this to cancel a plan
$cancelled = $plan->cancelPlan(1);
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\Settlement;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$settlement = new Settlement($flutterwave);
//1. Use this to get the list of all settlements
$response = $settlement->getSettlements();
// 2. Use this to get one settlement
$response = $settlement->getOneSettlement(1);
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\Standard;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$standard = new Standard($flutterwave);
//1. Use this to initiate a one time payment
$response = $standard
->setCustomizations("JP Enterprises", "Subsidiary of JP Holdings", "https://helixjuma.com.com/avatar.png")
->setCustomer("Jane Doe", "[email protected]", "+254701234456")
->setTransactionReference("1234REFJANEDOE")
->setCurrency("KES")
->setAmount(1000)
->setMetaData(["category_id" => 1, 'transaction_type' => "payment_for_doedom"])
->setRedirectURL("https://phelixjuma.com/flutterwave-ipn")
->payViaCard() // Use this to pay via card. To use other payment options, check docs for all the other options
->initiateOneTimePayment();
// 2. Use this to initiate a recurrent payment (ie user is subscribed to a payment plan)
$response = $standard
->setCustomizations("JP Enterprises", "Subsidiary of JP Holdings", "https://helixjuma.com.com/avatar.png")
->setCustomer("Jane Doe", "[email protected]", "+254701234456")
->setTransactionReference("1234REFJANEDOE")
->setCurrency("KES")
->setAmount(1000)
->setMetaData(["category_id" => 1, 'transaction_type' => "payment_for_doedom"])
->setRedirectURL("https://phelixjuma.com/flutterwave-ipn")
->setPaymentPlan(8021) // this is where we set the payment plan id
->payViaCard() // Use this to pay via card. To use other payment options, check docs for all the other options
->initiateRecurrentPayment();
/**
* After a transaction is initiated above, you get a link that you are supposed to redirect the user to.
* Redirect the user to the link where they will do the payments afterwhich Flutterwave redirects them to your redirect url set above
* Sample redirect from Flutterwave looks like: https://phelixjuma.com/flutterwave-ipn?status=successful&tx_ref=1234&transaction_id=1686665
* Check section below on how to handle and complete transaction in the IPN page.
*/
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\Verification;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$verification = new Verification($flutterwave);
// Your IPN will have query parameters added by Flutterwave. An example is as shown:
// https://phelixjuma.com/flutterwave-ipn?status=successful&tx_ref=1234&transaction_id=1686665
// At this stage, you must verify the transaction before confirming that it is successful. Don't just assume it is successful
// due to the status parameter in the url
$transactionId = sanitize($_GET['transaction_id']); // sanitize() is an arbitrary function. Use your implementation
$transactionReference = sanitize($_GET['tx_ref']); // sanitize() is an arbitrary function. Use your implementation
// Get the transaction you had initiated by doing a query to your database. getTransaction() is an arbitrary function.
$transaction = getTransaction($transactionReference);
if ($transaction) {
$response = $verification->verify($transactionId, $transactionReference, $transaction['currency'], $transaction['amount']);
// Response is an array of the format $response = ['verified' => true|false,'message' => "response message", 'data'=> <response data>];
if ($response['verified'] !== false) {
// Verified transaction. Update transaction as successful
} else {
// Transaction not verified. Get actual status from $response['data']['status']. Check Flutterwave docs for more details.
}
} else {
// transaction does not exist. Possibly a modified IPN. Log the attempt.
}
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}
use Phelix\Flutterwave\Flutterwave;
use Phelix\Flutterwave\Subscription;
use Phelix\Flutterwave\Exceptions\FlutterwaveException;
try {
// We initialize Flutterwave. Only the secret key is compulsory. The rest are optional.
$flutterwave = new Flutterwave($_ENV["FLUTTER_WAVE_SECRET_KEY"], $_ENV["FLUTTER_WAVE_ENCRYPTION_KEY"], $_ENV["FLUTTER_WAVE_PUBLIC_KEY"]);
$flutterwave->init();
$subscription = new Subscription($flutterwave);
// 1. Use this to get subscriptions
$response = $subscription->getSubscriptions();
// 2. Use this to get subscriptions for a plan. Check docs for the other parameters eg pagination
$response = $subscription->getPlanSubscriptions(1020);
// 3. Use this to get a user's plan subscription. Check docs for the other parameters eg pagination
$response = $subscription->getUserPlanSubscriptions(8021, "[email protected]");
// 4. Get all subscriptions for a user. Check docs for the other parameters eg pagination
$response = $subscription->getUserSubscriptions("[email protected]");
// 5. Get a specific subscription
$response = $subscription->getOneSubscription(1);
// 6. Cancel a subscription
$response = $subscription->cancelSubscription(1);
// 7. Activate a subscription
$response = $subscription->activateSubscription(1);
} catch (FlutterwaveException $exception) {
print $exception->getMessage();
// log and/or handle exceptions here
}