File "paytmqr.php"
Full Path: /home/cananyalcin/public_html/core/module/client/paytmqr.php
File size: 9.02 KB
MIME-type: text/x-php
Charset: utf-8
<?php
if ($_POST['ORDERID']) {
error_reporting(1);
ini_set("display_errors", 1);
require_once($_SERVER['DOCUMENT_ROOT'] . "/core/lib/paytm/encdec_paytm.php");
$responseParamList = array();
$responseParamList = getTxnStatusNew($_POST);
if ($_POST['ORDERID'] == $responseParamList["ORDERID"]) {
$getfrompay = $conn->prepare("SELECT * FROM payments WHERE payment_extra=:payment_extra");
$getfrompay->execute(array("payment_extra" => $_POST['ORDERID']));
$getfrompay = $getfrompay->fetch(PDO::FETCH_ASSOC);
$user = $conn->prepare("SELECT * FROM clients WHERE client_id=:client_id");
$user->execute(array("client_id" => $getfrompay['client_id']));
$user = $user->fetch(PDO::FETCH_ASSOC);
if (countRow(['table' => 'payments', 'where' => ['client_id' => $user['client_id'], 'payment_method' => 14, 'payment_status' => 1, 'payment_delivery' => 1, 'payment_extra' => $_POST['ORDERID']]])) {
if ($responseParamList["STATUS"] == "TXN_SUCCESS") {
$payment = $conn->prepare('SELECT * FROM payments INNER JOIN clients ON clients.client_id=payments.client_id WHERE payments.payment_extra=:extra ');
$payment->execute(['extra' => $_POST['ORDERID']]);
$payment = $payment->fetch(PDO::FETCH_ASSOC);
$payment['payment_amount'] = $payment['payment_amount']*abcus("name","INR","inverse_value");
//referral
if($user["ref_by"]){
$reff = $conn->prepare("SELECT * FROM referral WHERE referral_code=:referral_code ");
$reff -> execute(array("referral_code"=>$user["ref_by"]));
$reff = $reff->fetch(PDO::FETCH_ASSOC);
$newAmount = $payment['payment_amount'];
$update3= $conn->prepare("UPDATE referral SET referral_totalFunds_byReffered=:referral_totalFunds_byReffered,
referral_total_commision=:referral_total_commision WHERE referral_code=:referral_code ");
$update3= $update3->execute(array("referral_code"=>$user["ref_by"],
"referral_totalFunds_byReffered"=>round($reff["referral_totalFunds_byReffered"] + $newAmount , 2) ,
"referral_total_commision"=>round($reff["referral_total_commision"] + (($settings["referral_commision"]/100) * $newAmount) , 2)));
}
//referral
$payment_bonus = $conn->prepare('SELECT * FROM payments_bonus WHERE bonus_method=:method && bonus_from<=:from ORDER BY bonus_from DESC LIMIT 1');
$payment_bonus->execute(['method' => $method['id'], 'from' => $payment['payment_amount']]);
$payment_bonus = $payment_bonus->fetch(PDO::FETCH_ASSOC);
if ($payment_bonus) {
$amount = $payment['payment_amount'] + (($payment['payment_amount'] * $payment_bonus['bonus_amount']) / 100);
$bonus_amount = ($payment['payment_amount'] * $payment_bonus['bonus_amount']) / 100;
} else {
$amount = $payment['payment_amount'];
}
$conn->beginTransaction();
$amount = round($amount,2);
$payment_id = $payment['payment_id'];
$old_balance = $payment['balance'];
$added_funds = $amount;
$final_balance = $old_balance + $added_funds;
$update = $conn->prepare('UPDATE payments SET client_balance=:balance, payment_amount=:payment_amount , payment_status=:status, payment_delivery=:delivery WHERE payment_id=:id ');
$update = $update->execute(['balance' => $payment['balance'], "payment_amount"=> round($payment['payment_amount'] , 2), 'status' => 3, 'delivery' => 2, 'id' => $payment['payment_id']]);
$balance = $conn->prepare('UPDATE clients SET balance=:balance WHERE client_id=:id ');
$balance = $balance->execute(['id' => $payment['client_id'], 'balance' => $payment['balance'] + $amount]);
$insert = $conn->prepare('INSERT INTO client_report SET client_id=:c_id, action=:action, report_ip=:ip, report_date=:date ');
$insert25 = $conn->prepare("INSERT INTO payments SET client_id=:client_id , client_balance=:client_balance , payment_amount=:payment_amount , payment_method=:payment_method ,
payment_status=:status, payment_delivery=:delivery , payment_note=:payment_note , payment_create_date=:payment_create_date , payment_extra=:payment_extra , bonus=:bonus");
$check = $conn->prepare('SELECT * FROM clients WHERE client_id=:id');
$check->execute(['id' => $payment['client_id']]);
$check = $check->fetch(PDO::FETCH_ASSOC);
$username = $check["username"];
$user_balance_after_adding = $check['balance'];
$solved = "No";
if ($user_balance_after_adding == $final_balance) {
//do nothing
} else {
$update = $conn->prepare('UPDATE clients SET balance=:balance WHERE client_id=:id ');
$update = $update->execute(['id' => $payment['client_id'], 'balance' => $final_balance]);
if ($update) {
$solved = "yes";
}
}
$funds_difference = abs($final_balance - $user_balance_after_adding);
if ($final_balance != $user_balance_after_adding) {
if ($solved == "No") {
sendMail(["subject" => "Invalid Payment is added.", "body" => "<h3>Invalid payment added on this account </h3>
<p>Username : $username</p><p>Payment Method : Paytm Automatic</p><p>Payment ID : $payment_id </p><p>Funds Difference - $funds_difference </p><p>Solved : $solved </p>", "mail" => $settings["admin_mail"]]);
}
//notify admin
}
if ($payment_bonus) {
$insert25->execute(array(
"client_id" => $payment['client_id'], "client_balance" => (($payment['balance'] + $amount) - $bonus_amount),
"payment_amount" => $bonus_amount, "payment_method" => 14, 'status' => 3, 'delivery' => 2, "payment_note" => "Bonus added", "payment_create_date" => date('Y-m-d H:i:s'), "payment_extra" => "Bonus added for previous payment",
"bonus" => 1
));
$insert = $insert->execute(['c_id' => $payment['client_id'], 'action' => 'New ' . $amount . ' ' . $settings["currency"] . ' payment has been made with ' . $method['method_name'] . ' and included %' . $payment_bonus['bonus_amount'] . ' bonus , and Final balance
is ' . $final_balance . ' ', 'ip' => GetIP(), 'date' => date('Y-m-d H:i:s')]);
} else {
$insert = $insert->execute(['c_id' => $payment['client_id'], 'action' => 'New ' . $amount . ' ' . $settings["currency"] . ' payment has been made with ' . $method['method_name'] . ' and Final balance
is ' . $final_balance . ' ', 'ip' => GetIP(), 'date' => date('Y-m-d H:i:s')]);
}
if ($update && $balance) {
$conn->commit();
header('location:' . site_url() . 'addfunds');
echo 'OK';
} else {
$conn->rollBack();
header('location:' . site_url());
echo 'NO';
}
} else {
$update = $conn->prepare('UPDATE payments SET payment_status=:payment_status WHERE client_id=:client_id, payment_method=:payment_method, payment_delivery=:payment_delivery, payment_extra=:payment_extra');
$update = $update->execute(['payment_status' => 2, 'client_id' => $user['client_id'], 'payment_method' => 14, 'payment_delivery' => 1, 'payment_extra' => $_POST['ORDERID']]);
}
}
} else {
header('location:' . site_url());
}
}else {
header('location:' . site_url());
}