pargraphic
کاربر تازه وارد
سلام
بنده یک اسکریپت دارم که قسمت پرداخت کاربران که میخواهند حساب کاربریشون رو شارژ کنند مبلغ از حساب بانکی کاربر کسر میشود و با موفقیت انجام میشه از سایت درگاه واسط به سایت ما میاد و افزایش موجودی تو پنل کاربر انجام میشه بدون مورد ، ولی ممتاسفانه در بخش مدیریت آن در بخش مربوطه همان تراکنش را ناموفق نشون میده ، میخواستم بدونم چجوری میشه این مورد را رفع کرد و وضعیت هر تراکنش موفق و ناموفق را نشون بده .
محتوای فایل مدیریت مربوطه را در ادامه ارسال کردم:
در ضمن در درگاه واسط تراکنش مربوطه با موفقیت انجام شده و کد بانک دریافت شده .
بنده یک اسکریپت دارم که قسمت پرداخت کاربران که میخواهند حساب کاربریشون رو شارژ کنند مبلغ از حساب بانکی کاربر کسر میشود و با موفقیت انجام میشه از سایت درگاه واسط به سایت ما میاد و افزایش موجودی تو پنل کاربر انجام میشه بدون مورد ، ولی ممتاسفانه در بخش مدیریت آن در بخش مربوطه همان تراکنش را ناموفق نشون میده ، میخواستم بدونم چجوری میشه این مورد را رفع کرد و وضعیت هر تراکنش موفق و ناموفق را نشون بده .
محتوای فایل مدیریت مربوطه را در ادامه ارسال کردم:
در ضمن در درگاه واسط تراکنش مربوطه با موفقیت انجام شده و کد بانک دریافت شده .
PHP:
<?php
class CashierController extends FrontController
{
public function __construct()
{
parent::__construct();
if(empty($_SESSION['user'])){
$this->_call($this->config['site_url'] . 'index/login');
exit();
}
}
public function indexAction()
{
Loader::loadClass('Cashier');
$error = array();
$flag = '';
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$param = $this->getParam('index', '');
if($param == 'trxOk'){
$flag = 'success';
$error[] = $this->lang['trx_ok2'];
$_SESSION['user']['user_balance'] = Cashier::getBalance();
}
if(isset($_SESSION['error'])){
$error = $_SESSION['error'];
$flag = 'error';
unset($_SESSION['error']);
}
$currency_symbol = Cashier::getSiteSetting('currency_symbol');
loader::loadClass('Sports');
$this->smarty->assign('currency_symbol', $currency_symbol);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'cashier');
$this->smarty->assign('flag', $flag);
$this->smarty->assign('error', $error);
$this->smarty->display('index.tpl.html');
}
public function depositAction()
{
Loader::loadClass('Cashier');
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$currency_symbol = Cashier::getSiteSetting('currency_symbol');
$deposit_bonus = Cashier::getSiteSetting('deposit_bonus');
loader::loadClass('Cashier');
loader::loadClass('Crypt');
$pay_params = Cashier::getPayments();
foreach($pay_params as $k => $v){
$payments[$v['payment_name']] =$v;
}
unset($pay_params);
loader::loadClass('Sports');
$this->smarty->assign('payments', $payments);
Loader::loadClass('Front');
$this->smarty->assign('currency_symbol', $currency_symbol);
$this->smarty->assign('deposit_bonus', $deposit_bonus);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'cashier');
$this->smarty->display('cashier/deposit.tpl.html');
}
public function okpaysAction()
{
Loader::loadClass('Cashier');
Loader::loadClass('Front');
$au = $_POST["transid"];
$order_id = $au;
$ss = $this->db->fetchall("SELECT * FROM payment_transactions WHERE trx_outer_id='$au' ORDER BY trx_id DESC LIMIT 1");
foreach($ss as $v){
$money = $v['trx_amount'];
$karbar = $v['trx_user_id'];
$trx_result = $v['trx_result'];
}
$price = $money;
$pin = "080D3E920ADE8E62D79A"; // api pin ra vared konid
$url = 'http://panel.shaparakpay.com/api/verify/'; // don't change
$fields = array(
'amount' => $price,
'pin' => urlencode($pin),
'transid' => $au,
);
$fields_string = "";
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
if($result == "1"){
if($money > 199999){
$deposit_bonus = Cashier::getSiteSetting('deposit_bonus');
$taghsim = $deposit_bonus / 100;
$zarb = $money * $taghsim;
$mablagh = $money + $zarb;
} else {
$mablagh = $money;
}
if($trx_result == 'fail'){
$this->db->query("UPDATE users SET user_balance=user_balance+$mablagh WHERE user_id=$karbar");
$this->db->query("UPDATE payment_transactions SET trx_result='success' WHERE trx_outer_id=$order_id");
}
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$error = array();
$error[] = "پرداخت موفقیت آمیز بوده است .";
$error[] = " مبلغ " . $mablagh . " تومان به حساب کاربری شما اضافه شد . ";
if($money > 199999){ $error[] = " پاداش واریز شما به مبلغ " . $zarb . " تومان به حساب کاربریتان اضافه شد "; }
$flag= 'success';
$this->smarty->assign('flag', $flag);
$this->smarty->assign('error', $error);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'cashier');
$this->smarty->display('cashier/deposit.tpl.html');
} else {
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$error = array();
$flag= 'warning';
$this->smarty->assign('flag', $flag);
$error[] = "خطایی رخ داد : شماره خطا " . $result;
$this->smarty->assign('error', $error);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'cashier');
$this->smarty->display('cashier/deposit.tpl.html');
}
}
public function depositPaymentAction()
{
Loader::loadClass('Cashier');
Loader::loadClass('Front');
$amount = $_POST['deposit_amount'];
if($amount == 0){
$error = array();
$error[] = "مبلغ را وارد کنید";
$this->smarty->assign('error', $error);
$this->smarty->display('cashier/deposit.tpl.html');
exit();
}
if($_POST['submit']){
$ss = $this->db->fetchall("SELECT * FROM payment_transactions ORDER BY trx_id DESC LIMIT 1");
foreach($ss as $v){
$vv = $v['trx_id'];
}
$orderid = ($vv + 1);
$pin = "080D3E920ADE8E62D79A"; // api pin ra vared konid
$callback = $this->config['site_url'].'cashier/okpays/';
$description = $orderid;
$url = 'http://panel.shaparakpay.com/api/create/'; // don't change
$fields = array(
'amount' => $amount,
'pin' => urlencode($pin),
'description' => urlencode($description),
'callback' => $callback,
);
$fields_string = "";
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');
$ch = curl_init();
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
curl_close($ch);
if(is_numeric($result)){
$error = array();
$error[] = "خطایی رخ داد : شماره خطا " . $result;
$this->smarty->assign('error', $error);
$this->smarty->display('cashier/deposit.tpl.html');
} else {
echo $result;
$trx = array(
'trx_user_id' => (int) $_SESSION['user']['user_id'],
'trx_amount' => $amount,
'trx_date' => jdate('Y-m-d H:i:s'),
'trx_result' => 'fail',
'trx_method' => '1',
'trx_type' => 'deposit',
'trx_outer_id' => $result,
'trx_bonus' => $result
);
$this->db->insert('payment_transactions', $trx);
header('Location: http://panel.shaparakpay.com/startpay/'.$result);
}
}
}
public function withdrawAction()
{
loader::loadClass('Sports');
Loader::loadClass('Front');
Loader::loadClass('Cashier');
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$currency_symbol = Cashier::getSiteSetting('currency_symbol');
$min_withdraw_amount = Cashier::getSiteSetting('min_withdraw_amount');
if(isset($_POST['withdraw_amount'])){
Loader::loadClass('Filter');
$user_balance = Cashier::getBalance();
$error = array();
$amount = floatval($_POST['withdraw_amount']);
if($amount < $min_withdraw_amount){
$error[] = $this->lang['min_withdraw_amount'];
}
if($amount > $user_balance){
$error[] = $this->lang['mb_withdraw_insufficient'];
}
$email = Filter::clear($_POST['email']);
$email2 = Filter::clear($_POST['email2']);
if(empty($error)){
Loader::loadClass('Moneybookers');
Loader::loadClass('Crypt');
// currency setting
$site_currency = Cashier::getSiteSetting('site_currency');
// payment method params
$pay_params = Cashier::getPaymentParams('moneybookers');
foreach($pay_params as $k => $v){
$pay_params[$v['param_name']] = Crypt::decrypt($v['param_value']);
}
$idd = (int) $_SESSION['user']['user_id'];
// payment transaction
$payment_transaction = array(
'trx_user_id' => (int) $_SESSION['user']['user_id'],
'trx_amount' => $amount,
'trx_date' => jdate('Y-m-d H:i:s'),
'trx_result' => 'waiting',
'trx_method' => 3,
'trx_type' => 'withdraw',
'trx_comment' => $email.'/'.$email2
);
$this->db->insert('payment_transactions', $payment_transaction);
$trx_id = $this->db->lastInsertId();
$this->db->update('users', $trx, "trx_id='$trx_id'");
$this->db->query("UPDATE users SET user_balance=user_balance-$amount WHERE user_id=$idd LIMIT 1");;
$this->_call($this->config['site_url'] . 'cashier/index/trxOk');
} else {
$this->smarty->assign('flag', 'error');
}
}
$this->smarty->assign('error', $error);
$this->smarty->assign('currency_symbol', $currency_symbol);
$this->smarty->assign('min_withdraw_amount', $min_withdraw_amount);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'p_bardasht');
$this->smarty->display('cashier/withdraw.tpl.html');
}
public function historyAction()
{
loader::loadClass('Sports');
Loader::loadClass('Front');
Loader::loadClass('Cashier');
Loader::loadClass("Pager");
$page = (int)$this->getParam("page", 1);
$show = (int)$this->getParam("show", 20);
$url = "cashier/history/show/$show/page/";
$user_id = intval($_SESSION['user']['user_id']);
$data_count = $this->db->fetchOne("SELECT COUNT(*) FROM payment_transactions WHERE trx_user_id='$user_id'");
$pager = new Pager($page, $data_count);
$pager->setItemsPerPage($show);
$pages_num = $pager->getPages();
$pages_text = $pager->getPagesAdditional();
$limit = $pager->getLimit();
$page = $pager->getCurrentPage();
$log = Cashier::getTrxHistory('',$limit['from'],$show);
if($data_count > $show)$this->smarty->assign("paging_on", "yes");
$this->smarty->assign("page", $page);
$this->smarty->assign("show", $show);
$this->smarty->assign("url", $url);
$this->smarty->assign("pages_num", $pages_num);
$this->smarty->assign("pages_text", $pages_text);
$_SESSION['user']['user_balance'] = Cashier::getBalance();
$currency_symbol = Cashier::getSiteSetting('currency_symbol');
$this->smarty->assign('currency_symbol', $currency_symbol);
$this->smarty->assign('history', $log);
$this->smarty->assign('user', $_SESSION['user']);
$this->smarty->assign('c_menu', 'p_listvarizi');
$this->smarty->display('cashier/history.tpl.html');
}
public function backmoneyAction()
{
loader::loadClass('Sports');
Loader::loadClass('Front');
$this->smarty->assign('currency_symbol', $currency_symbol);
$this->smarty->assign('user', $_SESSION['user']);
if (strtolower($_SERVER['REQUEST_METHOD']) == "post") {
$id = (int) $_SESSION['user']['user_id'];
$method = $this->db->fetchall("SELECT * FROM payment_transactions WHERE trx_result='waiting' AND trx_user_id=$id AND trx_type='withdraw' order by trx_id desc LIMIT 1");
$error = array();
if(empty($method)){
$error[] = "شما درخواستی برای واریز به حساب بانکی ثبت نکرده اید";
}
if(empty($error)){
foreach($method as $v){
$amount = $v['trx_amount'];
$trxuserid = $v[trx_user_id];
$this->db->query("UPDATE users SET user_balance=user_balance+$amount WHERE user_id=$trxuserid");
$idd = $v[trx_id];
$dataa = array(
'trx_result' => 'cancelled',
'trx_comment' => 'کنسل شده توسط کاربر',
);
$this->db->update('payment_transactions', $dataa, "trx_id='$idd'");
$flag = 'success';
$error[] = "برگشت اخرین درخواست واریزی به حساب کاربری شما با موفقیت انجام شد.";
}
}
}
$this->smarty->assign('flag', $flag);
$this->smarty->assign('error', $error);
$this->smarty->assign('c_menu', 'p_backmoney');
$this->smarty->display('cashier/back_win.tpl.html');
}
}
?>