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')); }
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')); }
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; }
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')); } }
function confirmation() { $this->_order_id = osC_Order::insert(); }
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); } }
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)); } }
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')); } }
function process() { $this->_order_id = osC_Order::insert(); osC_Order::process($this->_order_id, $this->order_status); }
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')); } }
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')); } }
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)); } }
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(); }
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')); } }
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')); } }
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')); } }
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); } }
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); }
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']); }