示例#1
0
 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));
     }
 }
示例#2
0
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;