From 6804ebc879bdc77225565e622dd8920ecb992a16 Mon Sep 17 00:00:00 2001 From: ChiefSoft works Date: Mon, 9 May 2022 05:42:10 +0000 Subject: [PATCH] Flutterwave calling from back office --- application/controllers/Bkotransaction.php | 65 ++++++++----- application/helpers/flutterwave_helper.php | 92 +++++++++++++++++++ application/views/bko/view_bko_transmitsm.php | 14 +-- 3 files changed, 140 insertions(+), 31 deletions(-) create mode 100644 application/helpers/flutterwave_helper.php diff --git a/application/controllers/Bkotransaction.php b/application/controllers/Bkotransaction.php index e2eba33..3a90066 100644 --- a/application/controllers/Bkotransaction.php +++ b/application/controllers/Bkotransaction.php @@ -92,16 +92,17 @@ class Bkotransaction extends Bko_Controller { switch ($proc) { case 'PROCESS': - $mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'
'||me.email AS Sender," - . "sr.firstname||' '||sr.lastname||'
ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee, " - . "'' As Detail, " - . "'' As Process " - . "FROM money_transfer m " - . "LEFT JOIN members me ON me.id=m.member_id " - . "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid " - . "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id " - . "LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id; + $mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'
'||me.email AS Sender," + . "sr.firstname||' '||sr.lastname||'
ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee, " + . "'' As Detail, " + . "'' As Process " + . "FROM money_transfer m " + . "LEFT JOIN members me ON me.id=m.member_id " + . "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid " + . "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id " + . "LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id; + $query = $this->db->query($mysql); $row = $query->row_array(); @@ -116,23 +117,39 @@ class Bkotransaction extends Bko_Controller { break; case 'TRANSMIT': - /* - - + $mysql = "SELECT m.id,mp.confirmation, m.added," + . "'Transfer from '||me.firstname||' '||me.lastname||'
'||me.email AS narration," + . "sr.firstname,sr.lastname,sr.account_no,be.code AS bank_code, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee " + . "FROM money_transfer m " + . "LEFT JOIN members me ON me.id=m.member_id " + . "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid " + . "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id " + . "LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id; + + $query = $this->db->query($mysql); + $row = $query->row_array(); + /* This is te place to call the Fluuerwve API for testing - - - */ - $data["trans_code"] = $this->input->get('tcode'); - $data["trans_tref"] = $this->input->get('tref'); - $data["sendmoney_id"] = $sendmoney_id; - $data['action'] = WRENCHBOARD_SMONEY_BKOPROC; - $data['action_mode'] = SMONEY_PROCC_INTERSWITCH; - $this->load->model('backend_model'); - $out = array(); - $this->backend_model->wrenchboard_api($data, $out); //THis calls he backend - dont worry about it for now. - echo $out['status']; + $this->load->helper('FlutterWave'); + $out = flutterwave_api($row); + if (is_array($out) && $out['result'] > 0) { + $data["trans_code"] = $this->input->get('tcode'); + $data["trans_tref"] = $this->input->get('tref'); + $data["sendmoney_id"] = $sendmoney_id; + $data['action'] = WRENCHBOARD_SMONEY_BKOPROC; + $data['action_mode'] = SMONEY_PROCC_INTERSWITCH; + $this->load->model('backend_model'); + $out = array(); + $this->backend_model->wrenchboard_api($data, $out); //THis calls he backend - dont worry about it for now. + echo $out['status']; + } else { + if (is_array($out) && array_key_exists('status',$out)) { + echo $out['status']; + } else { + var_dump($out); // Unexpected failure + } + } break; } } diff --git a/application/helpers/flutterwave_helper.php b/application/helpers/flutterwave_helper.php new file mode 100644 index 0000000..0983b5a --- /dev/null +++ b/application/helpers/flutterwave_helper.php @@ -0,0 +1,92 @@ + $in['bank_code'], + "account_number" => $in['account_no'], + "amount" => $in['amount'], + "narration" => $in['narration'], + "currency" => "NGN", + "reference" => $reference, + "debit_currency" => "NGN" + )); + + curl_setopt($ch, CURLOPT_URL,"http://10.20.30.32:9086/create"); + // curl_setopt($ch, CURLOPT_POST, 1); + curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); + curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); + + // Receive server response ... + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + + $result = curl_exec($ch); + + curl_close ($ch); + + $data = json_decode($result, true); + + // Further processing ... + if ($data!=null && is_array($data)) { + if (array_key_exists('status',$data) && $data['status']=='success') { + $out['result'] = 0; // OK + $out['status'] = 'Transfer successful'; + if (array_key_exists('message',$data) && $data['message']!='') { + $out['status'].= ': '.$data['message']; + } + } else { + $out['result'] = -3; + $out['status'] = 'failure'; + if (array_key_exists('status',$data) && $data['status']!='') { + $out['status'] = $data['status']; + } + if (array_key_exists('message',$data) && $data['message']!='') { + $out['status'].= ': '.$data['message']; + } + if (array_key_exists('details',$data) && $data['details']!='') { + $out['status'].= ': '.$data['details']; + } + if (array_key_exists('data',$data) && is_array($data['data']) + && array_key_exists('message',$data['data']) && $data['data']['message']!='') { + $out['status'].= ': '.$data['data']['message']; + } + if (array_key_exists('data',$data) && is_array($data['data']) + && array_key_exists('data',$data['data']) && is_array($data['data']['data']) + && array_key_exists('complete_message',$data['data']['data']) && $data['data']['data']['complete_message']!='') { + $out['status'].= ': '.$data['data']['data']['complete_message']; + } + } + } else { + $out['result'] = -2; + $out['stauts'] = 'Invalid service response: ' . $result; + } + // Cannot POST /api/create + + $out['response'] = $result; + + return $out; + } +} diff --git a/application/views/bko/view_bko_transmitsm.php b/application/views/bko/view_bko_transmitsm.php index 6495934..e8ea97e 100644 --- a/application/views/bko/view_bko_transmitsm.php +++ b/application/views/bko/view_bko_transmitsm.php @@ -106,15 +106,15 @@ return false; return false; } - function smoneyProcessComplete(link_id) { + function smoneyProcessComplete(link_id) { - if(confirm("Are you sure you want to transmit this transaction ?")) { -// do something -} else { -return false; -} + if(confirm("Are you sure you want to transmit this transaction ?")) { + // do something + } else { + return false; + } - var f = document.getElementById('sendmoneyProcessPage'+link_id); + var f = document.getElementById('sendmoneyProcessPage'+link_id); $('#btump'+link_id).html('Processing...'); $('#acmp'+link_id).prop('disabled', true);