function process() { global $osC_Customer, $osC_Language, $osC_Currencies, $osC_ShoppingCart, $_POST, $_GET, $osC_Database, $messageStack; // get data from pasargad $tref = $_GET['tref']; //TransactionReferenceID $iNumber = $_GET['iN']; //invoiceNumber $iDate = $_GET['iD']; //invoiceDate $this->_order_id = osC_Order::insert(ORDERS_STATUS_PREPARING); $order = $this->_order_id; if (MODULE_PAYMENT_BPI_CURRENCY == 'Selected Currency') { $currency = $osC_Currencies->getCode(); } else { $currency = MODULE_PAYMENT_BPI_CURRENCY; } $amount = round($osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $currency), 2); require_once 'ext/bpiclass/parser.php'; $result = post2https($tref, 'https://pep.shaparak.ir/CheckTransactionResult.aspx'); $array = makeXMLTree($result); $state = strtolower($array["resultObj"]["result"]); $action = $array["resultObj"]["action"]; $invoiceNumber = $array["resultObj"]["invoiceNumber"]; $invoiceDate = $array["resultObj"]["invoiceDate"]; $merchantCode = $array["resultObj"]["merchantCode"]; $terminalCode = $array["resultObj"]["terminalCode"]; $traceNumber = $array["resultObj"]["traceNumber"]; $referenceNumber = $array["resultObj"]["referenceNumber"]; $transactionDate = $array["resultObj"]["transactionDate"]; if ($state == "true" and $action == "1003" and $merchantCode == MODULE_PAYMENT_BPI_MERCHANT_CODE and $terminalCode == MODULE_PAYMENT_BPI_TERMINAL_CODE and $invoiceDate == $iDate and $invoiceNumber == $order) { // here we update our order state $this->_order_id = osC_Order::insert(); $comments = $osC_Language->get('payment_bpi_transaction_id') . '[' . $tref . ']' . $osC_Language->get('payment_bpi_reference_id') . '[' . $referenceNumber . ']'; osC_Order::process($this->_order_id, $this->order_status, $comments); // here we save our database $osC_Database->simpleQuery("insert into `" . DB_TABLE_PREFIX . "online_transactions`\n\t\t\t\t\t \t\t(orders_id,receipt_id,transaction_method,transaction_date,transaction_amount,transaction_id) values\n\t\t ('{$order}','{$referenceNumber}','bpi','{$transactionDate}','{$amount}','{$tref}')\n\t\t\t\t\t "); // $Qtransaction = $osC_Database->query('insert into :table_orders_transactions_history (orders_id, transaction_code, transaction_return_value, transaction_return_status, date_added) values (:orders_id, :transaction_code, :transaction_return_value, :transaction_return_status, now())'); $Qtransaction->bindTable(':table_orders_transactions_history', TABLE_ORDERS_TRANSACTIONS_HISTORY); $Qtransaction->bindInt(':orders_id', $order); $Qtransaction->bindInt(':transaction_code', 1); $Qtransaction->bindValue(':transaction_return_value', $referenceNumber); $Qtransaction->bindInt(':transaction_return_status', 1); $Qtransaction->execute(); } else { osC_Order::remove($this->_order_id); if ($state == "false" and $merchantCode == MODULE_PAYMENT_BPI_MERCHANT_CODE and $terminalCode == MODULE_PAYMENT_BPI_TERMINAL_CODE and $invoiceDate == $iDate and $invoiceNumber == $order) { $messageStack->add_session('checkout', $osC_Language->get('payment_bpi_unsuccessful_payment'), 'error'); } elseif ($state == "false" and ($merchantCode != MODULE_PAYMENT_BPI_MERCHANT_CODE or $terminalCode != MODULE_PAYMENT_BPI_TERMINAL_CODE or $invoiceDate != $iDate or $invoiceNumber != $order)) { $messageStack->add_session('checkout', $osC_Language->get('payment_bpi_contradictory_in_information'), 'error'); } else { $messageStack->add_session('checkout', $osC_Language->get('payment_bpi_payment_not_confirmed'), 'error'); } osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true)); } }
include_once "../kernel.php"; $SESSION = new session_class(); register_shutdown_function('session_write_close'); session_start(); if (!isset($_SESSION[$conf->app . '_user_id'])) { die('error'); } include_once '../class/parser.php'; //var_dump($array); //echo("<br /><br /><h1>"); //echo $array["resultObj"]["result"]; //echo("</h1>") if (isset($_GET['tref']) && isset($_GET['iN']) && isset($_GET['iD'])) { $iN = (int) $_GET['iN']; $iD = trim($_GET['iD']); $result = post2https($_GET['tref'], 'https://epayment.bankpasargad.com/CheckTransactionResult.aspx'); $bank_out = makeXMLTree($result); //var_dump($bank_out); if ($bank_out["resultObj"]["result"] == "True" && $iN == (int) $bank_out["resultObj"]['invoiceNumber'] && $iD == trim($bank_out['resultObj']['invoiceDate'])) { $pardakht = new pardakht_class((int) $bank_out['resultObj']['invoiceNumber']); $pardakht->bank_out = serialize($bank_out); $sanad_record_id = sanad_class::getLastSanad_record_id(); $sanad_record_id_ticket = $sanad_record_id; //-------------ticket ---------- $res_tmp = explode(',', $pardakht->sanad_record_id); $ghimat_kharid = 0; $ticket_ids = array(); $ticket_error = FALSE; $ticket_ids = array(); $shenavar = array(); $tedad = 0;