This is a guild for common payment.
To make payment, Button and id attribute is required e.g
<button id="btn_pay_3k"> Pay 3,000 </button>
<button id="btn_pay_5k"> Pay 5,000 </button>
<?php
exFlutterwaveRavePaymentGateway::renderPopup([
'btn_pay_3k'=>['amount'=>2000, 'param1'=>'...', 'param2'=>'...', ...],
'btn_pay_5k'=>['amount'=>3000, 'param1'=>'...', 'param2'=>'...', ...],
])
?>btn_pay_3k is the button id and can accept parameter that can be access later in the cookie in onPaymentCompleted callback.
But amount attribute is important. Else you will get param error.
When payment is made with
exFlutterwaveRavePaymentGateway::renderPopup([
'btn_pay_3k'=>['amount'=>200000, 'param1'=>'...', 'param2'=>'...', ...],
'btn_pay_5k'=>['amount'=>300000, 'param1'=>'...', 'param2'=>'...', ...],
])OR Simply with
exFlutterwaveRavePaymentGateway::renderPopup(['btn_pay_3k'=>300000, 'btn_pay_5k'=>500000], null)and not exFlutterwaveRavePaymentGateway::renderLazyPopup(), Every successful payment info is saved to cookie and can be access in exFlutterwaveRavePaymentGateway::onPaymentCompleted()
e.g This information is accessed in config onPageStart()
// insert in config file
static function onPageStart() {
// access last payment information
exFlutterwaveRavePaymentGateway::onPaymentCompleted(function ($button_id, $payment_reference, $payment_info){
switch ($button_id){
case 'btn_pay_3k':
// do something with $payment_reference
case 'btn_pay_5k':
// do something with $payment_reference
}
return true;
})
...Note. ensure to return true in your callback function, this will help to delete the last payment cookie from re-appearing again,
Or Delete Manually with Cookie1::delete(exFlutterwaveRavePaymentGateway::$config['cookie_key']);
...
static function onPageStart() {
// Flutterwave Rave PaymentGateway onPaymentCompleted
exFlutterwaveRavePaymentGateway::onPaymentCompleted(function ($button_id, $payment_reference, $payment_info){
$myPaymentInfo = exFlutterwaveRavePaymentGateway::getPaymentInfo($payment_reference);
$clearLastPayment = false;
if(isset($myPaymentInfo['status']) && $myPaymentInfo['status'] == 'error'){
$clearLastPayment = true;
Session1::setStatus("Payment Error", 'Payment verification failed, please contact admin if this is an error', 'error');
}else{
if(isset($myPaymentInfo['data']) && isset($myPaymentInfo['data']['chargecode'])){
if( ($myPaymentInfo['data']['chargecode'] == '0') || ($myPaymentInfo['data']['chargecode'] == '00') ){
if($myPaymentInfo['data']['amount'] == $payment_info['param']['amount']){
//dd("Payment Confirmed", $payment_info);
User::getLogin()->update(['payment' => 'paid'])
$clearLastPayment = true;
Cookie1::delete(exFlutterwaveRavePaymentGateway::$config['cookie_key']);
}else{
Session1::setStatus("Payment Error", 'Payment amount not tally', 'error');
$clearLastPayment = true;
}
}else{
Session1::setStatus("Payment Error", 'Payment verification failed, please contact admin if this is an error', 'error');
$clearLastPayment = true;
}
}
}
// clear last payment is payment error
if($clearLastPayment){
Cookie1::delete(exFlutterwaveRavePaymentGateway::$config['cookie_key']);
return true;
}
});
....😗 from the creator of Easytax. Samson Iyanu (@samtax01)