komondor Posted July 3, 2007 Share Posted July 3, 2007 (edited) I install this Modules ! http://www.oscommerce.com/community/contri...ch,moneybookers when I test it ! en error in it ! Fatal error: Call to a member function on a non-object in /home/name/public_html/checkout_moneybookersipn.php on line 19 checkout_moneybookersipn.php code <?php /* $Id: checkout_moneybookersipn.php Copyright (c) 2007 Datalink UK t/a as Holbi http://www.holbi.co.uk Author: Vladislav B. Malyshev e-mail: [email protected] description: the file for creating the order before go to moneybookers. */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if ($osC_Session->exists('sendto') == false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (tep_not_null(MODULE_PAYMENT_INSTALLED) && ($osC_Session->exists('payment') == false)) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && $osC_Session->exists('cartID') && ($cart->cartID != $osC_Session->value('cartID'))) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($osC_Session->value('payment')); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($osC_Session->value('shipping')); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $order_totals = $order_total_modules->process(); $sql_data_array = array('customers_id' => $osC_Customer->id, 'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'], 'customers_company' => $order->customer['company'], 'customers_street_address' => $order->customer['street_address'], 'customers_suburb' => $order->customer['suburb'], 'customers_city' => $order->customer['city'], 'customers_postcode' => $order->customer['postcode'], 'customers_state' => $order->customer['state'], 'customers_country' => $order->customer['country']['title'], 'customers_telephone' => $order->customer['telephone'], 'customers_email_address' => $order->customer['email_address'], 'customers_address_format_id' => $order->customer['format_id'], 'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'], 'delivery_company' => $order->delivery['company'], 'delivery_street_address' => $order->delivery['street_address'], 'delivery_suburb' => $order->delivery['suburb'], 'delivery_city' => $order->delivery['city'], 'delivery_postcode' => $order->delivery['postcode'], 'delivery_state' => $order->delivery['state'], 'delivery_country' => $order->delivery['country']['title'], 'delivery_address_format_id' => $order->delivery['format_id'], 'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'], 'billing_company' => $order->billing['company'], 'billing_street_address' => $order->billing['street_address'], 'billing_suburb' => $order->billing['suburb'], 'billing_city' => $order->billing['city'], 'billing_postcode' => $order->billing['postcode'], 'billing_state' => $order->billing['state'], 'billing_country' => $order->billing['country']['title'], 'billing_address_format_id' => $order->billing['format_id'], 'payment_method' => $order->info['payment_method'], 'cc_type' => $order->info['cc_type'], 'cc_owner' => $order->info['cc_owner'], 'cc_number' => $order->info['cc_number'], 'cc_expires' => $order->info['cc_expires'], 'date_purchased' => 'now()', 'orders_status' => MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE, 'currency' => $order->info['currency'], 'currency_value' => $order->info['currency_value']); tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) { $sql_data_array = array('orders_id' => $insert_id, 'title' => $order_totals[$i]['title'], 'text' => $order_totals[$i]['text'], 'value' => $order_totals[$i]['value'], 'class' => $order_totals[$i]['code'], 'sort_order' => $order_totals[$i]['sort_order']); tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array); } $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0'; $sql_data_array = array('orders_id' => $insert_id, 'orders_status_id' =>MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE, 'date_added' => 'now()', 'customer_notified' => $customer_notification, 'comments' => $order->info['comments']); tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array); // initialized for the email confirmation $products_ordered = ''; $subtotal = 0; $total_tax = 0; $total_weight = 0; $total_cost = 0; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { // Stock Update - Joao Correia if (STOCK_LIMITED == 'true') { if (DOWNLOAD_ENABLED == 'true') { $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename FROM " . TABLE_PRODUCTS . " p LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa ON p.products_id=pa.products_id LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad ON pa.products_attributes_id=pad.products_attributes_id WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"; // Will work with only one option for downloadable products // otherwise, we have to build the query dynamically with a loop $products_attributes = $order->products[$i]['attributes']; if (is_array($products_attributes)) { $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'"; } $stock_query = tep_db_query($stock_query_raw); } else { $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } if (tep_db_num_rows($stock_query) > 0) { $stock_values = tep_db_fetch_array($stock_query); // do not decrement quantities if products_attributes_filename exists if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) { $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty']; } else { $stock_left = $stock_values['products_quantity']; } tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) { tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } } } // Update products_ordered (for bestsellers list) tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); $sql_data_array = array('orders_id' => $insert_id, 'products_id' => tep_get_prid($order->products[$i]['id']), 'products_model' => $order->products[$i]['model'], 'products_name' => $order->products[$i]['name'], 'products_price' => $order->products[$i]['price'], 'final_price' => $order->products[$i]['final_price'], 'products_tax' => $order->products[$i]['tax'], 'products_quantity' => $order->products[$i]['qty']); tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array); $order_products_id = tep_db_insert_id(); //------insert customer choosen option to order-------- $attributes_exist = '0'; $products_ordered_attributes = ''; if (isset($order->products[$i]['attributes'])) { $attributes_exist = '1'; for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) { if (DOWNLOAD_ENABLED == 'true') { $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad on pa.products_attributes_id=pad.products_attributes_id where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $osC_Session->value('languages_id') . "' and poval.language_id = '" . $osC_Session->value('languages_id') . "'"; $attributes = tep_db_query($attributes_query); } else { $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $osC_Session->value('languages_id') . "' and poval.language_id = '" . $osC_Session->value('languages_id') . "'"); } $attributes_values = tep_db_fetch_array($attributes); $sql_data_array = array('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'products_options' => $attributes_values['products_options_name'], 'products_options_values' => $attributes_values['products_options_values_name'], 'options_values_price' => $attributes_values['options_values_price'], 'price_prefix' => $attributes_values['price_prefix']); tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array); if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) { $sql_data_array = array('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'orders_products_filename' => $attributes_values['products_attributes_filename'], 'download_maxdays' => $attributes_values['products_attributes_maxdays'], 'download_count' => $attributes_values['products_attributes_maxcount']); tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array); } $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name']; } } //------insert customer choosen option eof ---- $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']); $total_tax += tep_calculate_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty']; $total_cost += $order->products[$i]['final_price']; $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n"; } // load the after_process function from the payment modules $payment_modules->after_process(); //for moneybookers if (MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE == 'Selected Language') { $moneybookers_language = 'EN'; } else { $moneybookers_language = MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE; } if (MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY == 'Selected Currency') { $moneybookers_currency = $currency; // echo "hehe1"; } else { // $moneybookers_currency = substr(MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY, 3); $moneybookers_currency = MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY; // echo MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY; // echo "hehe2"; } //echo $moneybookers_currency . "zuzu<br>"; if (!in_array($moneybookers_currency, array('EUR', 'USD', 'GBP', 'HKD', 'SGD', 'JPY', 'CAD', 'AUD', 'CHF', 'DKK', 'SEK', 'NOK', 'ILS', 'MYR', 'NZD', 'TWD', 'THB', 'CZK', 'HUF', 'SKK', 'ISK', 'INR'))) { $moneybookers_currency = 'EUR'; } //echo $moneybookers_currency . "zuzu2<br>"; //die(); $country_id = $order->billing['country']['id']; $country_moneybookers_ipn_query = "select countries_moneybookers from " . TABLE_COUNTRIES . " where countries_id = '" . $country_id . "'"; $country_moneybookers_ipn_res = tep_db_query($country_moneybookers_ipn_query); $country_moneybookers_ipn_data = tep_db_fetch_array($country_moneybookers_ipn_res); $country_moneybookers = $country_moneybookers_ipn_data['countries_moneybookers']; $trx_id = sprintf("%'820d", rand()); $update_order = "update " . TABLE_ORDERS . " set moneybookers_transaction_id = '" . $trx_id . "' where orders_id = '" . $insert_id . "'"; tep_db_query($update_order); $process_button_string = 'pay_to_email=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_ID . '&language=' . $moneybookers_language. '&amount=' . number_format($order->info['total'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount2=' . number_format($order->info['shipping_cost'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount2_description=' . urlencode($order->info['shipping_method']) . '&amount3=' . number_format($order->info['tax'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount3_description=' . urlencode($order->info['tax_groups'][0]) . '¤cy=' . $moneybookers_currency . '&detail1_description=' . STORE_NAME . '&detail1_text=' . urlencode('Order # ' . $insert_id). '&transaction_id=' . $trx_id . '&firstname=' . $order->billing['firstname'] . '&lastname=' . $order->billing['lastname'] . '&address=' . $order->billing['street_address'] . '&postal_code=' . $order->billing['postcode'] . '&city=' . $order->billing['city'] . '&state=' . $order->billing['billing_state'] . '&country=' . $country_moneybookers . '&merchant_fields=' . urlencode('softwareprovider,distributor') . '&softwareprovider=' . 'holbi' . '&distributor=' . 'holbi' . '&pay_from_email=' . $order->customer['email_address'] . '&status_url=' . tep_href_link(FILENAME_MONEYBOOKERS_NOTIFY, '', 'SSL') . '&return_url=' . tep_href_link(FILENAME_CHECKOUT_CHECKOUT_MONEYBOOKERSIPN_AFTER, '', 'NONSSL') . '&cancel_url=' . tep_href_link(FILENAME_CHECKOUT_MONEYBOOKERSIPN_CANCEL, 'order_id=' . $insert_id, 'SSL'); /*tep_draw_hidden_field('pay_from_email', $order->customer['email_address']) .*/ $moneybookersurl = 'https://www.moneybookers.com/app/payment.pl'; if (strlen(MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID) <= '5') {$moneybookersurl = $moneybookersurl . '?rid=3045110';} else {$moneybookersurl = $moneybookersurl . '?rid=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID;} //echo $moneybookersurl . "&" . $process_button_string; tep_redirect($moneybookersurl . "&" . $process_button_string); ?> Edited July 3, 2007 by komondor Quote Link to comment Share on other sites More sharing options...
pas75 Posted July 3, 2007 Share Posted July 3, 2007 just replace the old code in checkout_moneybookersipn.php to this code - <?php /* $Id: checkout_moneybookersipn.php Copyright (c) 2007 Datalink UK t/a as Holbi http://www.holbi.co.uk Author: Vladislav B. Malyshev e-mail: [email protected] description: the file for creating the order before go to moneybookers. */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if (!tep_session_is_registered('customer_id')) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if (!tep_session_is_registered('sendto')) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if ( (tep_not_null(MODULE_PAYMENT_INSTALLED)) && (!tep_session_is_registered('payment')) ) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && tep_session_is_registered('cartID')) { if ($cart->cartID != $cartID) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } } include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($shipping); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $order_totals = $order_total_modules->process(); $sql_data_array = array('customers_id' => $customer_id, 'customers_name' => $order->customer['firstname'] . ' ' . $order->customer['lastname'], 'customers_company' => $order->customer['company'], 'customers_street_address' => $order->customer['street_address'], 'customers_suburb' => $order->customer['suburb'], 'customers_city' => $order->customer['city'], 'customers_postcode' => $order->customer['postcode'], 'customers_state' => $order->customer['state'], 'customers_country' => $order->customer['country']['title'], 'customers_telephone' => $order->customer['telephone'], 'customers_email_address' => $order->customer['email_address'], 'customers_address_format_id' => $order->customer['format_id'], 'delivery_name' => $order->delivery['firstname'] . ' ' . $order->delivery['lastname'], 'delivery_company' => $order->delivery['company'], 'delivery_street_address' => $order->delivery['street_address'], 'delivery_suburb' => $order->delivery['suburb'], 'delivery_city' => $order->delivery['city'], 'delivery_postcode' => $order->delivery['postcode'], 'delivery_state' => $order->delivery['state'], 'delivery_country' => $order->delivery['country']['title'], 'delivery_address_format_id' => $order->delivery['format_id'], 'billing_name' => $order->billing['firstname'] . ' ' . $order->billing['lastname'], 'billing_company' => $order->billing['company'], 'billing_street_address' => $order->billing['street_address'], 'billing_suburb' => $order->billing['suburb'], 'billing_city' => $order->billing['city'], 'billing_postcode' => $order->billing['postcode'], 'billing_state' => $order->billing['state'], 'billing_country' => $order->billing['country']['title'], 'billing_address_format_id' => $order->billing['format_id'], 'payment_method' => $order->info['payment_method'], 'cc_type' => $order->info['cc_type'], 'cc_owner' => $order->info['cc_owner'], 'cc_number' => $order->info['cc_number'], 'cc_expires' => $order->info['cc_expires'], 'date_purchased' => 'now()', 'orders_status' => MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE, 'currency' => $order->info['currency'], 'currency_value' => $order->info['currency_value']); tep_db_perform(TABLE_ORDERS, $sql_data_array); $insert_id = tep_db_insert_id(); for ($i=0, $n=sizeof($order_totals); $i<$n; $i++) { $sql_data_array = array('orders_id' => $insert_id, 'title' => $order_totals[$i]['title'], 'text' => $order_totals[$i]['text'], 'value' => $order_totals[$i]['value'], 'class' => $order_totals[$i]['code'], 'sort_order' => $order_totals[$i]['sort_order']); tep_db_perform(TABLE_ORDERS_TOTAL, $sql_data_array); } $customer_notification = (SEND_EMAILS == 'true') ? '1' : '0'; $sql_data_array = array('orders_id' => $insert_id, 'orders_status_id' =>MODULE_PAYMENT_MONEYBOOKERS_IPN_ORDER_STATUS_ID_BEFORE, 'date_added' => 'now()', 'customer_notified' => $customer_notification, 'comments' => $order->info['comments']); tep_db_perform(TABLE_ORDERS_STATUS_HISTORY, $sql_data_array); // initialized for the email confirmation $products_ordered = ''; $subtotal = 0; $total_tax = 0; $total_weight = 0; $total_cost = 0; for ($i=0, $n=sizeof($order->products); $i<$n; $i++) { // Stock Update - Joao Correia if (STOCK_LIMITED == 'true') { if (DOWNLOAD_ENABLED == 'true') { $stock_query_raw = "SELECT products_quantity, pad.products_attributes_filename FROM " . TABLE_PRODUCTS . " p LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES . " pa ON p.products_id=pa.products_id LEFT JOIN " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad ON pa.products_attributes_id=pad.products_attributes_id WHERE p.products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"; // Will work with only one option for downloadable products // otherwise, we have to build the query dynamically with a loop $products_attributes = $order->products[$i]['attributes']; if (is_array($products_attributes)) { $stock_query_raw .= " AND pa.options_id = '" . $products_attributes[0]['option_id'] . "' AND pa.options_values_id = '" . $products_attributes[0]['value_id'] . "'"; } $stock_query = tep_db_query($stock_query_raw); } else { $stock_query = tep_db_query("select products_quantity from " . TABLE_PRODUCTS . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } if (tep_db_num_rows($stock_query) > 0) { $stock_values = tep_db_fetch_array($stock_query); // do not decrement quantities if products_attributes_filename exists if ((DOWNLOAD_ENABLED != 'true') || (!$stock_values['products_attributes_filename'])) { $stock_left = $stock_values['products_quantity'] - $order->products[$i]['qty']; } else { $stock_left = $stock_values['products_quantity']; } tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = '" . $stock_left . "' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); if ( ($stock_left < 1) && (STOCK_ALLOW_CHECKOUT == 'false') ) { tep_db_query("update " . TABLE_PRODUCTS . " set products_status = '0' where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); } } } // Update products_ordered (for bestsellers list) tep_db_query("update " . TABLE_PRODUCTS . " set products_ordered = products_ordered + " . sprintf('%d', $order->products[$i]['qty']) . " where products_id = '" . tep_get_prid($order->products[$i]['id']) . "'"); $sql_data_array = array('orders_id' => $insert_id, 'products_id' => tep_get_prid($order->products[$i]['id']), 'products_model' => $order->products[$i]['model'], 'products_name' => $order->products[$i]['name'], 'products_price' => $order->products[$i]['price'], 'final_price' => $order->products[$i]['final_price'], 'products_tax' => $order->products[$i]['tax'], 'products_quantity' => $order->products[$i]['qty']); tep_db_perform(TABLE_ORDERS_PRODUCTS, $sql_data_array); $order_products_id = tep_db_insert_id(); //------insert customer choosen option to order-------- $attributes_exist = '0'; $products_ordered_attributes = ''; if (isset($order->products[$i]['attributes'])) { $attributes_exist = '1'; for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) { if (DOWNLOAD_ENABLED == 'true') { $attributes_query = "select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix, pad.products_attributes_maxdays, pad.products_attributes_maxcount , pad.products_attributes_filename from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa left join " . TABLE_PRODUCTS_ATTRIBUTES_DOWNLOAD . " pad on pa.products_attributes_id=pad.products_attributes_id where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'"; $attributes = tep_db_query($attributes_query); } else { $attributes = tep_db_query("select popt.products_options_name, poval.products_options_values_name, pa.options_values_price, pa.price_prefix from " . TABLE_PRODUCTS_OPTIONS . " popt, " . TABLE_PRODUCTS_OPTIONS_VALUES . " poval, " . TABLE_PRODUCTS_ATTRIBUTES . " pa where pa.products_id = '" . $order->products[$i]['id'] . "' and pa.options_id = '" . $order->products[$i]['attributes'][$j]['option_id'] . "' and pa.options_id = popt.products_options_id and pa.options_values_id = '" . $order->products[$i]['attributes'][$j]['value_id'] . "' and pa.options_values_id = poval.products_options_values_id and popt.language_id = '" . $languages_id . "' and poval.language_id = '" . $languages_id . "'"); } $attributes_values = tep_db_fetch_array($attributes); $sql_data_array = array('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'products_options' => $attributes_values['products_options_name'], 'products_options_values' => $attributes_values['products_options_values_name'], 'options_values_price' => $attributes_values['options_values_price'], 'price_prefix' => $attributes_values['price_prefix']); tep_db_perform(TABLE_ORDERS_PRODUCTS_ATTRIBUTES, $sql_data_array); if ((DOWNLOAD_ENABLED == 'true') && isset($attributes_values['products_attributes_filename']) && tep_not_null($attributes_values['products_attributes_filename'])) { $sql_data_array = array('orders_id' => $insert_id, 'orders_products_id' => $order_products_id, 'orders_products_filename' => $attributes_values['products_attributes_filename'], 'download_maxdays' => $attributes_values['products_attributes_maxdays'], 'download_count' => $attributes_values['products_attributes_maxcount']); tep_db_perform(TABLE_ORDERS_PRODUCTS_DOWNLOAD, $sql_data_array); } $products_ordered_attributes .= "\n\t" . $attributes_values['products_options_name'] . ' ' . $attributes_values['products_options_values_name']; } } //------insert customer choosen option eof ---- $total_weight += ($order->products[$i]['qty'] * $order->products[$i]['weight']); $total_tax += tep_calculate_tax($order->products[$i]['final_price'], $order->products[$i]['tax']) * $order->products[$i]['qty']; $total_cost += $order->products[$i]['final_price']; $products_ordered .= $order->products[$i]['qty'] . ' x ' . $order->products[$i]['name'] . ' (' . $order->products[$i]['model'] . ') = ' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . $products_ordered_attributes . "\n"; } // load the after_process function from the payment modules $payment_modules->after_process(); //for moneybookers if (MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE == 'Selected Language') { $moneybookers_language = 'EN'; } else { $moneybookers_language = MODULE_PAYMENT_MONEYBOOKERS_IPN_LANGUAGE; } if (MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY == 'Selected Currency') { $moneybookers_currency = $currency; // echo "hehe1"; } else { // $moneybookers_currency = substr(MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY, 3); $moneybookers_currency = MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY; // echo MODULE_PAYMENT_MONEYBOOKERS_IPN_CURRENCY; // echo "hehe2"; } //echo $moneybookers_currency . "zuzu<br>"; if (!in_array($moneybookers_currency, array('EUR', 'USD', 'GBP', 'HKD', 'SGD', 'JPY', 'CAD', 'AUD', 'CHF', 'DKK', 'SEK', 'NOK', 'ILS', 'MYR', 'NZD', 'TWD', 'THB', 'CZK', 'HUF', 'SKK', 'ISK', 'INR'))) { $moneybookers_currency = 'EUR'; } //echo $moneybookers_currency . "zuzu2<br>"; //die(); $country_id = $order->billing['country']['id']; $country_moneybookers_ipn_query = "select countries_moneybookers from " . TABLE_COUNTRIES . " where countries_id = '" . $country_id . "'"; $country_moneybookers_ipn_res = tep_db_query($country_moneybookers_ipn_query); $country_moneybookers_ipn_data = tep_db_fetch_array($country_moneybookers_ipn_res); $country_moneybookers = $country_moneybookers_ipn_data['countries_moneybookers']; $trx_id = sprintf("%'820d", rand()); $update_order = "update " . TABLE_ORDERS . " set moneybookers_transaction_id = '" . $trx_id . "' where orders_id = '" . $insert_id . "'"; tep_db_query($update_order); $process_button_string = 'pay_to_email=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_ID . '&language=' . $moneybookers_language. '&amount=' . number_format($order->info['total'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount2=' . number_format($order->info['shipping_cost'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount2_description=' . urlencode($order->info['shipping_method']) . '&amount3=' . number_format($order->info['tax'] * $currencies->get_value($moneybookers_currency), $currencies->get_decimal_places($moneybookers_currency)) . '&amount3_description=' . urlencode($order->info['tax_groups'][0]) . '¤cy=' . $moneybookers_currency . '&detail1_description=' . STORE_NAME . '&detail1_text=' . urlencode('Order # ' . $insert_id). '&transaction_id=' . $trx_id . '&firstname=' . $order->billing['firstname'] . '&lastname=' . $order->billing['lastname'] . '&address=' . $order->billing['street_address'] . '&postal_code=' . $order->billing['postcode'] . '&city=' . $order->billing['city'] . '&state=' . $order->billing['billing_state'] . '&country=' . $country_moneybookers . '&merchant_fields=' . urlencode('softwareprovider,distributor') . '&softwareprovider=' . 'holbi' . '&distributor=' . 'holbi' . '&pay_from_email=' . $order->customer['email_address'] . '&status_url=' . tep_href_link(FILENAME_MONEYBOOKERS_NOTIFY, '', 'SSL') . '&return_url=' . tep_href_link(FILENAME_CHECKOUT_CHECKOUT_MONEYBOOKERSIPN_AFTER, '', 'NONSSL') . '&cancel_url=' . tep_href_link(FILENAME_CHECKOUT_MONEYBOOKERSIPN_CANCEL, 'order_id=' . $insert_id, 'SSL'); /*tep_draw_hidden_field('pay_from_email', $order->customer['email_address']) .*/ $moneybookersurl = 'https://www.moneybookers.com/app/payment.pl'; if (strlen(MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID) <= '5') {$moneybookersurl = $moneybookersurl . '?rid=3045110';} else {$moneybookersurl = $moneybookersurl . '?rid=' . MODULE_PAYMENT_MONEYBOOKERS_IPN_REFID;} //echo $moneybookersurl . "&" . $process_button_string; tep_redirect($moneybookersurl . "&" . $process_button_string); ?> Hopefully this will resolve your issue but i checked this contributions and same error is in other 3 files. So after fixing this file, you have to fix other 3 files in same way. Quote Link to comment Share on other sites More sharing options...
komondor Posted July 4, 2007 Author Share Posted July 4, 2007 WOW! thanks very much ! But error still in other two files (1)checkout_moneybookersipn_after.php <?php /* $Id: moneybookers_ipn.php Copyright (c) 2007 Datalink UK t/a as Holbi http://www.holbi.co.uk Author: Vladislav B. Malyshev e-mail: [email protected] description: the suport file. When we returns from moneybookers ok we remove cart and other data in this file */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if ($osC_Session->exists('sendto') == false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (tep_not_null(MODULE_PAYMENT_INSTALLED) && ($osC_Session->exists('payment') == false)) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && $osC_Session->exists('cartID') && ($cart->cartID != $osC_Session->value('cartID'))) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($osC_Session->value('payment')); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($osC_Session->value('shipping')); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $cart->reset(true); // unregister session variables used during checkout $osC_Session->remove('sendto'); $osC_Session->remove('billto'); $osC_Session->remove('shipping'); $osC_Session->remove('payment'); $osC_Session->remove('comments'); tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'NONSSL')); ?> (2)checkout_moneybookersipn_cancel.php <?php /* $Id: checkout_moneybookersipn_cancel.php Copyright (c) 2007 Datalink UK t/a as Holbi http://www.holbi.co.uk Author: Vladislav B. Malyshev e-mail: [email protected] description: support file. it remove's order in case of cancel on moneybookers */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if ($osC_Session->exists('sendto') == false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (tep_not_null(MODULE_PAYMENT_INSTALLED) && ($osC_Session->exists('payment') == false)) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && $osC_Session->exists('cartID') && ($cart->cartID != $osC_Session->value('cartID'))) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($osC_Session->value('payment')); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($osC_Session->value('shipping')); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; if (phpversion() <= '4.0.6') { $_POST = $HTTP_POST_VARS; } if(!tep_not_null($_GET['order_id'])) { remove_order($_GET['order_id']); } tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'NONSSL')); function remove_order($order_id) { $order_query = tep_db_query("select products_id, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); while ($order = tep_db_fetch_array($order_query)) { tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = products_quantity + " . $order['products_quantity'] . ", products_ordered = products_ordered - " . $order['products_quantity'] . " where products_id = '" . (int)$order['products_id'] . "'"); } tep_db_query("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "'"); } ?> Quote Link to comment Share on other sites More sharing options...
IRINeL Posted July 6, 2007 Share Posted July 6, 2007 checkout_moneybookersipn_cancel.php <?php /* $Id: checkout_moneybookersipn_cancel.php Copyright © 2007 Datalink UK t/a as Holbi [url="http://www.holbi.co.uk"]http://www.holbi.co.uk[/url] Author: Vladislav B. Malyshev e-mail: [email protected] description: support file. it remove's order in case of cancel on moneybookers */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if (!tep_session_is_registered('customer_id')) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if (!tep_session_is_registered('sendto')) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (tep_not_null(MODULE_PAYMENT_INSTALLED) && (!tep_session_is_registered('payment'))) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && tep_session_is_registered('cartID')) { if ($cart->cartID != $cartID) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } } include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($shipping); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; if (phpversion() <= '4.0.6') { $_POST = $HTTP_POST_VARS; } if(!tep_not_null($_GET['order_id'])) { remove_order($_GET['order_id']); } tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'NONSSL')); function remove_order($order_id) { $order_query = tep_db_query("select products_id, products_quantity from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); while ($order = tep_db_fetch_array($order_query)) { tep_db_query("update " . TABLE_PRODUCTS . " set products_quantity = products_quantity + " . $order['products_quantity'] . ", products_ordered = products_ordered - " . $order['products_quantity'] . " where products_id = '" . (int)$order['products_id'] . "'"); } tep_db_query("delete from " . TABLE_ORDERS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_PRODUCTS_ATTRIBUTES . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_STATUS_HISTORY . " where orders_id = '" . (int)$order_id . "'"); tep_db_query("delete from " . TABLE_ORDERS_TOTAL . " where orders_id = '" . (int)$order_id . "'"); } ?> Quote Link to comment Share on other sites More sharing options...
sup3rstar Posted August 1, 2007 Share Posted August 1, 2007 I have a problem too with MoneyBookers IPN ( "official") payment module. I install it but i can configure it. When (from my admin area) try to edit just disappear ! I don't know php, what i did was to replace what they said in read me file but they were 2 files: _general and _filenames that we have to replace but they didn't said what line etc..just give the code..and what i did? I put it where i thout it fits better but i don't think i replace them well since i canno't install the module. Can somebody who know php and already install this post those 2 files _general & _filenames here please. Thnak you in advance Quote Link to comment Share on other sites More sharing options...
ajundra Posted December 9, 2007 Share Posted December 9, 2007 does anybody have a working version of this file: checkout_moneybookersipn_after.php my version works except this sequence here: // unregister session variables used during checkout $osC_Session->remove('sendto'); $osC_Session->remove('billto'); $osC_Session->remove('shipping'); $osC_Session->remove('payment'); $osC_Session->remove('comments'); your help is much appreciated. thanks, roberto Quote Link to comment Share on other sites More sharing options...
netpios Posted January 1, 2008 Share Posted January 1, 2008 Hi Somebody might have already responded somewhere. However, as I just figured out what's wrong with this contribution, I'm posting the results here to help the community: This module is probably written for OSC v.2.2 MS3 or RC1 .. or whatever else but above v.2.2 MS2 which is my version and some other people who are crying for help here. For adapting this module to MS2, you should update 4 files: checkout_moneybookersipn.php checkout_moneybookersipn_after.php checkout_moneybookersipn_cancel.php moneybookers_notify.php In the above files, search and make the following changes: $osC_Customer->isLoggedOn() >> To tep_session_is_registered('customer_id') $osC_Session->exists('sendto') >> To tep_session_is_registered('sendto') $osC_Session->exists('payment') >> To tep_session_is_registered('payment') $osC_Session->exists('cartID') >> To tep_session_is_registered('cartID') $osC_Session->value('cartID') >> To $cartID $osC_Session->value('language') >> To $language $osC_Session->value('payment') >> To $payment $osC_Session->value('shipping') >> To $shipping $osC_Session->value('languages_id') >> To $languages_id $osC_Customer->id >> To $customer_id $osC_Session->remove() >> To tep_session_unregister() This should resolve any problem. If not, please post back. -Max Quote M.Kh. ############# Project Coordinator ############# Link to comment Share on other sites More sharing options...
Megadart Posted January 19, 2008 Share Posted January 19, 2008 Hi Is there anyway to test it like the Sandbox and PayPal ? Thank you for your help regards Michael Quote ------------------- Surf-Timer Internet Kiosk Software www.surf-timer.com Link to comment Share on other sites More sharing options...
Guest Posted February 24, 2008 Share Posted February 24, 2008 (edited) hi i having error on checkout_moneybookersipn_after.php Fatal error: Call to a member function on a non-object in /www/htdocs/w0097fce/shop/checkout_moneybookersipn_after.php on line 20 <?php /* $Id: moneybookers_ipn.php Copyright © 2007 Datalink UK t/a as Holbi [url=http://www.holbi.co.uk]http://www.holbi.co.uk[/url] Author: Vladislav B. Malyshev e-mail: [email protected] description: the suport file. When we returns from moneybookers ok we remove cart and other data in this file */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); tep_redirect(tep_href_link(FILENAME_LOGIN, '', 'SSL')); } if ($osC_Session->exists('sendto') == false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (tep_not_null(MODULE_PAYMENT_INSTALLED) && ($osC_Session->exists('payment') == false)) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && $osC_Session->exists('cartID') && ($cart->cartID != $osC_Session->value('cartID'))) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } include(DIR_WS_LANGUAGES . $osC_Session->value('language') . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($osC_Session->value('payment')); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($osC_Session->value('shipping')); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $cart->reset(true); // unregister session variables used during checkout $osC_Session->remove('sendto'); $osC_Session->remove('billto'); $osC_Session->remove('shipping'); $osC_Session->remove('payment'); $osC_Session->remove('comments'); tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'NONSSL')); ?> Edited February 24, 2008 by projectwonderful Quote Link to comment Share on other sites More sharing options...
Guest Posted February 24, 2008 Share Posted February 24, 2008 well i just fixed it myself... checkout_moneybookersipn_after.php <?php /* $Id: moneybookers_ipn.php Copyright (c) 2007 Datalink UK t/a as Holbi http://www.holbi.co.uk Author: Vladislav B. Malyshev e-mail: [email protected] description: the suport file. When we returns from moneybookers ok we remove cart and other data in this file */ include('includes/application_top.php'); // if the customer is not logged on, redirect them to the login page // if the customer is not logged on, redirect them to the shopping cart page if (!tep_session_is_registered('customer_id')) { tep_redirect(tep_href_link(FILENAME_SHOPPING_CART)); } if ($sendto != false) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); } if (defined('MODULE_PAYMENT_INSTALLED') && tep_not_null(MODULE_PAYMENT_INSTALLED)) { $this->modules = explode(';', MODULE_PAYMENT_INSTALLED); } // avoid hack attempts during the checkout procedure by checking the internal cartID if (isset($cart->cartID) && tep_session_is_registered('cartID')) { if ($cart->cartID != $cartID) { tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL')); } } include(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_PROCESS); // load selected payment module require(DIR_WS_CLASSES . 'payment.php'); $payment_modules = new payment($payment); // load the selected shipping module require(DIR_WS_CLASSES . 'shipping.php'); $shipping_modules = new shipping($shipping); require(DIR_WS_CLASSES . 'order.php'); $order = new order; // load the before_process function from the payment modules $payment_modules->before_process(); require(DIR_WS_CLASSES . 'order_total.php'); $order_total_modules = new order_total; $cart->reset(true); // unregister session variables used during checkout tep_session_unregister('sendto'); tep_session_unregister('billto'); tep_session_unregister('shipping'); tep_session_unregister('payment'); tep_session_unregister('comments'); tep_redirect(tep_href_link(FILENAME_CHECKOUT_SUCCESS, '', 'NONSSL')); ?> Quote Link to comment Share on other sites More sharing options...
netpios Posted February 25, 2008 Share Posted February 25, 2008 Hello, For some reason, I didn't get any message from the forum informing me that you've posted... Anyway .. I don't have a good news either .. I actually don't know if there's anything like PayPal Sandbox for Moneybookers. I haven't contacted Moneybookers yet to see how we're supposed to test ... What I will probably do is using another account to send money back and forth between Moneybookers account to see the module is functional. Keep in mind that they don't allow multiple accounts per user .. u can use a friend's account for that matter. If you have any info regarding this .. let me know. Thanks. Hi Is there anyway to test it like the Sandbox and PayPal ? Thank you for your help regards Michael Quote M.Kh. ############# Project Coordinator ############# Link to comment Share on other sites More sharing options...
leveera Posted March 1, 2008 Share Posted March 1, 2008 Installed IPN module with no problem for OSC2.2M2 with all above changes. I only noted the Moneybookers orders status (moneybookers before process, moneybookers processed .... ) are displayed only on English pages in admin. Is a solution to have status displayed in other languages? Sergei Quote Link to comment Share on other sites More sharing options...
draculakos Posted June 5, 2008 Share Posted June 5, 2008 just to help some people you have to make this corrections if you use RC2 version with the constribution "Moneybookers Oscommerce 2.2 ms2" in the checkout_moneybookersipn_after.php and checkout_moneybookersipn_cancel.php $osC_Session->value('shipping') >> To $shipping Quote I am Maintaining : Product_Short_Description (i added it on specials.php and in shopping_cart.php) City Shipping Rates With Admin (fixed the error that was giving wrong total shipping charges) I had Created : UTF bug fix on standard reviews system (admin & block) Corrupted character on mysql with utf-8 Link to comment Share on other sites More sharing options...
emergenzamatic Posted July 6, 2008 Share Posted July 6, 2008 Hello, I have installed the OScommerce 2.2RC2a and I am getting an error. When I click on edit in the admin area it just disappears. Can someone help? BJB Quote Link to comment Share on other sites More sharing options...
Guest Posted August 24, 2008 Share Posted August 24, 2008 Hey there, There's one more thing you have to do in checkout_moneybookersipn_after.php file BEFORE EDITING // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_PAYMENT)); which gonna redirect the customer after purchasing from moneybookers to checkout_payment.php !! this gonna make the customer confused like he didn't purchase the item so he will try to purchased over and over and makes a duplicate orders !! so just change this to // if the customer is not logged on, redirect them to the login page if ($osC_Customer->isLoggedOn() == false) { $navigation->set_snapshot(array('mode' => 'SSL', 'page' => FILENAME_CHECKOUT_SUCCESS)); This is gonna redirect him from moneybookers to checkout_success.php after purchasing which allows the customer to continue normally hope this helps cheers Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.