diff --git a/application/controllers/Bkotransaction.php b/application/controllers/Bkotransaction.php index 3a90066..7577dcf 100644 --- a/application/controllers/Bkotransaction.php +++ b/application/controllers/Bkotransaction.php @@ -151,6 +151,29 @@ class Bkotransaction extends Bko_Controller { } } break; + + case 'CHECK': + $mysql = "SELECT response -> 'data' -> 'data' AS \"data\" FROM flutterwave WHERE money_transfer_id=".((int)$sendmoney_id)." ORDER BY created DESC LIMIT 1"; + $query = $this->db->query($mysql); + $row = $query->row_array(); + if (is_array($row) && count($row)>0) { + $this->load->helper('FlutterWave'); + $data = json_decode($row['data'], true); + $out = flutterwave_api_check($data); + if (is_array($out) && $out['result'] > 0) { + echo $out['status']; + } else { + if (is_array($out) && array_key_exists('status',$out)) { + echo $out['status']; + } else { + var_dump($out); // Unexpected failure + } + } + } else { + echo "No flutterwave transfer found!"; + } + + break; } } @@ -165,7 +188,10 @@ class Bkotransaction extends Bko_Controller { $myTable .="Amount" . $out['amount'] . ""; $myTable .="Fee" . $out['fee'] . ""; $myTable .="ChannelFlutterwave "; - $myTable .="
"; + $myTable .="
"; + $myTable .=""; + $myTable .="   "; + $myTable .="
"; $myTable .=" [another tabble]"; return $myTable; diff --git a/application/helpers/flutterwave_helper.php b/application/helpers/flutterwave_helper.php index 4949ab6..dac6bd6 100644 --- a/application/helpers/flutterwave_helper.php +++ b/application/helpers/flutterwave_helper.php @@ -58,9 +58,9 @@ if ( ! function_exists('flutterwave_api')) //var_dump( $data); //exit; /* -{"account_bank":"044","account_number":"0690000031","amount":"123.00","narration":"Transfer from Olusesan Amey -ses66181+1@gmail.com","currency":"NGN","reference":"120-0-97165300 1652605656","debit_currency":"NGN"} //// {"status":200,"statusText":"OK","data":{"status":"success","message":"Transfer Queued Successfully","data":{"id":345332,"account_number":"0690000031","bank_code":"044","full_name":"Forrest Green","created_at":"2022-05-15T09:07:37.000Z","currency":"NGN","debit_currency":"NGN","amount":123,"fee":10.75,"status":"NEW","reference":"120-0-97165300 1652605656","meta":null,"narration":"Transfer from Olusesan Amey -ses66181+1@gmail.com","complete_message":"","requires_approval":0,"is_approved":1,"bank_name":"ACCESS BANK NIGERIA"}}} + {"account_bank":"044","account_number":"0690000031","amount":"123.00","narration":"Transfer from Olusesan Amey + ses66181+1@gmail.com","currency":"NGN","reference":"120-0-97165300 1652605656","debit_currency":"NGN"} //// {"status":200,"statusText":"OK","data":{"status":"success","message":"Transfer Queued Successfully","data":{"id":345332,"account_number":"0690000031","bank_code":"044","full_name":"Forrest Green","created_at":"2022-05-15T09:07:37.000Z","currency":"NGN","debit_currency":"NGN","amount":123,"fee":10.75,"status":"NEW","reference":"120-0-97165300 1652605656","meta":null,"narration":"Transfer from Olusesan Amey + ses66181+1@gmail.com","complete_message":"","requires_approval":0,"is_approved":1,"bank_name":"ACCESS BANK NIGERIA"}}} */ // Further processing ... @@ -104,3 +104,70 @@ ses66181+1@gmail.com","complete_message":"","requires_approval":0,"is_approved": return $out; } } + +if ( ! function_exists('flutterwave_api_check')) +{ + function flutterwave_api_check($in) + { + $out = array(); + $out['status'] = 'Unhandled error'; + $out['result'] = -1; + + $ch = curl_init(); + + $url = "http://host.docker.internal:9086/status/".$in['id']; + + $curl = curl_init($url); + curl_setopt($curl, CURLOPT_URL, $url); + curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); + + $result = curl_exec($curl); + + curl_close($curl); + + //var_dump($result); + /* + string(592) "{"status":200,"statusText":"OK","data":{"status":"success","message":"Transfer fetched","data":{"id":348032,"account_number":"0690000031","bank_code":"044","full_name":"Forrest Green","created_at":"2022-06-05T04:22:49.000Z","currency":"NGN","debit_currency":"NGN","amount":123,"fee":10.75,"status":"FAILED","reference":"120-0-37263200 1654402969","meta":null,"narration":"Transfer from Olusesan Amey + ses66181+1@gmail.com","approver":null,"complete_message":"DISBURSE FAILED: Insufficient funds in customer balance","requires_approval":0,"is_approved":1,"bank_name":"ACCESS BANK NIGERIA"}}}" + */ + + $data = json_decode($result, true); + + // Further processing ... + if ($data!=null && is_array($data)) { + if (array_key_exists('status',$data) && $data['status']=='200') { + if (array_key_exists('data',$data) && is_array($data['data'])) { + $raw = $data['data']; + if (array_key_exists('status',$raw) && $raw['status']=='success') { + $out['result'] = 0; // OK + $out['status'] = $raw['message']; + if (array_key_exists('data',$raw) && is_array($raw['data'])) { + $out['status'].= ': '.$raw['data']['complete_message']; + } else { + $out['status'].= ': No transfer data found -> ' . json_encode($raw); + } + } else { + $out['result'] = -5; + $out['status'] = 'Flutterwave response failure: ' . json_encode($raw); + } + } else { + $out['result'] = -4; + $out['status'] = 'Missing flutterwave response: ' . $result; + } + } else { + // Error response + $out['result'] = -3; + if (array_key_exists('status',$data)) { + $out['status'] = $data['status']; + } else { + $out['status'] = 'Missing starus response: ' . $result; + } + } + } else { + $out['result'] = -2; + $out['status'] = 'Invalid service response: ' . $result; + } + + return $out; + } +} diff --git a/application/views/bko/view_bko_transmitsm.php b/application/views/bko/view_bko_transmitsm.php index e8ea97e..c9ce8f6 100644 --- a/application/views/bko/view_bko_transmitsm.php +++ b/application/views/bko/view_bko_transmitsm.php @@ -127,6 +127,22 @@ return false; }); return false; } + + function smoneyProcessCheck(link_id) { + + var f = document.getElementById('sendmoneyProcessPage'+link_id); + + $('#btump'+link_id).html('Processing...'); + $('#chck'+link_id).prop('disabled', true); + $.ajax({ + url: "/bkotransaction/smTransmitProcess?proc=CHECK&sendmoney_id="+link_id+'&tcode=BLANK&tref=BLANK' + }).done(function (data) { + $('#btump'+link_id).html(data); + //document.offer_individual.rec_email.value = ''; + $('#chck'+link_id).prop('disabled', false); + }); + return false; + } // -->