Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Help! About Moneybookers Ipn !


komondor

Recommended Posts

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]) .
'&currency=' . $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 by komondor
Link to comment
Share on other sites

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]) .
'&currency=' . $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.

Link to comment
Share on other sites

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 . "'");
}

?>

Link to comment
Share on other sites

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 . "'");
}

?>

Link to comment
Share on other sites

  • 4 weeks later...

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

Link to comment
Share on other sites

  • 4 months later...

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

Link to comment
Share on other sites

  • 4 weeks later...

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

M.Kh.

#############

Project Coordinator

#############

Link to comment
Share on other sites

  • 3 weeks later...
  • 1 month later...

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 by projectwonderful
Link to comment
Share on other sites

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'));
?>

Link to comment
Share on other sites

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

M.Kh.

#############

Project Coordinator

#############

Link to comment
Share on other sites

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

Link to comment
Share on other sites

  • 3 months later...

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

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

  • 1 month later...
  • 1 month later...

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...