示例#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'));
 }
 function callback()
 {
     global $osC_Database, $osC_Currencies;
     $result = "VERIFIED";
     $check = true;
     // Validate request
     if (!isset($_POST['order_id']) || !is_numeric($_POST['order_id']) || $_POST['order_id'] <= 0) {
         $check = false;
         $result = 'bad order id';
     }
     if ($check) {
         if (!isset($_POST['invoice_amount'])) {
             $check = false;
             $result = 'bad amount';
         }
     }
     if ($check) {
         if (!isset($_POST['invoice_currency'])) {
             $check = false;
             $result = 'bad currency';
         }
     }
     if ($check) {
         if (!isset($_POST['checksum']) || !isset($_POST['invoice_reference']) || !isset($_POST['invoice_created_at']) || !isset($_POST['invoice_status'])) {
             $check = false;
             $result = 'missing vatiables';
         }
     }
     if ($check) {
         //calc checksum
         $sum = http_build_query(array('order_id' => $_POST['order_id'], 'invoice_reference' => $_POST['invoice_reference'], 'invoice_amount' => $_POST['invoice_amount'], 'invoice_currency' => $_POST['invoice_currency'], 'invoice_created_at' => $_POST['invoice_created_at'], 'invoice_status' => $_POST['invoice_status'], 'secret_key' => MODULE_PAYMENT_INPAY_SECRET_KEY), '', "&");
         $md5v = md5($sum);
         if ($md5v != $_POST['checksum']) {
             $check = false;
             $result = 'bad checksum';
         }
     }
     if ($check) {
         if (!osC_Order::exists($_POST['order_id'])) {
             $check = false;
             $result = 'order not found';
         }
     }
     if ($check) {
         $Qcheck = $osC_Database->query('select orders_status, currency, currency_value from :table_orders where orders_id = :orders_id');
         $Qcheck->bindTable(':table_orders', TABLE_ORDERS);
         $Qcheck->bindInt(':orders_id', $_POST['invoice']);
         $Qcheck->bindInt(':customers_id', $_POST['custom']);
         $Qcheck->execute();
         if ($Qcheck->numberOfRows() > 0) {
             $order = $Qcheck->toArray();
             $Qtotal = $osC_Database->query('select value from :table_orders_total where orders_id = :orders_id and class = "total" limit 1');
             $Qtotal->bindTable(':table_orders_total', TABLE_ORDERS_TOTAL);
             $Qtotal->bindInt(':orders_id', $_POST['invoice']);
             $Qtotal->execute();
             $total = $Qtotal->toArray();
             if (number_format($_POST['invoice_amount'], $osC_Currencies->getDecimalPlaces($order['currency'])) != number_format($total['value'] * $order['currency_value'], $osC_Currencies->getDecimalPlaces($order['currency']))) {
                 $check = false;
                 $result = 'Inpay transaction value (' . osc_output_string_protected($_POST['invoice_amount']) . ') does not match order value (' . number_format($total['value'] * $order['currency_value'], $osC_Currencies->get_decimal_places($order['currency'])) . ')';
             }
         }
     }
     if ($check) {
         // check status
         $delivered_status = 7;
         if ($order['orders_status'] == MODULE_PAYMENT_INPAY_COMP_ORDER_STATUS_ID || $order['orders_status'] == $delivered_status) {
             $check = false;
             $result = 'Status already in level' . $order['orders_status'];
         }
     }
     if ($check) {
         $invoice_status = $this->get_invoice_status($_POST);
         $check = false;
         if (($invoice_status == "pending" || $invoice_status == "created") && ($_POST["invoice_status"] == "pending" || $POST["invoice_status"] == "created")) {
             $check = true;
         } else {
             if ($invoice_status == "approved" && $_POST["invoice_status"] == "approved") {
                 $check = true;
             } else {
                 if ($invoice_status == "sum_too_low" && $_POST["invoice_status"] == "sum_too_low") {
                     $check = true;
                 }
             }
         }
         if (!$check) {
             $result = 'Bad invoice status:' . $invoice_status;
         }
     }
     // Validate request end
     if ($result == 'VERIFIED') {
         $invoice_approved = false;
         $invoice_created = false;
         $invoice_partial = false;
         switch ($_POST['invoice_status']) {
             case 'created':
             case 'pending':
                 $msg = "customer has been asked to pay " . $_POST['invoice_amount'] . ' ' . $_POST['invoice_currency'] . ' with reference: ' . $_POST['invoice_reference'] . ' via his online bank';
                 $order_status_id = MODULE_PAYMENT_INPAY_CREATE_ORDER_STATUS_ID;
                 $invoice_created = true;
                 break;
             case "approved":
                 $msg = "Inpay has confirmed that the payment of " . $_POST['invoice_amount'] . " " . $_POST['invoice_currency'] . " has been received";
                 $order_status_id = MODULE_PAYMENT_INPAY_COMP_ORDER_STATUS_ID;
                 $invoice_approved = true;
                 break;
             case "sum_too_low":
                 $msg = "Partial payment received by inpay. Reference: " . $_POST['invoice_reference'];
                 $order_status_id = MODULE_PAYMENT_INPAY_SUM_TOO_LOW_ORDER_STATUS_ID;
                 $invoice_partial = true;
                 break;
         }
         $comments = 'Inpay ' . ucfirst($_POST['invoice_status']) . '[' . $msg . ']';
         if ($invoice_approved || $invoice_created || $invoice_partial) {
             osC_Order::process($_POST['order_id'], $order_status_id, $comments);
             osC_Order::insertOrderStatusHistory($_POST['order_id'], $order_status_id, $comments);
         } else {
             if (defined('MODULE_PAYMENT_INPAY_DEBUG_EMAIL')) {
                 $email_body = 'INPAY_DEBUG_POST_DATA:' . "\n\n";
                 reset($_POST);
                 foreach ($_POST as $key => $value) {
                     $email_body .= $key . '=' . $value . "\n";
                 }
                 $email_body .= "\n" . 'INPAY_DEBUG_GET_DATA:' . "\n\n";
                 reset($_GET);
                 foreach ($_GET as $key => $value) {
                     $email_body .= $key . '=' . $value . "\n";
                 }
                 osc_email('', MODULE_PAYMENT_INPAY_DEBUG_EMAIL, 'Inpay Invalid Process', $email_body, STORE_OWNER, STORE_OWNER_EMAIL_ADDRESS);
             }
             if (isset($_POST['order_id']) && is_numeric($_POST['order_id']) && $_POST['order_id'] > 0) {
                 $Qcheck = $osC_Database->query('select orders_id from :table_orders where orders_id=:orders_id');
                 $Qcheck->bindTable(':table_orders', TABLE_ORDERS);
                 $Qcheck->bindInt('orders_id', $_POST['order_id']);
                 $Qcheck->execute();
                 if ($Qcheck->numberOfRows() > 0) {
                     $comments = 'Inpay Invalid [' . $result . ']';
                     osC_Order::insertOrderStatusHistory($_POST['order_id'], $order_status_id, $comments);
                 }
             }
         }
     }
 }
示例#3
0
 function process()
 {
     $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'));
     }
 }
示例#5
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'));
     }
 }
示例#6
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'));
     }
 }
示例#7
0
 function callback()
 {
     global $osC_Database;
     if (isset($_POST['invoice']) && is_numeric($_POST['invoice']) && isset($_POST['receiver_email']) && $_POST['receiver_email'] == MODULE_PAYMENT_PAYPAL_IPN_ID && isset($_POST['verify_sign']) && empty($_POST['verify_sign']) === false && isset($_POST['txn_id']) && empty($_POST['txn_id']) === false) {
         if (!osc_empty(MODULE_PAYMENT_PAYPAL_IPN_SECRET_KEY)) {
             if (isset($_GET['secret']) && $_GET['secret'] == MODULE_PAYMENT_PAYPAL_IPN_SECRET_KEY) {
                 $pass = true;
             } else {
                 $pass = false;
             }
         } else {
             $pass = true;
         }
         if ($pass === true && osC_Order::getStatusID($_POST['invoice']) === ORDERS_STATUS_PREPARING) {
             $post_string = 'cmd=_notify-validate&';
             foreach ($_POST as $key => $value) {
                 $post_string .= $key . '=' . urlencode($value) . '&';
             }
             $post_string = substr($post_string, 0, -1);
             $this->_transaction_response = $this->sendTransactionToGateway($this->form_action_url, $post_string);
             $post_array = array('root' => $_POST);
             $post_array['root']['transaction_response'] = trim($this->_transaction_response);
             $osC_XML = new osC_XML($post_array);
             if (strtoupper(trim($this->_transaction_response)) == 'VERIFIED') {
                 osC_Order::process($_POST['invoice'], $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', $_POST['invoice']);
             $Qtransaction->bindInt(':transaction_code', 1);
             $Qtransaction->bindValue(':transaction_return_value', $osC_XML->toXML());
             $Qtransaction->bindInt(':transaction_return_status', strtoupper(trim($this->_transaction_response)) == 'VERIFIED' ? 1 : 0);
             $Qtransaction->execute();
         }
     }
 }
示例#8
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, $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'));
     }
 }
示例#10
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));
     }
 }
 function callback()
 {
     $md5sign = strtoupper(md5($_POST['merchant_id'] . $_POST['transaction_id'] . strtoupper(md5(MODULE_PAYMENT_MONEYBOOKERS_SECRET_WORD)) . $_POST['mb_amount'] . $_POST['mb_currency'] . $_POST['status']));
     $comment = 'Moneybookers Verified: ' . $_POST['status'];
     if ($md5sign == $_POST['md5sig'] && intval($_POST['status']) == 2) {
         osC_Order::process($_POST['transaction_id'], $this->order_status, $comment);
     }
 }
 function process()
 {
     if (is_numeric($_GET['referenceId'])) {
         osC_Order::process($_GET['referenceId'], ORDERS_STATUS_PENDING);
     }
 }
 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']);
 }
 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'));
     }
 }
示例#15
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);
     }
 }
示例#16
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'));
     }
 }
 function process()
 {
     global $osC_Database, $osC_Currencies, $osC_ShoppingCart, $messageStack, $osC_Language;
     if (MODULE_PAYMENT_PM2CHECKOUT_DEMO_MODE == 1) {
         $order_number = 1;
     } else {
         $order_number = $_GET['order_number'];
     }
     $check_hash = strtoupper(md5(MODULE_PAYMENT_PM2CHECKOUT_SECRET_WORD . MODULE_PAYMENT_PM2CHECKOUT_SELLER_ID . $order_number . $osC_Currencies->formatRaw($osC_ShoppingCart->getTotal())));
     if ($check_hash == $_GET['key']) {
         if (isset($_GET['cart_order_id']) && is_numeric($_GET['cart_order_id']) && $_GET['cart_order_id'] > 0) {
             $Qcheck = $osC_Database->query('select orders_status, currency, currency_value from :table_orders where orders_id = :orders_id and customers_id = :customers_id');
             $Qcheck->bindTable(':table_orders', TABLE_ORDERS);
             $Qcheck->bindInt(':orders_id', $_GET['cart_order_id']);
             $Qcheck->bindInt(':customers_id', $_GET['customer_id']);
             $Qcheck->execute();
             if ($Qcheck->numberOfRows() > 0) {
                 $Qtotal = $osC_Database->query('select value from :table_orders_total where orders_id = :orders_id and class = "total" limit 1');
                 $Qtotal->bindTable(':table_orders_total', TABLE_ORDERS_TOTAL);
                 $Qtotal->bindInt(':orders_id', $_GET['cart_order_id']);
                 $Qtotal->execute();
                 $comments = '2Checkout Order Successful [' . $_GET['order_number'] . '; ' . $osC_Currencies->format($_GET['total']) . ')]';
                 osC_Order::process($_GET['cart_order_id'], $this->order_status, $comments);
             }
         }
     } else {
         $comments = "MD5 HASH MISMATCH, PLEASE CONTACT THE SELLER";
         $messageStack->add_session('checkout', $comments);
         osC_Order::insertOrderStatusHistory($_GET['cart_order_id'], ORDERS_STATUS_PENDING, $comments);
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL'));
     }
 }
示例#18
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));
             }
         }
     }
 }
示例#19
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_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();
 }
示例#21
0
 function callback()
 {
     global $osC_Database, $osC_ShoppingCart;
     if (empty($_GET['order_id']) || empty($_GET['order_code'])) {
         // Invalid request
     } else {
         $sOrderId = $_GET['order_id'];
         $sOrderCode = $_GET['order_code'];
         $sql = "SELECT `transaction_status`, `transaction_url` FROM `" . DB_TABLE_PREFIX . "transactions` WHERE (`order_id` = '" . addslashes($sOrderId) . "') AND (`order_code` = '" . addslashes($sOrderCode) . "') ORDER BY `id` DESC LIMIT 1;";
         $oQuery = $osC_Database->query($sql);
         $oRecordset = $oQuery->execute();
         if (mysql_num_rows($oRecordset)) {
             $oRecord = mysql_fetch_assoc($oRecordset);
             $iOrderId = (int) $sOrderId;
             $sTransactionStatus = $oRecord['transaction_status'];
             $sTransactionUrl = $oRecord['transaction_url'];
             if (osC_Order::exists($iOrderId)) {
                 if (strcmp($sTransactionStatus, 'SUCCESS') === 0) {
                     // Update order status
                     osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_SUCCESS_ORDER_STATUS_ID);
                     $osC_ShoppingCart->reset(true);
                     // Redirect
                     osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'success', 'SSL'));
                 } elseif (strcmp($sTransactionStatus, 'PENDING') === 0) {
                     // Update order status
                     osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_PENDING_ORDER_STATUS_ID);
                     $osC_ShoppingCart->reset(true);
                     // Redirect
                     osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'success', 'SSL'));
                 } elseif (strcmp($sTransactionStatus, 'OPEN') === 0) {
                     // Update order status
                     osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_OPEN_ORDER_STATUS_ID);
                     if ($sTransactionUrl) {
                         // Redirect
                         osc_redirect($sTransactionUrl);
                     }
                 } elseif (strcmp($sTransactionStatus, 'CANCELLED') === 0) {
                     if (MODULE_PAYMENT_IDEAL_REMOVE_ORDER_ON_CANCELLED) {
                         // Remove Order
                         osC_Order::remove($iOrderId);
                     } else {
                         // Update order status
                         osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_CANCELLED_ORDER_STATUS_ID);
                     }
                     // Redirect
                     osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
                 } elseif (strcmp($sTransactionStatus, 'EXPIRED') === 0) {
                     // Update order status
                     osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_EXPIRED_ORDER_STATUS_ID);
                 } elseif (strcmp($sTransactionStatus, 'FAILURE') === 0) {
                     // Update order status
                     osC_Order::process($iOrderId, MODULE_PAYMENT_IDEAL_FAILURE_ORDER_STATUS_ID);
                 }
                 // Redirect
                 osc_redirect(HTTPS_SERVER . DIR_WS_HTTPS_CATALOG . '/ext/payments/ideal/setup.php?order_id=' . $sOrderId . '&order_code=' . $sOrderCode);
             }
         }
     }
     echo 'Cannot verify your order and/or payment. Please contact the webmaster.';
     exit;
 }
示例#22
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));
     }
 }
示例#23
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);
     }
 }
示例#24
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'));
     }
 }
示例#25
0
文件: cc.php 项目: kdexter/oscommerce
 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();
 }
示例#26
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'));
     }
 }
 function callback()
 {
     global $osC_Database, $osC_Currencies;
     foreach ($_POST as $key => $value) {
         $post_string .= $key . '=' . urlencode($value) . '&';
     }
     $post_string = substr($post_string, 0, -1);
     $this->_transaction_response = $this->sendTransactionToGateway($this->apc_url, $post_string);
     if (strstr($this->_transaction_response, 'AUTHORISED')) {
         if (!isset($_POST["status"]) || strtolower($_POST["status"]) == "live") {
             $comments = 'Nochex payment of ' . sprintf("%01.2f", $_POST["amount"]) . ' received at ' . $_POST['transaction_date'] . ' with transaction ID:' . $_POST['transaction_id'];
         } else {
             $comments = 'TEST PAYMENT of ' . sprintf("%01.2f", $_POST["amount"]) . ' received at ' . $_POST['transaction_date'] . ' with transaction ID:' . $_POST['transaction_id'];
         }
         osC_Order::process($_POST['order_id'], $this->order_status, $comments);
     } else {
         if (!isset($_POST["status"]) || strtolower($_POST["status"]) == "live") {
             $comments = 'Nochex payment of ' . sprintf("%01.2f", $_POST["amount"]) . ' received at ' . $_POST['transaction_date'] . ' with transaction ID:' . $_POST['transaction_id'] . ' is invalid';
         } else {
             $comments = 'TEST PAYMENT of ' . sprintf("%01.2f", $_POST["amount"]) . ' received at ' . $_POST['transaction_date'] . ' with transaction ID:' . $_POST['transaction_id'] . ' is invalid';
         }
         osC_Order::insertOrderStatusHistory($_POST['order_id'], $this->order_status, $comments);
     }
 }
示例#28
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'));
     }
 }
示例#29
0
 function process()
 {
     global $osC_Database, $osC_Language, $osC_MessageStack;
     $this->_verifyData();
     $params = array('DATA' => $_GET['DATA'], 'SIGNATURE' => $_GET['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('http://support.saferpay.de/scripts/VerifyPayConfirm.asp', $post_string);
     $error = false;
     if (substr($this->_transaction_response, 0, 3) != 'OK:') {
         $error = true;
     }
     /* HPDL; performs capture
           if (substr($this->_transaction_response, 0, 3) == 'OK:') {
             $result = array();
             parse_str(substr($this->_transaction_response, 3), $result);
     
             $params = array('ACCOUNTID' => MODULE_PAYMENT_SAFERPAY_CC_ACCOUNT_ID,
                             'ID' => $result['ID'],
                             'TOKEN' => $result['TOKEN']);
     
             $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/PayComplete.asp', $post_string);
     
             if ($this->_transaction_response != 'OK') {
               $error = true;
             }
           } else {
             $error = true;
           }
     */
     if ($error === false) {
         $osC_XML = new osC_XML($_GET['DATA']);
         $result = $osC_XML->toArray();
         $this->_order_id = $result['IDP attr']['ORDERID'];
         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', $_GET['DATA']);
         $Qtransaction->bindInt(':transaction_return_status', 1);
         $Qtransaction->execute();
     } else {
         osC_Order::remove($this->_order_id);
         $osC_MessageStack->add('checkout_payment', $osC_Language->get('payment_saferpay_vt_error_general'), 'error');
         osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'payment', 'SSL'));
     }
 }
 function callback()
 {
     global $osC_ShoppingCart;
     //process return results from eway
     if ($_GET["return"] == "yes") {
         if ($_POST["ewayTrxnStatus"] == "False") {
             $messageStack->add_session('checkout', $_POST[eWAYresponseText], 'error');
             osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'checkout&view=paymentInformationForm', 'SSL', null, null, true));
         } else {
             if ($_POST["ewayTrxnStatus"] == "True") {
                 $comment = 'eWay ' . MODULE_PAYMENT_EWAYPAYMENT_PROCESSING_METHOD . ' Success[eWAYresponseText' . $_POST['eWAYresponseText'] . ']';
                 osC_Order::process($_GET['orders_id'], $this->order_status, $comment);
                 $osC_ShoppingCart->reset(true);
                 // unregister session variables used during checkout
                 unset($_SESSION['comments']);
                 osc_redirect(osc_href_link(FILENAME_CHECKOUT, 'success', 'SSL'));
             }
         }
     }
 }