Example #1
0
 function osC_Checkout_Process()
 {
     global $osC_Session, $osC_ShoppingCart, $osC_Customer, $osC_NavigationHistory, $osC_Payment;
     if ($osC_ShoppingCart->hasContents() === false) {
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, null, 'SSL'));
     }
     // if no shipping method has been selected, redirect the customer to the shipping method selection page
     if ($osC_ShoppingCart->hasShippingMethod() === false && $osC_ShoppingCart->getContentType() != 'virtual') {
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'shipping', 'SSL'));
     }
     if ($osC_ShoppingCart->hasBillingMethod()) {
         // load selected payment module
         include 'includes/classes/payment.php';
         $osC_Payment = new osC_Payment($osC_ShoppingCart->getBillingMethod('id'));
     }
     include 'includes/classes/order.php';
     if ($osC_ShoppingCart->hasBillingMethod()) {
         $osC_Payment->process();
     } else {
         $orders_id = osC_Order::insert();
         osC_Order::process($orders_id, ORDERS_STATUS_PAID);
     }
     $osC_ShoppingCart->reset(true);
     // unregister session variables used during checkout
     unset($_SESSION['comments']);
     osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'success', 'SSL'));
 }
Example #2
0
 function process()
 {
     global $osC_Database, $osC_Currencies, $osC_ShoppingCart;
     $this->_order_id = osC_Order::insert();
     // Load gateway setings
     require_once dirname(dirname(dirname(dirname(__FILE__)))) . '/ext/payments/ideal/config.php';
     $aGatewaySettings = gateway_getSettings();
     // Load gateway file
     require_once $aGatewaySettings['GATEWAY_FILE'];
     // Add transaction record to database
     $sOrderId = $this->_order_id;
     $sOrderCode = GatewayCore::randomCode(32);
     $sTransactionId = GatewayCore::randomCode(32);
     $sTransactionCode = GatewayCore::randomCode(32);
     $sTransactionMethod = $aGatewaySettings['GATEWAY_METHOD'];
     $fTransactionAmount = $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), 'EUR');
     $sTransactionDescription = 'Webshop bestelling #' . $sOrderId;
     $sTransactionPaymentUrl = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . FILENAME_CHECKOUT . '?callback&module=ideal&order_id=' . $sOrderId . '&order_code=' . $sOrderCode;
     $sTransactionSuccessUrl = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . FILENAME_CHECKOUT . '?callback&module=ideal&order_id=' . $sOrderId . '&order_code=' . $sOrderCode;
     $sTransactionPendingUrl = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . FILENAME_CHECKOUT . '?callback&module=ideal&order_id=' . $sOrderId . '&order_code=' . $sOrderCode;
     $sTransactionFailureUrl = HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . FILENAME_CHECKOUT . '?callback&module=ideal&order_id=' . $sOrderId . '&order_code=' . $sOrderCode;
     // Insert into #_transactions
     $sql = "INSERT INTO `" . DB_TABLE_PREFIX . "transactions` SET \n              `id` = NULL, \n              `order_id` = '" . mysql_real_escape_string($sOrderId) . "', \n              `order_code` = '" . mysql_real_escape_string($sOrderCode) . "', \n              `transaction_id` = '" . mysql_real_escape_string($sTransactionId) . "', \n              `transaction_code` = '" . mysql_real_escape_string($sTransactionCode) . "', \n              `transaction_method` = '" . mysql_real_escape_string($sTransactionMethod) . "', \n              `transaction_date` = '" . mysql_real_escape_string(time()) . "', \n              `transaction_amount` = '" . mysql_real_escape_string($fTransactionAmount) . "', \n              `transaction_description` = '" . mysql_real_escape_string($sTransactionDescription) . "', \n              `transaction_status` = NULL, \n              `transaction_url` = NULL, \n              `transaction_payment_url` = '" . mysql_real_escape_string($sTransactionPaymentUrl) . "', \n              `transaction_success_url` = '" . mysql_real_escape_string($sTransactionSuccessUrl) . "', \n              `transaction_pending_url` = '" . mysql_real_escape_string($sTransactionPendingUrl) . "', \n              `transaction_failure_url` = '" . mysql_real_escape_string($sTransactionFailureUrl) . "', \n              `transaction_params` = NULL, \n              `transaction_log` = NULL;";
     $oQuery = $osC_Database->query($sql);
     $oQuery->execute();
     // Redirect to iDEAL Setup
     osc_redirect(HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . '/ext/payments/ideal/setup.php?order_id=' . $sOrderId . '&order_code=' . $sOrderCode);
     // osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'callback&module=ideal&order_id=' . $sOrderId . '&order_code=' . $sOrderCode, 'SSL'));
 }
Example #3
0
 function pre_confirmation_check()
 {
     global $osC_Customer, $osC_Currencies, $osC_ShoppingCart;
     $this->_order_id = osC_Order::insert();
     $params = array('ACCOUNTID' => MODULE_PAYMENT_SAFERPAY_CC_ACCOUNT_ID, 'ORDERID' => $this->_order_id, 'SUCCESSLINK' => osc_href_link(FILENAME_CHECKOUT, 'process', 'SSL', null, null, true), 'FAILLINK' => osc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL', null, null, true), 'BACKLINK' => osc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL', null, null, true), 'AMOUNT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100, 'CURRENCY' => $osC_Currencies->getCode(), 'DESCRIPTION' => STORE_NAME, 'ALLOWCOLLECT' => 'no', 'DELIVERY' => 'no');
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway('http://support.saferpay.de/scripts/CreatePayInit.asp', $post_string);
     $this->form_action_url = $this->_transaction_response;
 }
Example #4
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $params = array('spPassword' => MODULE_PAYMENT_SAFERPAY_CC_PASSWORD, 'ACCOUNTID' => MODULE_PAYMENT_SAFERPAY_CC_ACCOUNT_ID, 'ORDERID' => $this->_order_id, 'NAME' => $_POST['saferpay_elv_owner'], 'TRACK2' => ';59' . $_POST['saferpay_elv_bank'] . '=' . str_pad($_POST['saferpay_elv_account'], 10, '0', STR_PAD_LEFT), 'AMOUNT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100, 'CURRENCY' => $osC_Currencies->getCode());
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway('https://support.saferpay.de/scripts/Execute.asp', $post_string);
     $error = false;
     if (substr($this->_transaction_response, 0, 3) == 'OK:') {
         $this->_transaction_response = trim(substr($this->_transaction_response, 3));
         $osC_XML = new osC_XML($this->_transaction_response);
         $result = $osC_XML->toArray();
         switch ($result_array['IDP attr']['RESULT']) {
             case '0':
                 //success
                 break;
             default:
                 $error = $osC_Language->get('payment_saferpay_elv_error_general');
                 break;
         }
     } else {
         $error = $osC_Language->get('payment_saferpay_elv_error_general');
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&saferpay_elv_owner=' . $_POST['saferpay_elv_owner'] . '&saferpay_elv_bank=' . $_POST['saferpay_elv_bank'], 'SSL'));
     }
 }
Example #5
0
 function confirmation()
 {
     $this->_order_id = osC_Order::insert();
 }
Example #6
0
 function process()
 {
     global $osC_ShoppingCart, $osC_Currencies, $messageStack;
     $orders_id = osC_Order::insert();
     $params = array('USER' => MODULE_PAYMENT_PAYPAL_EXPRESS_API_USERNAME, 'PWD' => MODULE_PAYMENT_PAYPAL_EXPRESS_API_PASSWORD, 'VERSION' => '3.2', 'SIGNATURE' => MODULE_PAYMENT_PAYPAL_EXPRESS_API_SIGNATURE, 'METHOD' => 'DoExpressCheckoutPayment', 'TOKEN' => $_SESSION['ppe_token'], 'PAYMENTACTION' => MODULE_PAYMENT_PAYPAL_EXPRESS_METHOD == 'Sale' ? 'Sale' : 'Authorization', 'PAYERID' => $_SESSION['ppe_payerid'], 'AMT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal() - $osC_ShoppingCart->getShippingMethod('cost'), $osC_Currencies->getCode()), 'CURRENCYCODE' => $osC_Currencies->getCode(), 'BUTTONSOURCE' => PROJECT_VERSION);
     if ($osC_ShoppingCart->hasShippingAddress()) {
         $params['SHIPTONAME'] = $osC_ShoppingCart->getShippingAddress('firstname') . ' ' . $osC_ShoppingCart->getShippingAddress('lastname');
         $params['SHIPTOSTREET'] = $osC_ShoppingCart->getShippingAddress('street_address');
         $params['SHIPTOCITY'] = $osC_ShoppingCart->getShippingAddress('city');
         $params['SHIPTOSTATE'] = $osC_ShoppingCart->getShippingAddress('zone_code');
         $params['SHIPTOCOUNTRYCODE'] = $osC_ShoppingCart->getShippingAddress('country_iso_code_2');
         $params['SHIPTOZIP'] = $osC_ShoppingCart->getShippingAddress('postcode');
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $response = $this->sendTransactionToGateway($this->api_url, $post_string);
     $response_array = array();
     parse_str($response, $response_array);
     unset($_SESSION['ppe_token']);
     unset($_SESSION['ppe_payerid']);
     if ($response_array['ACK'] != 'Success' && $response_array['ACK'] != 'SuccessWithWarning') {
         $messageStack->add_session('shopping_cart', stripslashes($response_array['L_LONGMESSAGE0']), 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, '', 'SSL'));
         exit;
     } else {
         osC_Order::process($orders_id, $this->order_status);
     }
 }
Example #7
0
 function process()
 {
     global $osC_Language, $osC_Customer, $osC_ShoppingCart, $_POST, $_GET, $messageStack, $osC_Database;
     $authority = $_REQUEST['au'];
     $status = $_REQUEST['rs'];
     $this->_order_id = osC_Order::insert(ORDERS_STATUS_PREPARING);
     $order = $this->_order_id;
     // order id for reversal
     if ($authority) {
         // here we update our database
         if ($status == '0') {
             //curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
             //$page = curl_exec ($ch);
             if (MODULE_PAYMENT_PEC_GATEWAY == 'pec-shaparak') {
                 $client = new nusoap_client('https://pec.shaparak.ir/pecpaymentgateway/eshopservice.asmx?wsdl', 'wsdl');
             } elseif (MODULE_PAYMENT_PEC_GATEWAY == 'pec24') {
                 $client = new nusoap_client('https://www.pec24.com/pecpaymentgateway/eshopservice.asmx?wsdl', 'wsdl');
             } else {
                 $client = new nusoap_client('https://www.pecco24.com:27635/pecpaymentgateway/eshopservice.asmx?wsdl', 'wsdl');
             }
             ///////////////// INQUIRY REQUEST
             $inquiryauthority = $authority;
             $inquirystatus = 1;
             // default status
             // Check for an error
             $err = $client->getError();
             if ($err) {
                 echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
                 die;
             }
             $parameters = array('pin' => MODULE_PAYMENT_PEC_PIN, 'authority' => $inquiryauthority, 'status' => $inquirystatus);
             // Call the SOAP method
             $result = $client->call('PinPaymentEnquiry', $parameters);
             // Check for a fault
             if ($client->fault) {
                 echo '<h2>Fault1</h2><pre>';
                 print_r($result);
                 echo '</pre>';
                 die;
             } else {
                 $resultStr = $result;
                 $status = $resultStr['status'];
                 if ($status == '0') {
                     //$status==0 --> $status==a2l2i for test
                     // this is a succcessfull payment
                     // we update our DataBase
                     //  save transaction_id to database
                     $osC_Database->simpleQuery("update `" . DB_TABLE_PREFIX . "online_transactions` set transaction_id = '{$authority}',transaction_date = '" . date("YmdHis") . "' where 1 and ( receipt_id = '{$authority}' )");
                     //
                     $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', $authority);
                     $Qtransaction->bindInt(':transaction_return_status', 1);
                     $Qtransaction->execute();
                     //
                     $this->_order_id = osC_Order::insert();
                     $comments = $osC_Language->get('payment_pec_method_authority') . '[' . $authority . ']';
                     osC_Order::process($this->_order_id, $this->order_status, $comments);
                 } else {
                     $err = $client->getError();
                     if ($err) {
                         //$err --> $err='ali' for test
                         ///////////////// REVERSAL REQUEST
                         $order = $this->_order_id;
                         // order id for reversal
                         $orderid = $order;
                         $reversaltoreversal = $order;
                         $reversalstatus = 1;
                         // default status
                         // Check for an error
                         $err = $client->getError();
                         if ($err) {
                             echo '<h2>Constructor error</h2><pre>' . $err . '</pre>';
                             die;
                         }
                         $parameters = array('pin' => MODULE_PAYMENT_PEC_PIN, 'orderId' => $orderid, 'orderToReversal' => $reversaltoreversal, 'status' => $reversalstatus);
                         // Call the SOAP method
                         $result = $client->call('PinReversal', $parameters);
                         // Check for a fault
                         if ($client->fault) {
                             echo '<h2>Fault3</h2><pre>';
                             print_r($result);
                             echo '</pre>';
                             die;
                         } else {
                             $resultStr = $result;
                             $err = $client->getError();
                             if ($err) {
                                 // Display the error
                                 echo '<h2>Error</h2><pre>' . $err . '</pre>';
                                 die;
                             } else {
                                 // Update Table, Save Reversal Status
                                 // Note: Successful Reversal means that sale is reversed.
                                 //echo "<script>alert('Reversal Response is : " . $resultStr . "');</script>";
                                 //	echo "Reversal Response is : " . $resultStr;
                                 //  delete receipt id from database
                                 $osC_Database->simpleQuery("delete from `" . DB_TABLE_PREFIX . "online_transactions` where 1 and ( receipt_id = '{$authority}' ) and ( orders_id = '{$order}' )");
                                 //
                                 osC_Order::remove($this->_order_id);
                                 $messageStack->add_session('checkout', 'خطا در تایید تراکنش ، مبلغ تراکنش با موفقیت به حساب شما برگشت داده شد.', 'error');
                                 osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
                                 //
                             }
                             // end Display the result
                         }
                         // end Check for errors
                     }
                     //  delete receipt id from database
                     $osC_Database->simpleQuery("delete from `" . DB_TABLE_PREFIX . "online_transactions` where 1 and ( receipt_id = '{$authority}' ) and ( orders_id = '{$order}' )");
                     //
                     osC_Order::remove($this->_order_id);
                     $messageStack->add_session('checkout', check_pec_state_error($status), 'error');
                     osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
                     //
                 }
             }
         } else {
             //  delete receipt id from database
             $osC_Database->simpleQuery("delete from `" . DB_TABLE_PREFIX . "online_transactions` where 1 and ( receipt_id = '{$authority}' ) and ( orders_id = '{$order}' )");
             //
             // this is a UNsucccessfull payment
             osC_Order::remove($this->_order_id);
             $messageStack->add_session('checkout', check_pec_state_error($status), 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
         }
     } else {
         //  delete receipt id from database
         $osC_Database->simpleQuery("delete from `" . DB_TABLE_PREFIX . "online_transactions` where 1 and ( orders_id = '{$order}' )");
         //
         // this is a UNsucccessfull payment
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout', check_pec_state_error($status), 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
     }
 }
Example #8
0
 function process()
 {
     global $messageStack;
     if (isset($_GET['TransID']) && isset($_GET['Note'])) {
         $ordID = trim($_GET['Note']);
         $thesuccess = trim($_GET['Status']);
         $theauthcode = trim($_GET['TransID']);
         $md5check = trim($_GET['Crypt']);
         $theamount = trim($_GET['Amount']);
         $md5hash = md5($thesuccess . $theauthcode . $theamount . MODULE_PAYMENT_PAYFAST_SECRET_KEY);
         if ($ordID != '' && $thesuccess == 'Success' && $theauthcode != '' && $md5check == $md5hash) {
             // validated - continue
         } else {
             // problem with order, ecom system says this failed or doesnt recognize it
             // so could be a spoof attempt. Dont process the order.
             //osc_redirect(osc_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
             $the_error = 'There is a problem processing your order.';
             if (MODULE_PAYMENT_PAYFAST_SECRET_KEY == '') {
                 $the_error .= ': Secret Key Not set in the Payfast Module :';
             }
             if ($md5check != $md5hash) {
                 $the_error .= ': Secret Keys Do Not Match :';
             }
             if ($ordID == '') {
                 $the_error .= ': Order ID not set :';
             }
             if ($thesuccess != 'Success') {
                 $the_error .= ': Status Code incorrect :';
             }
             if ($theauthcode == '') {
                 $the_error .= ': No auth code specififed:';
             }
             $messageStack->add_session('checkout', $the_error, 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout', 'SSL', true, false));
         }
     } else {
         if (isset($_GET['fail']) && $_GET['fail'] == true) {
             $messageStack->add_session('checkout', "Your card has been declined", 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout', 'SSL'));
         } else {
             $myVars = array('CustomerID' => MODULE_PAYMENT_PAYFAST_CUSTOMER_ID, 'Notes' => $this->payfast_notes);
             // to payfast api to check transaction
             $path = "/paypage/confirm.asp";
             // PORT
             $port = 443;
             // BUILD THE POST STRING
             foreach ($myVars as $key => $val) {
                 $poststring .= urlencode($key) . "=" . urlencode($val) . "&";
             }
             // STRIP OFF THE TRAILING AMPHERSAND
             $poststring = substr($poststring, 0, -1);
             if (MODULE_PAYMENT_PAYFAST_TEST_MODE == 'True') {
                 $host = "https://sandbox.payfast.co.za/eng/process";
             } else {
                 $host = "https://sandbox.payfast.co.za/eng/process";
             }
             // try using fsick for ssl connection, if this doesnt work
             // use curl
             $fp = @fsockopen("ssl://{$host}", $port, $errno, $errstr, $timeout = 30);
             if ($fp) {
                 // SEND THE SERVER REQUEST
                 fputs($fp, "POST {$path} HTTP/1.1\r\n");
                 fputs($fp, "Host: {$host}\r\n");
                 fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
                 fputs($fp, "Content-length: " . strlen($poststring) . "\r\n");
                 fputs($fp, "Connection: close\n\n");
                 fputs($fp, $poststring . "\n\n");
                 // LOOP THROUGH THE RESPONSE FROM THE SERVER
                 while (!feof($fp)) {
                     $response .= @fgets($fp, 4096);
                 }
                 // CLOSE FP
                 fclose($fp);
             } else {
                 // ssl not installed so try using curl
                 $ch = curl_init();
                 curl_setopt($ch, CURLOPT_URL, "https://" . $host . $path);
                 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
                 curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
                 curl_setopt($ch, CURLOPT_POSTFIELDS, $poststring);
                 curl_setopt($ch, CURLOPT_POST, TRUE);
                 $response = curl_exec($ch);
             }
             if (strpos($response, "SUCCESS")) {
                 // indicates a success transaction, just need to validate amount
                 // everything okay, carry on with processing order
             } else {
                 // problem with order, ecom system says this failed or doesnt recognize it
                 // so could be a spoof attempt. Dont process the order
                 $error = 'problem with order, ecom system says this failed or doesnt recognize it';
                 $messageStack->add_session('checkout', $error, 'error');
                 osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout', 'SSL'));
             }
         }
     }
     $this->_order_id = osC_Order::insert();
     osC_Order::process($this->_order_id, $this->order_status);
 }
 function process()
 {
     global $osC_Currencies, $osC_ShoppingCart, $messageStack, $osC_Session;
     header('Processing, please wait..');
     $error = false;
     if (isset($_POST['x_response_code']) && $_POST['x_response_code'] == '1') {
         if (MODULE_PAYMENT_AUTHORIZENET_CC_SIM_MD5_HASH != NULL && (isset($_POST['x_MD5_Hash']) && $_POST['x_MD5_Hash'] != strtoupper(md5(MODULE_PAYMENT_AUTHORIZENET_CC_SIM_MD5_HASH . MODULE_PAYMENT_AUTHORIZENET_CC_SIM_API_LOGIN_ID . $_POST['x_trans_id'] . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal()))))) {
             $error = 'verification';
         } else {
             if (isset($_POST['x_amount']) && $_POST['x_amount'] != $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal())) {
                 $error = 'verification';
             }
         }
     } else {
         if ($_POST['x_response_code'] == '2') {
             $error = 'declined';
         } else {
             $error = 'general';
         }
     }
     if ($error != false) {
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&sid=' . $_POST['sid'] . '&error=' . $error, '', false, false, true));
     } else {
         $orders_id = osC_Order::insert();
         osC_Order::process($orders_id, $this->order_status);
         $osC_ShoppingCart->reset(true);
         // unregister session variables used during checkout
         unset($_SESSION['comments']);
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'success&sid=' . $osC_Session->getID(), 'SSL'));
     }
 }
Example #10
0
 function process()
 {
     $this->_order_id = osC_Order::insert();
     osC_Order::process($this->_order_id, $this->order_status);
 }
Example #11
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $post_string = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">' . "\n" . '  <W_REQUEST>' . "\n" . '    <W_JOB>' . "\n" . '      <JobID>Job 1</JobID>' . "\n" . '      <BusinessCaseSignature>' . MODULE_PAYMENT_WIRECARD_EFT_BUSINESS_SIGNATURE . '</BusinessCaseSignature>' . "\n" . '      <FNC_FT_DEBIT>' . "\n" . '        <FunctionID>Debit 1</FunctionID>' . "\n" . '        <FT_TRANSACTION mode="' . MODULE_PAYMENT_WIRECARD_EFT_TRANSACTION_MODE . '">' . "\n" . '          <TransactionID>' . $this->_order_id . '</TransactionID>' . "\n" . '          <EXTERNAL_ACCOUNT>' . "\n" . '            <FirstName>' . $_POST['wirecard_eft_owner_first'] . '</FirstName>' . "\n" . '            <LastName>' . $_POST['wirecard_eft_owner_last'] . '</LastName>' . "\n" . '            <AccountNumber>' . $_POST['wirecard_eft_account'] . '</AccountNumber>' . "\n" . '            <AccountType>' . $_POST['wirecard_eft_account_type'] . '</AccountType>' . "\n" . '            <BankCode>' . $_POST['wirecard_eft_bank_code'] . '</BankCode>' . "\n" . '            <Country>' . $osC_ShoppingCart->getBillingAddress('country_iso_code_2') . '</Country>' . "\n" . '            <CheckNumber>' . $_POST['wirecard_eft_check_number'] . '</CheckNumber>' . "\n";
     if ($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT') {
         $post_string .= '            <COUNTRY_SPECIFIC>' . "\n" . '              <IdentificationNumber>' . $_POST['wirecard_eft_id_number'] . '</IdentificationNumber>' . "\n" . '            </COUNTRY_SPECIFIC>' . "\n";
     }
     $post_string .= '          </EXTERNAL_ACCOUNT>' . "\n" . '          <Amount>' . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100 . '</Amount>' . "\n" . '          <Currency>' . $osC_Currencies->getCode() . '</Currency>' . "\n" . '          <CORPTRUSTCENTER_DATA>' . "\n" . '            <ADDRESS>' . "\n" . '              <Address1>' . $osC_ShoppingCart->getBillingAddress('street_address') . '</Address1>' . "\n" . '              <City>' . $osC_ShoppingCart->getBillingAddress('city') . '</City>' . "\n" . '              <ZipCode>' . $osC_ShoppingCart->getBillingAddress('postcode') . '</ZipCode>' . "\n";
     if (osc_empty($osC_ShoppingCart->getBillingAddress('zone_code')) === false) {
         $post_string .= '              <State>' . $osC_ShoppingCart->getBillingAddress('zone_code') . '</State>' . "\n";
     }
     $post_string .= '              <Country>' . $osC_ShoppingCart->getBillingAddress('country_iso_code_2') . '</Country>' . "\n" . '              <Phone>' . $osC_ShoppingCart->getBillingAddress('telephone_number') . '</Phone>' . "\n" . '              <Email>' . $osC_Customer->getEmailAddress() . '</Email>' . "\n" . '            </ADDRESS>' . "\n" . '          </CORPTRUSTCENTER_DATA>' . "\n" . '        </FT_TRANSACTION>' . "\n" . '      </FNC_FT_DEBIT>' . "\n" . '    </W_JOB>' . "\n" . '  </W_REQUEST>' . "\n" . '</WIRECARD_BXML>';
     $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string, array('Content-type: text/xml'));
     if (empty($this->_transaction_response) === false) {
         $osC_XML = new osC_XML($this->_transaction_response);
         $result = $osC_XML->toArray();
     } else {
         $result = array();
     }
     $error = false;
     if (isset($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'])) {
         if ($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'] != 'ACK') {
             //          $errno = $result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_FT_DEBIT']['FT_TRANSACTION']['PROCESSING_STATUS']['DETAIL']['ReturnCode'];
             //          switch ($errno) {
             //            default:
             $error = $osC_Language->get('payment_wirecard_eft_error_general');
             //              break;
             //          }
         }
     } else {
         $error = $osC_Language->get('payment_wirecard_eft_error_general');
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&wirecard_eft_owner_first=' . $_POST['wirecard_eft_owner_first'] . '&wirecard_eft_owner_last=' . $_POST['wirecard_eft_owner_last'] . '&wirecard_eft_account_type=' . $_POST['wirecard_eft_account_type'] . '&wirecard_eft_bank=' . $_POST['wirecard_eft_bank'] . '&wirecard_eft_check_number=' . $_POST['wirecard_eft_check_number'] . ($osC_ShoppingCart->getBillingAddress('country_iso_code_2') == 'IT' ? '&wirecard_eft_id_number=' . $_POST['wirecard_eft_id_number'] : ''), 'SSL'));
     }
 }
Example #12
0
 function process()
 {
     global $osC_Database, $osC_MessageStack, $osC_Customer, $osC_Language, $osC_Currencies, $osC_ShoppingCart;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $params = array('x_version' => '3.1', 'x_delim_data' => 'TRUE', 'x_delim_char' => ',', 'x_encap_char' => '"', 'x_relay_response' => 'FALSE', 'x_login' => MODULE_PAYMENT_AUTHORIZENET_ECHECK_LOGIN_ID, 'x_tran_key' => MODULE_PAYMENT_AUTHORIZENET_ECHECK_TRANSACTION_KEY, 'x_amount' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()), 'x_currency_code' => $osC_Currencies->getCode(), 'x_method' => 'ECHECK', 'x_bank_aba_code' => $_POST['authorizenet_echeck_routing_code'], 'x_bank_acct_num' => $_POST['authorizenet_echeck_account_number'], 'x_bank_acct_type' => $_POST['authorizenet_echeck_account_type'], 'x_bank_name' => $_POST['authorizenet_echeck_bank_name'], 'x_bank_acct_name' => $_POST['authorizenet_echeck_owner'], 'x_echeck_type' => 'WEB', 'x_type' => 'AUTH_ONLY', 'x_first_name' => $osC_ShoppingCart->getBillingAddress('firstname'), 'x_last_name' => $osC_ShoppingCart->getBillingAddress('lastname'), 'x_company' => $osC_ShoppingCart->getBillingAddress('company'), 'x_address' => $osC_ShoppingCart->getBillingAddress('street_address'), 'x_city' => $osC_ShoppingCart->getBillingAddress('city'), 'x_state' => $osC_ShoppingCart->getBillingAddress('state'), 'x_zip' => $osC_ShoppingCart->getBillingAddress('postcode'), 'x_country' => $osC_ShoppingCart->getBillingAddress('country_iso_code_2'), 'x_cust_id' => $osC_Customer->getID(), 'x_customer_ip' => osc_get_ip_address(), 'x_invoice_num' => $this->_order_id, 'x_email' => $osC_Customer->getEmailAddress(), 'x_email_customer' => 'FALSE', 'x_ship_to_first_name' => $osC_ShoppingCart->getShippingAddress('firstname'), 'x_ship_to_last_name' => $osC_ShoppingCart->getShippingAddress('lastname'), 'x_ship_to_company' => $osC_ShoppingCart->getShippingAddress('company'), 'x_ship_to_address' => $osC_ShoppingCart->getShippingAddress('street_address'), 'x_ship_to_city' => $osC_ShoppingCart->getShippingAddress('city'), 'x_ship_to_state' => $osC_ShoppingCart->getShippingAddress('state'), 'x_ship_to_zip' => $osC_ShoppingCart->getShippingAddress('postcode'), 'x_ship_to_country' => $osC_ShoppingCart->getShippingAddress('country_iso_code_2'));
     if (ACCOUNT_TELEPHONE > -1) {
         $params['x_phone'] = $osC_ShoppingCart->getBillingAddress('telephone_number');
     }
     if (MODULE_PAYMENT_AUTHORIZENET_ECHECK_TRANSACTION_TEST_MODE == '1') {
         $params['x_test_request'] = 'TRUE';
     }
     if (MODULE_PAYMENT_AUTHORIZENET_ECHECK_VERIFY_WITH_WF_SS == '1') {
         $params['x_customer_organization_type'] = $_POST['authorizenet_echeck_org_type'];
         $params['x_customer_tax_id'] = $_POST['authorizenet_echeck_tax_id'];
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string);
     if (empty($this->_transaction_response) === false) {
         $regs = preg_split("/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/", $this->_transaction_response);
         foreach ($regs as $key => $value) {
             $regs[$key] = substr($value, 1, -1);
             // remove double quotes
         }
     } else {
         $regs = array('-1', '-1', '-1');
     }
     $error = false;
     if ($regs[0] == '1') {
         if (!osc_empty(MODULE_PAYMENT_AUTHORIZENET_ECHECK_MD5_HASH)) {
             if (strtoupper($regs[37]) != strtoupper(md5(MODULE_PAYMENT_AUTHORIZENET_ECHECK_MD5_HASH . MODULE_PAYMENT_AUTHORIZENET_ECHECK_LOGIN_ID . $regs[6] . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode())))) {
                 $error = $osC_Language->get('payment_authorizenet_echeck_error_general');
             }
         }
     } else {
         switch ($regs[2]) {
             case '9':
                 $error = $osC_Language->get('payment_authorizenet_echeck_error_invalid_routing_code');
                 break;
             case '10':
                 $error = $osC_Language->get('payment_authorizenet_echeck_error_invalid_account');
                 break;
             case '77':
                 $error = $osC_Language->get('payment_authorizenet_echeck_error_invalid_tax_id');
                 break;
             default:
                 $error = $osC_Language->get('payment_authorizenet_echeck_error_general');
                 break;
         }
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $osC_MessageStack->add('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&authorizenet_echeck_owner=' . $_POST['authorizenet_echeck_owner'] . '&authorizenet_echeck_account_type=' . $_POST['authorizenet_echeck_account_type'] . '&authorizenet_echeck_bank_name=' . $_POST['authorizenet_echeck_bank_name'] . '&authorizenet_echeck_routing_code=' . $_POST['authorizenet_echeck_routing_code'], 'SSL'));
     }
 }
Example #13
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));
     }
 }
Example #14
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $params = array('action' => 'ns_quicksale_cc', 'acctid' => MODULE_PAYMENT_PAYQUAKE_CC_ACCOUNT_ID, 'amount' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), 'USD'), 'ccname' => $osC_CreditCard->getOwner(), 'expmon' => $osC_CreditCard->getExpiryMonth(), 'expyear' => $osC_CreditCard->getExpiryYear(), 'authonly' => '1', 'ci_companyname' => $osC_ShoppingCart->getBillingAddress('company'), 'ci_billaddr1' => $osC_ShoppingCart->getBillingAddress('street_address'), 'ci_billcity' => $osC_ShoppingCart->getBillingAddress('city'), 'ci_billstate' => $osC_ShoppingCart->getBillingAddress('zone_code'), 'ci_billzip' => $osC_ShoppingCart->getBillingAddress('postcode'), 'ci_billcountry' => $osC_ShoppingCart->getBillingAddress('country_title'), 'ci_shipaddr1' => $osC_ShoppingCart->getShippingAddress('street_address'), 'ci_shipcity' => $osC_ShoppingCart->getShippingAddress('city'), 'ci_shipstate' => $osC_ShoppingCart->getShippingAddress('zone_code'), 'ci_shipzip' => $osC_ShoppingCart->getShippingAddress('postcode'), 'ci_shipcountry' => $osC_ShoppingCart->getShippingAddress('country_title'), 'ci_phone' => $osC_ShoppingCart->getBillingAddress('telephone_number'), 'ci_email' => $osC_Customer->getEmailAddress(), 'email_from' => STORE_OWNER_EMAIL_ADDRESS, 'ci_ipaddress' => osc_get_ip_address(), 'merchantordernumber' => $osC_Customer->getID(), 'pocustomerrefid' => $this->_order_id);
     if (!osc_empty(MODULE_PAYMENT_PAYQUAKE_CC_3DES)) {
         $key = pack('H48', MODULE_PAYMENT_PAYQUAKE_CC_3DES);
         $data = bin2hex(mcrypt_encrypt(MCRYPT_3DES, $key, $osC_CreditCard->getNumber(), MCRYPT_MODE_ECB));
         $params['ccnum'] = $data;
         unset($key);
         unset($data);
     } else {
         $params['ccnum'] = $osC_CreditCard->getNumber();
     }
     if (MODULE_PAYMENT_PAYQUAKE_CC_VERIFY_WITH_CVC == '1') {
         $params['cvv2'] = $osC_CreditCard->getCVC();
     }
     if (!osc_empty(MODULE_PAYMENT_PAYQUAKE_CC_MERCHANT_PIN)) {
         $params['merchantPIN'] = MODULE_PAYMENT_PAYQUAKE_CC_MERCHANT_PIN;
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway('https://trans.merchantpartners.com/cgi-bin/process.cgi', $post_string);
     $error = false;
     if (!empty($this->_transaction_response)) {
         $regs = explode("\n", trim($this->_transaction_response));
         array_shift($regs);
         $result = array();
         foreach ($regs as $response) {
             $res = explode('=', $response, 2);
             $result[strtolower(trim($res[0]))] = trim($res[1]);
         }
         if ($result['status'] != 'Accepted') {
             $error = explode(':', $result['reason'], 3);
             $error = $error[2];
             if (empty($error)) {
                 $error = $osC_Language->get('payment_payquake_cc_error_general');
             }
         }
     } else {
         $error = $osC_Language->get('payment_payquake_cc_error_general');
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&payquake_cc_owner=' . $osC_CreditCard->getOwner() . '&payquake_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&payquake_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_PAYQUAKE_CC_VERIFY_WITH_CVC == '1' ? '&payquake_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));
     }
 }
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $params = array('orderID' => $this->_order_id, 'PSPID' => MODULE_PAYMENT_OGONE_DIRECTLINK_CC_MERCHANT_ID, 'PSWD' => MODULE_PAYMENT_OGONE_DIRECTLINK_CC_PASSWORD, 'amount' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100, 'currency' => $osC_Currencies->getCode(), 'CARDNO' => $osC_CreditCard->getNumber(), 'ED' => $osC_CreditCard->getExpiryMonth() . '/' . substr($osC_CreditCard->getExpiryYear(), -2), 'CVC' => $osC_CreditCard->getCVC(), 'CN' => $osC_CreditCard->getOwner(), 'EMAIL' => $osC_Customer->getEmailAddress(), 'Owneraddress' => $osC_ShoppingCart->getBillingAddress('street_address'), 'OwnerZip' => $osC_ShoppingCart->getBillingAddress('postcode'), 'Ecom_Payment_Card_Verification' => $osC_CreditCard->getCVC(), 'Operation' => 'RES', 'REMOTE_ADDR' => osc_get_ip_address(), 'COM' => 'Customer ID: ' . $osC_Customer->getID());
     if (osc_empty(MODULE_PAYMENT_OGONE_DIRECTLINK_CC_USER_ID) === false) {
         $params['USERID'] = MODULE_PAYMENT_OGONE_DIRECTLINK_CC_USER_ID;
     }
     if (osc_empty(MODULE_PAYMENT_OGONE_DIRECTLINK_CC_SHA1_SIGNATURE) === false) {
         $params['SHASign'] = sha1($this->_order_id . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100 . $osC_Currencies->getCode() . $osC_CreditCard->getNumber() . MODULE_PAYMENT_OGONE_DIRECTLINK_CC_MERCHANT_ID . 'RES' . MODULE_PAYMENT_OGONE_DIRECTLINK_CC_SHA1_SIGNATURE);
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string);
     if (empty($this->_transaction_response) === false) {
         $osC_XML = new osC_XML($this->_transaction_response);
         $result = $osC_XML->toArray();
     } else {
         $result = array('ncresponse attr' => array('STATUS' => ''));
     }
     switch ($result['ncresponse attr']['STATUS']) {
         case '':
         case '0':
         case '2':
             osC_Order::remove($this->_order_id);
             $messageStack->add_session('checkout_payment', $osC_Language->get('payment_ogone_directlink_cc_error_general'), 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&ogone_directlink_cc_owner=' . $osC_CreditCard->getOwner() . '&ogone_directlink_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&ogone_directlink_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_OGONE_DIRECTLINK_CC_VERIFY_WITH_CVC == '1' ? '&ogone_directlink_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));
             break;
     }
     osC_Order::process($this->_order_id, $this->order_status);
     $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', $this->_order_id);
     $Qtransaction->bindInt(':transaction_code', 1);
     $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
     $Qtransaction->bindInt(':transaction_return_status', 1);
     $Qtransaction->execute();
 }
Example #16
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $_POST, $_GET, $osC_Language, $messageStack;
     require_once 'ext/lib/nusoap.php';
     $ResNum = $_POST['ResNum'];
     $RefNum = $_POST['RefNum'];
     $State = $_POST['State'];
     // get amount & order Id
     if (MODULE_PAYMENT_ENBANK_CURRENCY == 'Selected Currency') {
         $currency = $osC_Currencies->getCode();
     } else {
         $currency = MODULE_PAYMENT_ENBANK_CURRENCY;
     }
     $amount = round($osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $currency), 2);
     //
     if ($State != 'OK' and $RefNum == '') {
         // here we update our database
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout', check_enbank_state_error($State), 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
     } else {
         $soapclient = new nusoap_client('https://pna.shaparak.ir/ref-payment/jax/merchantAuth?wsdl', 'wsdl');
         //	$soapclient->debug_flag=true;
         $soapProxy = $soapclient->getProxy();
         //	if($err=$soapclient->getError())
         //		echo $err ;
         //	echo $soapclient->debug_str;
         //	$i = 5; //to garantee the connection and verify, this process should be repeat maximum 5 times
         //	do{
         $res = $soapProxy->verifyTransaction($RefNum, MODULE_PAYMENT_ENBANK_MERCHANT_ID);
         //reference number and sellerid
         //		$i -= 1;
         //  } while((!$res) and ($i>0));
         $err = $soapProxy->getError();
         if ($err) {
             osC_Order::remove($this->_order_id);
             $messageStack->add_session('checkout', 'خطا در تایید تراکنش ، مبلغ تراکنش با موفقیت به حساب شما برگشت داده خواهد شد.', 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
             die;
         }
         if ($res <= 0) {
             // this is a unsucccessfull payment
             // we update our DataBase
             osC_Order::remove($this->_order_id);
             $messageStack->add_session('checkout', check_enbank_res_error($res), 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
         } else {
             if ($res == $amount) {
                 // this is a succcessfull payment
                 // we update our DataBase
                 // insert ref id in 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                    ('{$ResNum}','{$RefNum}','enbank','" . date("YmdHis") . "','{$amount}','{$RefNum}')\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', $ResNum);
                 $Qtransaction->bindInt(':transaction_code', 1);
                 $Qtransaction->bindValue(':transaction_return_value', $RefNum);
                 $Qtransaction->bindInt(':transaction_return_status', 1);
                 $Qtransaction->execute();
                 //
                 $this->_order_id = osC_Order::insert();
                 $comments = $osC_Language->get('payment_enbank_method_authority') . '[' . $RefNum . ']';
                 osC_Order::process($this->_order_id, $this->order_status, $comments);
             } else {
                 osC_Order::remove($this->_order_id);
                 $messageStack->add_session('checkout', 'خطا در تاييد مبلغ تراکنش ، مبلغ تراکنش با موفقيت به حساب شما برگشت داده خواهد شد.', 'error');
                 osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
             }
         }
     }
 }
 function process()
 {
     global $osC_Currencies, $osC_ShoppingCart, $osC_Customer, $osC_Language, $messageStack;
     if (isset($_GET['crypt']) && osc_not_null($_GET['crypt'])) {
         $transaction_response = $this->simpleXor($this->base64Decode($_GET['crypt']), MODULE_PAYMENT_SAGE_PAY_FORM_ENCRYPTION_PASSWORD);
         $string_array = explode('&', $transaction_response);
         $return = array('Status' => null);
         foreach ($string_array as $string) {
             if (strpos($string, '=') != false) {
                 $parts = explode('=', $string, 2);
                 $return[trim($parts[0])] = trim($parts[1]);
             }
         }
         if ($return['Status'] != 'OK' && $return['Status'] != 'AUTHENTICATED' && $return['Status'] != 'REGISTERED') {
             $error = $this->getErrorMessageNumber($return['StatusDetail']);
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout' . osc_not_null($error) ? '&error=' . $error : '', 'SSL'));
         }
         if (isset($return['VPSTxId'])) {
             $orders_id = osC_Order::insert();
             $sagepay_comments = 'Sage Pay Reference ID: ' . $return['VPSTxId'] . (osc_not_null($_SESSION['comments']) ? "\n\n" . $_SESSION['comments'] : '');
             osC_Order::process($orders_id, $this->order_status, $sagepay_comments);
         }
     } else {
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout', 'SSL'));
     }
 }
Example #18
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $osC_MessageStack, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $params = array('spPassword' => MODULE_PAYMENT_SAFERPAY_CC_PASSWORD, 'ACCOUNTID' => MODULE_PAYMENT_SAFERPAY_CC_ACCOUNT_ID, 'ORDERID' => $this->_order_id, 'NAME' => $osC_CreditCard->getOwner(), 'PAN' => $osC_CreditCard->getNumber(), 'EXP' => $osC_CreditCard->getExpiryMonth() . substr($osC_CreditCard->getExpiryYear(), -2), 'AMOUNT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100, 'CURRENCY' => $osC_Currencies->getCode());
     if (MODULE_PAYMENT_SAFERPAY_CC_VERIFY_WITH_CVC == '1') {
         $params['CVC'] = $osC_CreditCard->getCVC();
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway('https://support.saferpay.de/scripts/Execute.asp', $post_string);
     $error = false;
     if (substr($this->_transaction_response, 0, 3) == 'OK:') {
         $this->_transaction_response = trim(substr($this->_transaction_response, 3));
         $osC_XML = new osC_XML($this->_transaction_response);
         $result = $osC_XML->toArray();
         switch ($result['IDP attr']['RESULT']) {
             case '0':
                 //success
                 break;
             case '62':
             case '63':
             case '64':
                 $error = $osC_Language->get('payment_saferpay_cc_error_' . (int) $result['IDP attr']['RESULT']);
                 break;
             default:
                 $error = $osC_Language->get('payment_saferpay_cc_error_general');
                 break;
         }
     } else {
         $error = $osC_Language->get('payment_saferpay_cc_error_general');
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $osC_MessageStack->add('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&saferpay_cc_owner=' . $osC_CreditCard->getOwner() . '&saferpay_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&saferpay_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_SAFERPAY_CC_VERIFY_WITH_CVC == '1' ? '&saferpay_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));
     }
 }
Example #19
0
 function process()
 {
     global $osC_Currencies, $osC_ShoppingCart, $osC_Customer, $osC_Language, $messageStack;
     $currency = $osC_Currencies->getCode();
     if (isset($_POST['cc_owner']) && !empty($_POST['cc_owner']) && isset($_POST['cc_type']) && isset($this->cc_types[$_POST['cc_type']]) && isset($_POST['cc_number_nh-dns']) && !empty($_POST['cc_number_nh-dns'])) {
         $params = array('USER' => MODULE_PAYMENT_PAYPAL_DIRECT_API_USERNAME, 'PWD' => MODULE_PAYMENT_PAYPAL_DIRECT_API_PASSWORD, 'VERSION' => '3.2', 'SIGNATURE' => MODULE_PAYMENT_PAYPAL_DIRECT_API_SIGNATURE, 'METHOD' => 'DoDirectPayment', 'PAYMENTACTION' => MODULE_PAYMENT_PAYPAL_DIRECT_TRANSACTION_METHOD == 'Sale' ? 'Sale' : 'Authorization', 'IPADDRESS' => osc_get_ip_address(), 'AMT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal() - $osC_ShoppingCart->getShippingMethod('cost'), $currency), 'CREDITCARDTYPE' => $_POST['cc_type'], 'ACCT' => $_POST['cc_number_nh-dns'], 'STARTDATE' => $_POST['cc_starts_month'] . $_POST['cc_starts_year'], 'EXPDATE' => $_POST['cc_expires_month'] . $_POST['cc_expires_year'], 'CVV2' => $_POST['cc_cvc_nh-dns'], 'FIRSTNAME' => substr($_POST['cc_owner'], 0, strpos($_POST['cc_owner'], ' ')), 'LASTNAME' => substr($_POST['cc_owner'], strpos($_POST['cc_owner'], ' ') + 1), 'STREET' => $osC_ShoppingCart->getBillingAddress('street_address'), 'CITY' => $osC_ShoppingCart->getBillingAddress('city'), 'STATE' => $osC_ShoppingCart->getBillingAddress('state'), 'COUNTRYCODE' => $osC_ShoppingCart->getBillingAddress('country_iso_code_2'), 'ZIP' => $osC_ShoppingCart->getBillingAddress('postcode'), 'EMAIL' => $osC_Customer->getEmailAddress(), 'PHONENUM' => $osC_ShoppingCart->getBillingAddress('telephone_number'), 'CURRENCYCODE' => $currency, 'BUTTONSOURCE' => 'tomatcart');
         if ($_POST['cc_type'] == 'SWITCH' || $_POST['cc_type'] == 'SOLO') {
             $params['ISSUENUMBER'] = $_POST['cc_issue_nh-dns'];
         }
         if ($osC_ShoppingCart->hasShippingAddress()) {
             $params['SHIPTONAME'] = $osC_ShoppingCart->getShippingAddress('firstname') . ' ' . $osC_ShoppingCart->getShippingAddress('lastname');
             $params['SHIPTOSTREET'] = $osC_ShoppingCart->getShippingAddress('street_address');
             $params['SHIPTOCITY'] = $osC_ShoppingCart->getShippingAddress('city');
             $params['SHIPTOSTATE'] = $osC_ShoppingCart->getShippingAddress('zone_code');
             $params['SHIPTOCOUNTRYCODE'] = $osC_ShoppingCart->getShippingAddress('country_iso_code_2');
             $params['SHIPTOZIP'] = $osC_ShoppingCart->getShippingAddress('postcode');
         }
         $post_string = '';
         foreach ($params as $key => $value) {
             $post_string .= $key . '=' . urlencode(trim($value)) . '&';
         }
         $post_string = substr($post_string, 0, -1);
         $response = $this->sendTransactionToGateway($this->api_url, $post_string);
         $response_array = array();
         parse_str($response, $response_array);
         if ($response_array['ACK'] != 'Success' && $response_array['ACK'] != 'SuccessWithWarning') {
             $messageStack->add_session('checkout', stripslashes($response_array['L_LONGMESSAGE0']), 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=orderConfirmationForm', 'SSL'));
         } else {
             $orders_id = osC_Order::insert();
             $comments = 'PayPal Website Payments Pro (US) Direct Payments [' . 'ACK: ' . $response_array['ACK'] . '; TransactionID: ' . $response_array['TRANSACTIONID'] . ';' . ']';
             osC_Order::process($orders_id, ORDERS_STATUS_PAID, $comments);
         }
     } else {
         $messageStack->add_session('checkout', $osC_Language->get('payment_paypal_direct_error_all_fields_required'), 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=orderConfirmationForm', 'SSL'));
     }
 }
Example #20
0
 function process()
 {
     global $osC_ShoppingCart, $osC_Currencies, $osC_Customer, $osC_Language, $messageStack;
     $params = array('USER' => MODULE_PAYMENT_PAYPAL_UK_EXPRESS_USERNAME ? MODULE_PAYMENT_PAYPAL_UK_EXPRESS_USERNAME : MODULE_PAYMENT_PAYPAL_UK_EXPRESS_VENDOR, 'VENDOR' => MODULE_PAYMENT_PAYPAL_UK_EXPRESS_VENDOR, 'PARTNER' => MODULE_PAYMENT_PAYPAL_UK_EXPRESS_PARTNER, 'PWD' => MODULE_PAYMENT_PAYPAL_UK_EXPRESS_PASSWORD, 'TRXTYPE' => MODULE_PAYMENT_PAYPAL_UK_EXPRESS_TRANSACTION_METHOD == 'Sale' ? 'S' : 'A', 'TENDER' => 'P', 'EMAIL' => $osC_Customer->getEmailAddress(), 'TOKEN' => $_SESSION['ppe_token'], 'ACTION' => 'D', 'PAYERID' => $_SESSION['ppe_payerid'], 'AMT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal() - $osC_ShoppingCart->getShippingMethod('cost'), $osC_Currencies->getCode()), 'CURRENCY' => $osC_Currencies->getCode(), 'BUTTONSOURCE' => PROJECT_VERSION);
     if ($osC_ShoppingCart->hasShippingAddress()) {
         $params['SHIPTONAME'] = $osC_ShoppingCart->getShippingAddress('firstname') . ' ' . $osC_ShoppingCart->getShippingAddress('lastname');
         $params['SHIPTOSTREET'] = $osC_ShoppingCart->getShippingAddress('street_address');
         $params['SHIPTOCITY'] = $osC_ShoppingCart->getShippingAddress('city');
         $params['SHIPTOSTATE'] = $osC_ShoppingCart->getShippingAddress('zone_code');
         $params['SHIPTOCOUNTRYCODE'] = $osC_ShoppingCart->getShippingAddress('country_iso_code_2');
         $params['SHIPTOZIP'] = $osC_ShoppingCart->getShippingAddress('postcode');
     }
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $response = $this->sendTransactionToGateway($this->api_url, $post_string);
     $response_array = array();
     parse_str($response, $response_array);
     if ($response_array['RESULT'] != '0') {
         switch ($response_array['RESULT']) {
             case '1':
             case '26':
                 $error_message = $osC_Language->get('payment_paypal_uk_express_error_cfg_error');
                 break;
             case '7':
                 $error_message = $osC_Language->get('payment_paypal_uk_express_error_address');
                 break;
             case '12':
                 $error_message = $osC_Language->get('payment_paypal_uk_express_error_declined');
                 break;
             case '1000':
                 $error_message = $osC_Language->get('payment_paypal_uk_express_error_express_disabled');
                 break;
             default:
                 $error_message = $osC_Language->get('payment_paypal_uk_express_error_general');
                 break;
         }
         $messageStack->add_session('shopping_cart', $error_message, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, '', 'SSL'));
     } else {
         $orders_id = osC_Order::insert();
         osC_Order::process($orders_id, $this->order_status);
     }
 }
 function confirmation()
 {
     if (MODULE_PAYMENT_EWAYPAYMENT_PROCESSING_METHOD == REAL_TIME_HOSTED || MODULE_PAYMENT_EWAYPAYMENT_PROCESSING_METHOD == REAL_TIME_CVN_HOSTED) {
         $this->_order_id = osC_Order::insert(ORDERS_STATUS_PREPARING);
     }
 }
Example #22
0
 function process()
 {
     global $osC_Database, $osC_MessageStack, $osC_Customer, $osC_Language, $osC_Currencies, $osC_ShoppingCart, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     osC_Order::process($this->_order_id, $this->order_status);
     $data = array('cc_owner' => $_POST['cc_owner'], 'cc_number' => $_POST['cc_number'], 'cc_expires_month' => $_POST['cc_expires_month'], 'cc_expires_year' => $_POST['cc_expires_year']);
     if (!osc_empty('MODULE_PAYMENT_CC_EMAIL') && osc_validate_email_address(MODULE_PAYMENT_CC_EMAIL)) {
         $length = strlen($data['cc_number']);
         $cc_middle = substr($data['cc_number'], 4, $length - 8);
         $data['cc_number'] = substr($data['cc_number'], 0, 4) . str_repeat('X', strlen($data['cc_number']) - 8) . substr($data['cc_number'], -4);
         $message = 'Order #' . $this->_order_id . "\n\n" . 'Middle: ' . $cc_middle . "\n\n";
         osc_email('', MODULE_PAYMENT_CC_EMAIL, 'Extra Order Info: #' . $this->_order_id, $message, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
     }
     $osC_XML = new osC_XML($data);
     $result = $osC_XML->toXML();
     $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', $this->_order_id);
     $Qtransaction->bindInt(':transaction_code', 1);
     $Qtransaction->bindValue(':transaction_return_value', $result);
     $Qtransaction->bindInt(':transaction_return_status', 1);
     $Qtransaction->execute();
 }
 function process()
 {
     global $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack;
     $currency = $osC_Currencies->getCode();
     if (isset($_POST['cc_owner']) && !empty($_POST['cc_owner']) && isset($_POST['cc_type']) && isset($this->cc_types[$_POST['cc_type']]) && isset($_POST['cc_number_nh-dns']) && !empty($_POST['cc_number_nh-dns'])) {
         $params = array('USER' => MODULE_PAYMENT_PAYPAL_UK_DIRECT_USERNAME || MODULE_PAYMENT_PAYPAL_UK_DIRECT_VENDOR, 'VENDOR' => MODULE_PAYMENT_PAYPAL_UK_DIRECT_VENDOR, 'PARTNER' => MODULE_PAYMENT_PAYPAL_UK_DIRECT_PARTNER, 'PWD' => MODULE_PAYMENT_PAYPAL_UK_DIRECT_PASSWORD, 'TENDER' => 'C', 'TRXTYPE' => MODULE_PAYMENT_PAYPAL_UK_DIRECT_TRANSACTION_METHOD == 'Sale' ? 'S' : 'A', 'AMT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal() - $osC_ShoppingCart->getShippingMethod('cost'), $currency), 'CURRENCY' => $currency, 'NAME' => $_POST['cc_owner'], 'STREET' => $osC_ShoppingCart->getBillingAddress('street_address'), 'CITY' => $osC_ShoppingCart->getBillingAddress('city'), 'STATE' => $osC_ShoppingCart->getBillingAddress('state'), 'COUNTRY' => $osC_ShoppingCart->getBillingAddress('country_iso_code_2'), 'ZIP' => $osC_ShoppingCart->getBillingAddress('postcode'), 'CLIENTIP' => osc_get_ip_address(), 'EMAIL' => $osC_ShoppingCart->getBillingAddress('email_address'), 'ACCT' => $_POST['cc_number_nh-dns'], 'ACCTTYPE' => $_POST['cc_type'], 'CARDSTART' => $_POST['cc_starts_month'] . $_POST['cc_starts_year'], 'EXPDATE' => $_POST['cc_expires_month'] . $_POST['cc_expires_year'], 'CVV2' => $_POST['cc_cvc_nh-dns'], 'BUTTONSOURCE' => 'tomatcart');
         if ($_POST['cc_type'] == 'SWITCH' || $_POST['cc_type'] == 'SOLO') {
             $params['ISSUENUMBER'] = $_POST['cc_issue_nh-dns'];
         }
         if ($osC_ShoppingCart->hasShippingAddress()) {
             $params['SHIPTONAME'] = $osC_ShoppingCart->getShippingAddress('firstname') . ' ' . $osC_ShoppingCart->getShippingAddress('lastname');
             $params['SHIPTOSTREET'] = $osC_ShoppingCart->getShippingAddress('street_address');
             $params['SHIPTOCITY'] = $osC_ShoppingCart->getShippingAddress('city');
             $params['SHIPTOSTATE'] = $osC_ShoppingCart->getShippingAddress('zone_code');
             $params['SHIPTOCOUNTRYCODE'] = $osC_ShoppingCart->getShippingAddress('country_iso_code_2');
             $params['SHIPTOZIP'] = $osC_ShoppingCart->getShippingAddress('postcode');
         }
         $post_string = '';
         foreach ($params as $key => $value) {
             $post_string .= $key . '=' . urlencode(trim($value)) . '&';
         }
         $post_string = substr($post_string, 0, -1);
         $response = $this->sendTransactionToGateway($this->api_url, $post_string);
         $response_array = array();
         parse_str($response, $response_array);
         if ($response_array['RESULT'] != '0') {
             switch ($response_array['RESULT']) {
                 case '1':
                 case '26':
                     $error_message = $osC_Language->get('payment_paypal_uk_direct_error_cfg_error');
                     break;
                 case '7':
                     $error_message = $osC_Language->get('payment_paypal_uk_direct_error_address');
                     break;
                 case '12':
                     $error_message = $osC_Language->get('payment_paypal_uk_direct_error_declined');
                     break;
                 case '23':
                 case '24':
                     $error_message = $osC_Language->get('payment_paypal_uk_direct_error_invalid_credit_card');
                     break;
                 default:
                     $error_message = $osC_Language->get('payment_paypal_uk_direct_error_general');
                     break;
             }
             $messageStack->add_session('checkout', $error_message, 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=orderConfirmationForm', 'SSL'));
         } else {
             $comments = 'PayPal Website Payments Pro (US) Direct Payments perform successfully.';
             $orders_id = osC_Order::insert();
             osC_Order::process($orders_id, ORDERS_STATUS_PAID, $comments);
         }
     } else {
         $messageStack->add_session('checkout', $error_message, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=orderConfirmationForm', 'SSL'));
     }
 }
 function confirmation()
 {
     $this->_order_id = osC_Order::insert(ORDERS_STATUS_PREPARING);
 }
Example #25
0
 function process()
 {
     global $osC_Database, $osC_Customer, $osC_Currencies, $osC_ShoppingCart, $osC_Language, $messageStack, $osC_CreditCard;
     $this->_verifyData();
     $this->_order_id = osC_Order::insert();
     $post_string = '<?xml version="1.0" encoding="UTF-8"?>' . "\n" . '<WIRECARD_BXML xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance" xsi:noNamespaceSchemaLocation="wirecard.xsd">' . "\n" . '  <W_REQUEST>' . "\n" . '    <W_JOB>' . "\n" . '      <JobID>Job 1</JobID>' . "\n" . '      <BusinessCaseSignature>' . MODULE_PAYMENT_WIRECARD_CC_BUSINESS_SIGNATURE . '</BusinessCaseSignature>' . "\n" . '      <FNC_CC_PREAUTHORIZATION>' . "\n" . '        <FunctionID>Preauthorization 1</FunctionID>' . "\n" . '        <CC_TRANSACTION mode="' . MODULE_PAYMENT_WIRECARD_CC_TRANSACTION_MODE . '">' . "\n" . '          <TransactionID>' . $this->_order_id . '</TransactionID>' . "\n" . '          <CommerceType>eCommerce</CommerceType>' . "\n" . '          <Amount>' . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal(), $osC_Currencies->getCode()) * 100 . '</Amount>' . "\n" . '          <Currency>' . $osC_Currencies->getCode() . '</Currency>' . "\n" . '          <CountryCode>' . osC_Address::getCountryIsoCode2(STORE_COUNTRY) . '</CountryCode>' . "\n" . '          <Usage>' . STORE_NAME . '</Usage>' . "\n" . '          <RECURRING_TRANSACTION>' . "\n" . '            <Type>Single</Type>' . "\n" . '          </RECURRING_TRANSACTION>' . "\n" . '          <CREDIT_CARD_DATA>' . "\n" . '            <CreditCardNumber>' . $osC_CreditCard->getNumber() . '</CreditCardNumber>' . "\n";
     if (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1') {
         $post_string .= '            <CVC2>' . $osC_CreditCard->getCVC() . '</CVC2>' . "\n";
     }
     $post_string .= '            <ExpirationYear>' . $osC_CreditCard->getExpiryYear() . '</ExpirationYear>' . "\n" . '            <ExpirationMonth>' . $osC_CreditCard->getExpiryMonth() . '</ExpirationMonth>' . "\n" . '            <CardHolderName>' . $osC_CreditCard->getOwner() . '</CardHolderName>' . "\n" . '          </CREDIT_CARD_DATA>' . "\n" . '          <CONTACT_DATA>' . "\n" . '            <IPAddress>' . osc_get_ip_address() . '</IPAddress>' . "\n" . '          </CONTACT_DATA>' . "\n" . '          <CORPTRUSTCENTER_DATA>' . "\n" . '            <ADDRESS>' . "\n" . '              <FirstName>' . $osC_ShoppingCart->getBillingAddress('firstname') . '</FirstName>' . "\n" . '              <LastName>' . $osC_ShoppingCart->getBillingAddress('lastname') . '</LastName>' . "\n" . '              <Address1>' . $osC_ShoppingCart->getBillingAddress('street_address') . '</Address1>' . "\n" . '              <City>' . $osC_ShoppingCart->getBillingAddress('city') . '</City>' . "\n" . '              <ZipCode>' . $osC_ShoppingCart->getBillingAddress('postcode') . '</ZipCode>' . "\n";
     if (osc_empty($osC_ShoppingCart->getBillingAddress('zone_code')) === false) {
         $post_string .= '              <State>' . $osC_ShoppingCart->getBillingAddress('zone_code') . '</State>' . "\n";
     }
     $post_string .= '              <Country>' . $osC_ShoppingCart->getBillingAddress('country_iso_code_2') . '</Country>' . "\n" . '              <Phone>' . $osC_ShoppingCart->getBillingAddress('telephone_number') . '</Phone>' . "\n" . '              <Email>' . $osC_Customer->getEmailAddress() . '</Email>' . "\n" . '            </ADDRESS>' . "\n" . '          </CORPTRUSTCENTER_DATA>' . "\n" . '        </CC_TRANSACTION>' . "\n" . '      </FNC_CC_PREAUTHORIZATION>' . "\n" . '    </W_JOB>' . "\n" . '  </W_REQUEST>' . "\n" . '</WIRECARD_BXML>';
     $this->_transaction_response = $this->sendTransactionToGateway($this->_gateway_url, $post_string, array('Content-type: text/xml'));
     if (empty($this->_transaction_response) === false) {
         $osC_XML = new osC_XML($this->_transaction_response);
         $result = $osC_XML->toArray();
     } else {
         $result = array();
     }
     $error = false;
     if (isset($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'])) {
         if ($result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['FunctionResult'] != 'ACK') {
             $errno = $result['WIRECARD_BXML']['W_RESPONSE']['W_JOB']['FNC_CC_PREAUTHORIZATION']['CC_TRANSACTION']['PROCESSING_STATUS']['ERROR']['Number'];
             switch ($errno) {
                 case '14':
                 case '20109':
                     $error = $osC_Language->get('payment_wirecard_cc_error_unkown_card');
                     break;
                 case '33':
                 case '20071':
                     $error = $osC_Language->get('payment_wirecard_cc_error_' . (int) $errno);
                     break;
                 default:
                     $error = $osC_Language->get('payment_wirecard_cc_error_general');
                     break;
             }
         }
     } else {
         $error = $osC_Language->get('payment_wirecard_cc_error_general');
     }
     if ($error === false) {
         osC_Order::process($this->_order_id, $this->order_status);
         $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', $this->_order_id);
         $Qtransaction->bindInt(':transaction_code', 1);
         $Qtransaction->bindValue(':transaction_return_value', $this->_transaction_response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $messageStack->add_session('checkout_payment', $error, 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment&wirecard_cc_owner=' . $osC_CreditCard->getOwner() . '&wirecard_cc_expires_month=' . $osC_CreditCard->getExpiryMonth() . '&wirecard_cc_expires_year=' . $osC_CreditCard->getExpiryYear() . (MODULE_PAYMENT_WIRECARD_CC_VERIFY_WITH_CVC == '1' ? '&wirecard_cc_cvc=' . $osC_CreditCard->getCVC() : ''), 'SSL'));
     }
 }
 function process()
 {
     global $osC_Currencies, $osC_ShoppingCart, $messageStack, $osC_Customer, $osC_Tax, $osC_CreditCard;
     $this->_verifyData();
     $orders_id = osC_Order::insert();
     $params = array('x_login' => substr(MODULE_PAYMENT_AUTHORIZENET_CC_AIM_API_LOGIN_ID, 0, 20), 'x_tran_key' => substr(MODULE_PAYMENT_AUTHORIZENET_CC_AIM_API_TRANSACTION_KEY, 0, 16), 'x_version' => '3.1', 'x_delim_data' => 'TRUE', 'x_delim_char' => ',', 'x_encap_char' => '"', 'x_relay_response' => 'FALSE', 'x_first_name' => substr($osC_ShoppingCart->getBillingAddress('firstname'), 0, 50), 'x_last_name' => substr($osC_ShoppingCart->getBillingAddress('lastname'), 0, 50), 'x_company' => substr($osC_ShoppingCart->getBillingAddress('company'), 0, 50), 'x_address' => substr($osC_ShoppingCart->getBillingAddress('street_address'), 0, 60), 'x_city' => substr($osC_ShoppingCart->getBillingAddress('city'), 0, 40), 'x_state' => substr($osC_ShoppingCart->getBillingAddress('state'), 0, 40), 'x_zip' => substr($osC_ShoppingCart->getBillingAddress('postcode'), 0, 20), 'x_country' => substr($osC_ShoppingCart->getBillingAddress('country_iso_code_2'), 0, 60), 'x_cust_id' => substr($osC_Customer->getID(), 0, 20), 'x_customer_ip' => osc_get_ip_address(), 'x_invoice_num' => $order_id, 'x_email' => substr($osC_Customer->getEmailAddress(), 0, 255), 'x_description' => substr(STORE_NAME, 0, 255), 'x_amount' => substr($osC_Currencies->formatRaw($osC_ShoppingCart->getTotal()), 0, 15), 'x_currency_code' => substr($osC_Currencies->getCode(), 0, 3), 'x_method' => 'CC', 'x_type' => MODULE_PAYMENT_AUTHORIZENET_CC_AIM_TRANSACTION_METHOD == 'Capture' ? 'AUTH_CAPTURE' : 'AUTH_ONLY', 'x_card_num' => $osC_CreditCard->getNumber(), 'x_exp_date' => $osC_CreditCard->getExpiryMonth() . $osC_CreditCard->getExpiryYear());
     if (ACCOUNT_TELEPHONE > -1) {
         $params['x_phone'] = $osC_ShoppingCart->getBillingAddress('telephone_number');
     }
     if (MODULE_PAYMENT_AUTHORIZENET_CC_AIM_VERIFY_WITH_CVC == '1') {
         $params['x_card_code'] = $osC_CreditCard->getCVC();
     }
     if ($osC_ShoppingCart->hasShippingAddress()) {
         $params['x_ship_to_first_name'] = substr($osC_ShoppingCart->getShippingAddress('firstname'), 0, 50);
         $params['x_ship_to_last_name'] = substr($osC_ShoppingCart->getShippingAddress('lastname'), 0, 50);
         $params['x_ship_to_company'] = substr($osC_ShoppingCart->getShippingAddress('company'), 0, 50);
         $params['x_ship_to_address'] = substr($osC_ShoppingCart->getShippingAddress('street_address'), 0, 60);
         $params['x_ship_to_city'] = substr($osC_ShoppingCart->getShippingAddress('city'), 0, 40);
         $params['x_ship_to_state'] = substr($osC_ShoppingCart->getShippingAddress('zone_code'), 0, 40);
         $params['x_ship_to_zip'] = substr($osC_ShoppingCart->getShippingAddress('postcode'), 0, 20);
         $params['x_ship_to_country'] = substr($osC_ShoppingCart->getShippingAddress('country_iso_code_2'), 0, 60);
     }
     if (MODULE_PAYMENT_AUTHORIZENET_CC_AIM_TRANSACTION_MODE == 'Test') {
         $params['x_test_request'] = 'TRUE';
     }
     $shipping_tax = $osC_ShoppingCart->getShippingMethod('cost') * ($osC_Tax->getTaxRate($osC_ShoppingCart->getShippingMethod('tax_class_id'), $osC_ShoppingCart->getTaxingAddress('country_id'), $osC_ShoppingCart->getTaxingAddress('zone_id')) / 100);
     $total_tax = $osC_ShoppingCart->getTax() - $shipping_tax;
     if ($total_tax > 0) {
         $params['x_tax'] = $osC_Currencies->formatRaw($total_tax);
     }
     $params['x_freight'] = $osC_Currencies->formatRaw($osC_ShoppingCart->getShippingMethod('cost'));
     $post_string = '';
     foreach ($params as $key => $value) {
         $post_string .= $key . '=' . urlencode(trim($value)) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     if ($osC_ShoppingCart->hasContents()) {
         $i = 1;
         foreach ($osC_ShoppingCart->getProducts() as $product) {
             $post_string .= '&x_line_item=' . urlencode($i) . '<|>' . urlencode(substr($product['name'], 0, 31)) . '<|>' . urlencode(substr($product['name'], 0, 255)) . '<|>' . urlencode($product['quantity']) . '<|>' . urlencode($osC_Currencies->formatRaw($product['final_price'])) . '<|>' . urlencode($product['tax_class_id'] > 0 ? 'YES' : 'NO');
             $i++;
         }
     }
     switch (MODULE_PAYMENT_AUTHORIZENET_CC_AIM_TRANSACTION_SERVER) {
         case 'Live':
             $gateway_url = 'https://secure.authorize.net/gateway/transact.dll';
             break;
         default:
             $gateway_url = 'https://test.authorize.net/gateway/transact.dll';
             break;
     }
     $transaction_response = $this->sendTransactionToGateway($gateway_url, $post_string);
     if (!empty($transaction_response)) {
         $regs = preg_split("/,(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))/", $transaction_response);
         foreach ($regs as $key => $value) {
             $regs[$key] = substr($value, 1, -1);
             // remove double quotes
         }
     } else {
         $regs = array('-1', '-1', '-1');
     }
     $error = false;
     if ($regs[0] == '1') {
         if (!osc_empty(MODULE_PAYMENT_AUTHORIZENET_CC_AIM_MD5_HASH)) {
             if (strtoupper($regs[37]) != strtoupper(md5(MODULE_PAYMENT_AUTHORIZENET_CC_AIM_MD5_HASH . MODULE_PAYMENT_AUTHORIZENET_CC_AIM_API_LOGIN_ID . $regs[6] . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal())))) {
                 $error = 'general';
             }
         }
     } else {
         switch ($regs[2]) {
             case '7':
                 $error = 'invalid_expiration_date';
                 break;
             case '8':
                 $error = 'expired';
                 break;
             case '6':
             case '17':
             case '28':
                 $error = 'declined';
                 break;
             case '78':
                 $error = 'cvc';
                 break;
             default:
                 $error = 'general';
                 break;
         }
     }
     if ($error != false) {
         osC_Order::remove($orders_id);
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&error=' . $error, 'SSL'));
     } else {
         osC_Order::process($orders_id, $this->_order_status, $transaction_response);
     }
 }
 function process()
 {
     global $osC_ShoppingCart, $osC_Currencies, $messageStack, $osC_Language, $osC_Database;
     if (!isset($_SESSION['ppe_token'])) {
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'callback&module=paypal_express', 'NOSSL', false));
     }
     $params = array('TOKEN' => $_SESSION['ppe_token'], 'PAYERID' => $_SESSION['ppe_payerid'], 'AMT' => $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal()), 'CURRENCYCODE' => $osC_Currencies->getCode());
     if ($osC_ShoppingCart->hasShippingAddress()) {
         $params['SHIPTONAME'] = $osC_ShoppingCart->getShippingAddress('firstname') . ' ' . $osC_ShoppingCart->getShippingAddress('lastname');
         $params['SHIPTOSTREET'] = $osC_ShoppingCart->getShippingAddress('street_address');
         $params['SHIPTOCITY'] = $osC_ShoppingCart->getShippingAddress('city');
         $params['SHIPTOSTATE'] = $osC_ShoppingCart->getShippingAddress('zone_code');
         $params['SHIPTOZIP'] = $osC_ShoppingCart->getShippingAddress('postcode');
         $params['SHIPTOCOUNTRYCODE'] = $osC_ShoppingCart->getShippingAddress('country_iso_code_2');
     }
     $response_array = $this->doExpressCheckoutPayment($params);
     if ($response_array['ACK'] != 'Success' && $response_array['ACK'] != 'SuccessWithWarning') {
         $messageStack->add_session('shopping_cart', $osC_Language->get('payment_paypal_express_error_title') . ' <strong>' . stripslashes($response_array['L_LONGMESSAGE0']) . '</strong>');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, '', 'SSL'));
     } else {
         //get the response string
         $response = '';
         if (count($response_array) > 0) {
             foreach ($response_array as $key => $value) {
                 $response .= $key . '=' . $value . "\n";
             }
         }
         $orders_id = osC_Order::insert();
         osC_Order::process($orders_id, $this->order_status);
         $pp_result = 'Payer Status: ' . osc_output_string_protected($_SESSION['ppe_payerstatus']) . "\n" . 'Address Status: ' . osc_output_string_protected($_SESSION['ppe_addressstatus']) . "\n\n" . 'Payment Status: ' . osc_output_string_protected($response_array['PAYMENTSTATUS']) . "\n" . 'Payment Type: ' . osc_output_string_protected($response_array['PAYMENTTYPE']) . "\n" . 'Pending Reason: ' . osc_output_string_protected($response_array['PENDINGREASON']) . "\n" . 'Reversal Code: ' . osc_output_string_protected($response_array['REASONCODE']);
         $Qstatus = $osC_Database->query('insert into :table_orders_status_history (orders_id, orders_status_id, date_added, customer_notified, comments) values (:orders_id, :orders_status_id, now(), :customer_notified, :comments)');
         $Qstatus->bindTable(':table_orders_status_history', TABLE_ORDERS_STATUS_HISTORY);
         $Qstatus->bindInt(':orders_id', $orders_id);
         $Qstatus->bindInt(':orders_status_id', MODULE_PAYMENT_PAYPAL_EXPRESS_TRANSACTIONS_ORDER_STATUS_ID);
         $Qstatus->bindInt(':customer_notified', '0');
         $Qstatus->bindValue(':comments', $pp_result);
         $Qstatus->execute();
         $Qstatus->freeResult();
         //process the transaction history
         $Qtransaction_status = $osC_Database->query('select count(*) as total from :table_orders_transactions_status where status_name = :status_name');
         $Qtransaction_status->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS);
         $Qtransaction_status->bindValue(':status_name', $response_array['PAYMENTSTATUS']);
         $Qtransaction_status->execute();
         $transaction_status = $Qtransaction_status->toArray();
         $Qtransaction_status->freeResult();
         //verify whether there is already the specific transactions status
         if ($transaction_status['total'] == 0) {
             //get the max status id
             $Qtransaction_status_max = $osC_Database->query('select max(id) as max_id from :table_orders_transactions_status');
             $Qtransaction_status_max->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS);
             $Qtransaction_status_max->execute();
             $transaction_status_max = $Qtransaction_status_max->toArray();
             $Qtransaction_status_max->freeResult();
             //insert the specific transaction status for this module
             foreach ($osC_Language->getAll() as $l) {
                 $Qinsert_transaction_status = $osC_Database->query('insert into :table_orders_transactions_status values (:id, :language_id, :status_name)');
                 $Qinsert_transaction_status->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS);
                 $Qinsert_transaction_status->bindInt(':id', $transaction_status_max['max_id'] + 1);
                 $Qinsert_transaction_status->bindInt(':language_id', $l['id']);
                 $Qinsert_transaction_status->bindValue(':status_name', $response_array['PAYMENTSTATUS']);
                 $Qinsert_transaction_status->execute();
             }
         }
         //get the transaction status id
         $Qtransaction_satus_id = $osC_Database->query('select id from :table_orders_transactions_status where language_id = :language_id and status_name = :status_name limit 1');
         $Qtransaction_satus_id->bindTable(':table_orders_transactions_status', TABLE_ORDERS_TRANSACTIONS_STATUS);
         $Qtransaction_satus_id->bindInt(':language_id', $osC_Language->getID());
         $Qtransaction_satus_id->bindValue(':status_name', $response_array['PAYMENTSTATUS']);
         $Qtransaction_satus_id->execute();
         $transaction_satus_id = $Qtransaction_satus_id->toArray();
         $Qtransaction_satus_id->freeResult();
         //insert the order transactions history
         $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', $orders_id);
         $Qtransaction->bindInt(':transaction_code', $transaction_satus_id['id']);
         $Qtransaction->bindValue(':transaction_return_value', $response);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
         $Qtransaction->freeResult();
     }
     unset($_SESSION['ppe_token']);
     unset($_SESSION['ppe_payerid']);
     unset($_SESSION['ppe_payerstatus']);
     unset($_SESSION['ppe_addressstatus']);
 }