Jump to content

Megalithic1

Members
  • Content count

    17
  • Joined

  • Last visited

Profile Information

  • Real Name
    Craig Stanfield
  1. Megalithic1

    PayPoint

    ok fixed it but still have issues regarding the transaction mode. The paypoint documentation calls for the following:- 0=production 1=always successfull 2=always fail i have altered the secpay.php to do this as follows switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) { case 'Always Fail': $test_status = '2'; break; case 'Production': $test_status = '0'; break; case 'Always Successful': default: $test_status = '1'; break; } and the line (about 123) changed from tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name()); to tep_draw_hidden_field('options', 'intTestMode=' . $test_status . ',dups=false,cb_flds=' . tep_session_name()) . tep_draw_hidden_field('digest', $digest ); so as the correct tag is now used. The module calls the routine but it doesn't enter the test mode! what am i missing here?
  2. Megalithic1

    PayPoint

    Ok, I've been working on getting paypoint to work, I have been told that PayPoint used to be SecPay, the problem is it isn't anymore, the call URL is not the same and the tags needed are totally different. I have been having all kinds of issues getting this to function and still have problems (the site takes the money but doesn't notify who it came from) Anyway here is the important information from the paypoint.net Site this is the default secpay module <?php /* $Id: secpay.php 1739 2007-12-20 00:52:16Z hpdl $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright (c) 2003 osCommerce Released under the GNU General Public License */ class secpay { var $code, $title, $description, $enabled; // class constructor function secpay() { global $order; $this->code = 'secpay'; $this->title = MODULE_PAYMENT_SECPAY_TEXT_TITLE; $this->description = MODULE_PAYMENT_SECPAY_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_SECPAY_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_SECPAY_STATUS == 'True') ? true : false); if ((int)MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->form_action_url = 'https://www.secpay.com/java-bin/ValCard'; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_SECPAY_ZONE > 0) ) { $check_flag = false; $check_query = tep_db_query("select zone_id from " . TABLE_ZONES_TO_GEO_ZONES . " where geo_zone_id = '" . MODULE_PAYMENT_SECPAY_ZONE . "' and zone_country_id = '" . $order->billing['country']['id'] . "' order by zone_id"); while ($check = tep_db_fetch_array($check_query)) { if ($check['zone_id'] < 1) { $check_flag = true; break; } elseif ($check['zone_id'] == $order->billing['zone_id']) { $check_flag = true; break; } } if ($check_flag == false) { $this->enabled = false; } } } function javascript_validation() { return false; } function selection() { return array('id' => $this->code, 'module' => $this->title); } function pre_confirmation_check() { return false; } function confirmation() { return false; } function process_button() { global $order, $currencies, $currency; switch (MODULE_PAYMENT_SECPAY_CURRENCY) { case 'Default Currency': $sec_currency = DEFAULT_CURRENCY; break; case 'Any Currency': default: $sec_currency = $currency; break; } switch (MODULE_PAYMENT_SECPAY_TEST_STATUS) { case 'Always Fail': $test_status = 'false'; break; case 'Production': $test_status = 'live'; break; case 'Always Successful': default: $test_status = 'true'; break; } $process_button_string = tep_draw_hidden_field('merchant', MODULE_PAYMENT_SECPAY_MERCHANT_ID) . tep_draw_hidden_field('trans_id', STORE_NAME . date('Ymdhis')) . tep_draw_hidden_field('amount', number_format($order->info['total'] * $currencies->get_value($sec_currency), $currencies->currencies[$sec_currency]['decimal_places'], '.', '')) . tep_draw_hidden_field('bill_name', $order->billing['firstname'] . ' ' . $order->billing['lastname']) . tep_draw_hidden_field('bill_addr_1', $order->billing['street_address']) . tep_draw_hidden_field('bill_addr_2', $order->billing['suburb']) . tep_draw_hidden_field('bill_city', $order->billing['city']) . tep_draw_hidden_field('bill_state', $order->billing['state']) . tep_draw_hidden_field('bill_post_code', $order->billing['postcode']) . tep_draw_hidden_field('bill_country', $order->billing['country']['title']) . tep_draw_hidden_field('bill_tel', $order->customer['telephone']) . tep_draw_hidden_field('bill_email', $order->customer['email_address']) . tep_draw_hidden_field('ship_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) . tep_draw_hidden_field('ship_addr_1', $order->delivery['street_address']) . tep_draw_hidden_field('ship_addr_2', $order->delivery['suburb']) . tep_draw_hidden_field('ship_city', $order->delivery['city']) . tep_draw_hidden_field('ship_state', $order->delivery['state']) . tep_draw_hidden_field('ship_post_code', $order->delivery['postcode']) . tep_draw_hidden_field('ship_country', $order->delivery['country']['title']) . tep_draw_hidden_field('currency', $sec_currency) . tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false) . ';' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'SSL', false)) . tep_draw_hidden_field(tep_session_name(), tep_session_id()) . tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_post=true,cb_flds=' . tep_session_name()); return $process_button_string; } function before_process() { global $HTTP_POST_VARS; if ($HTTP_POST_VARS['valid'] == 'true') { if ($remote_host = getenv('REMOTE_HOST')) { if ($remote_host != 'secpay.com') { $remote_host = gethostbyaddr($remote_host); } if ($remote_host != 'secpay.com') { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false)); } } else { tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, tep_session_name() . '=' . $HTTP_POST_VARS[tep_session_name()] . '&payment_error=' . $this->code, 'SSL', false, false)); } } } function after_process() { return false; } function get_error() { global $HTTP_GET_VARS; if (isset($HTTP_GET_VARS['message']) && (strlen($HTTP_GET_VARS['message']) > 0)) { $error = stripslashes(urldecode($HTTP_GET_VARS['message'])); } else { $error = MODULE_PAYMENT_SECPAY_TEXT_ERROR_MESSAGE; } return array('title' => MODULE_PAYMENT_SECPAY_TEXT_ERROR, 'error' => $error); } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_SECPAY_STATUS'"); $this->_check = tep_db_num_rows($check_query); } return $this->_check; } function install() { tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Enable SECpay Module', 'MODULE_PAYMENT_SECPAY_STATUS', 'True', 'Do you want to accept SECPay payments?', '6', '1', 'tep_cfg_select_option(array(\'True\', \'False\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Merchant ID', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'secpay', 'Merchant ID to use for the SECPay service', '6', '2', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Transaction Currency', 'MODULE_PAYMENT_SECPAY_CURRENCY', 'Any Currency', 'The currency to use for credit card transactions', '6', '3', 'tep_cfg_select_option(array(\'Any Currency\', \'Default Currency\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, date_added) values ('Transaction Mode', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'Always Successful', 'Transaction mode to use for the SECPay service', '6', '4', 'tep_cfg_select_option(array(\'Always Successful\', \'Always Fail\', \'Production\'), ', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, date_added) values ('Sort order of display.', 'MODULE_PAYMENT_SECPAY_SORT_ORDER', '0', 'Sort order of display. Lowest is displayed first.', '6', '0', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, use_function, set_function, date_added) values ('Payment Zone', 'MODULE_PAYMENT_SECPAY_ZONE', '0', 'If a zone is selected, only enable this payment method for that zone.', '6', '2', 'tep_get_zone_class_title', 'tep_cfg_pull_down_zone_classes(', now())"); tep_db_query("insert into " . TABLE_CONFIGURATION . " (configuration_title, configuration_key, configuration_value, configuration_description, configuration_group_id, sort_order, set_function, use_function, date_added) values ('Set Order Status', 'MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID', '0', 'Set the status of orders made with this payment module to this value', '6', '0', 'tep_cfg_pull_down_order_statuses(', 'tep_get_order_status_name', now())"); } function remove() { tep_db_query("delete from " . TABLE_CONFIGURATION . " where configuration_key in ('" . implode("', '", $this->keys()) . "')"); } function keys() { return array('MODULE_PAYMENT_SECPAY_STATUS', 'MODULE_PAYMENT_SECPAY_MERCHANT_ID', 'MODULE_PAYMENT_SECPAY_CURRENCY', 'MODULE_PAYMENT_SECPAY_TEST_STATUS', 'MODULE_PAYMENT_SECPAY_ZONE', 'MODULE_PAYMENT_SECPAY_ORDER_STATUS_ID', 'MODULE_PAYMENT_SECPAY_SORT_ORDER'); } } ?> as you can see this is now not even remotely like secpay and no community add-ons are available to address this (hell someones done an MD5 version which wont work with the new site either :s here is some modifications i have made to the $process_button_string to address these issues with the new site $process_button_string = tep_draw_hidden_field('intInstID', MODULE_PAYMENT_SECPAY_MERCHANT_ID) . tep_draw_hidden_field('strCartID', STORE_NAME . date('Ymdhis')) . tep_draw_hidden_field('fltAmount', number_format($order->info['total'] * $currencies->get_value($sec_currency), $currencies->currencies[$sec_currency]['decimal_places'], '.', '')) . tep_draw_hidden_field('strCustomer', $order->billing['firstname'] . ' ' . $order->billing['lastname']) . tep_draw_hidden_field('strDesc', STORE_NAME) . tep_draw_hidden_field('strAddress', $order->billing['street_address'] . ' ' . $order->billing['suburb']) . tep_draw_hidden_field('bill_city', $order->billing['city']) . tep_draw_hidden_field('bill_state', $order->billing['state']) . tep_draw_hidden_field('strPostcode', $order->billing['postcode']) . tep_draw_hidden_field('strCountry', $order->billing['country']['title']) . tep_draw_hidden_field('strTel', $order->customer['telephone']) . tep_draw_hidden_field('strEmail', $order->customer['email_address']) . tep_draw_hidden_field('ship_name', $order->delivery['firstname'] . ' ' . $order->delivery['lastname']) . tep_draw_hidden_field('ship_addr_1', $order->delivery['street_address']) . tep_draw_hidden_field('ship_addr_2', $order->delivery['suburb']) . tep_draw_hidden_field('ship_city', $order->delivery['city']) . tep_draw_hidden_field('ship_state', $order->delivery['state']) . tep_draw_hidden_field('ship_post_code', $order->delivery['postcode']) . tep_draw_hidden_field('ship_country', $order->delivery['country']['title']) . tep_draw_hidden_field('strCurrency', $sec_currency) . tep_draw_hidden_field('callback', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL', false) . ';' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'payment_error=' . $this->code, 'SSL', false)) . tep_draw_hidden_field(tep_session_name(), tep_session_id()) . tep_draw_hidden_field('options', 'test_status=' . $test_status . ',dups=false,cb_flds=' . tep_session_name()) . tep_draw_hidden_field('digest', $digest ); return $process_button_string; } I have the module in always succeed mode and the paypoint sites parser tells me that the country code is more than 2 characters long! not sure how to get that info into the string? Anyone got this one licked yet?
  3. Megalithic1

    "Dynamenu" for osCommerce

    yes it is possible, it does however require changes to a lot of files. check out My Website for a working example of using a dynamenu and STS to create a list for multiple pages. most of the procedure is already listed elsewhere in this thread but getting the submenu's to be a diff size and colour requires modifying the template file in the dynamenu subdirectory from catalog/functions/dynamenu. I could post the modifications if their is enough demand. As a quick sidenote my dynamenu based site works in all browsers, however i am not using slide out menu's just a plain vertical list menu
  4. Megalithic1

    "Dynamenu" for osCommerce

    worked this out, had to add an align tag in the .phplmbodytable section of my css file and alter the way the dm style sheet in the includes/functions/dynamenu/templates folder is formed plus a modification to the plainmenu.inc.php file at about line 141 as follows (changes in bold) for ($cnt=$this->_firstItem[$menu_name]; $cnt<=$this->_lastItem[$menu_name]; $cnt++) { if ($this->tree[$cnt]['text'] == '---') { continue; // separators are significant only for layers-based menus } $nbsp = ''; $clas = 'phplm'; for ($i=1; $i<$this->tree[$cnt]['level']; $i++) { $nbsp .= ' '; $clas = 'phplmsublevel'; } $t->setVar(array( 'nbsp' => $nbsp, 'href' => $this->tree[$cnt]['parsed_href'], 'title' => $this->tree[$cnt]['parsed_title'], 'target' => $this->tree[$cnt]['parsed_target'], 'text' => $this->tree[$cnt]['parsed_text'], 'clas' => $clas )); then i added my new classinfo into my css file for a .phplmsubmenu class and altered the template so it added the clas info {clas} only thing i now have left is how to get the added menu items to show as highlighted (.dmselected) as far as i can tell it'll need a few lines of code to check the url of the current page and use that to compare, anyone have any other way to go about this?
  5. Megalithic1

    "Dynamenu" for osCommerce

    Hi Nate and Other Contributers to this code, My problem is i need a boxless vertical plain menu, I have got the code working fine but i need to make some changes as follows:- 1/ the categories are color black whereas the subcategories are white and a smaller font. 2/ the structure needs to be right aligned and not left as per the default settings for this. both of these issues can be solved by some simple new css code i presume, however I'm not aware of the location (or function) that the processed dm_categories.php is sent to be constructed into HTML so i can add the new class names, does anyone know where this is done? Thanks in advance
  6. Megalithic1

    [Contribution] STS v4

    I have an issue relating to the Custom Product listing page from the free template pack, my shop is being designed from an artists image of the site, my problem is that the design calls for the product listings to exist in tables so i modified the product_listing.php :- First i found $lc_text = implode('<br>', $product_contents); and replaced this with $lc_text = '<center><table width="120" border="0" class="product-data"><tr><td>' . implode('</td></tr><tr><td>', $product_contents) . '</tr></td></table></center>'; I then added a new category to the css file and have fully functioning tables with the details controlled by a css fiile, the problem i have however is that the image file (set at 120x120) has padding around it and doesn't fit flush to the side of the image as required. Looking over the page source i notice the following code <table border="0" cellpadding="0" cellspacing="0" width="100%" class="productListing"> <tr> <td width="100%"><table border="0" width="100%" cellspacing="0" cellpadding="2"> <tr> <td class="productListing-data"><center><table width="120" border="0" class="product-data"><tr><td> <a href="http://localhost/catalog/index.php?manufacturers_id=4&osCsid=r2r1khq97jdm59sq7oapc0qas6">BOLONGARO TREVOR</a> </td></tr><tr><td> <a href="http://localhost/catalog/product_info.php?cPath=3_10&products_id=12&osCsid=r2r1khq97jdm59sq7oapc0qas6"><img src="images/dvd/die_hard_3.gif" border="0" alt="Die Hard With A Vengeance" title=" Die Hard With A Vengeance " width="120" height="120"></a> </td></tr><tr><td> <a href="http://localhost/catalog/product_info.php?cPath=3_10&products_id=12&osCsid=r2r1khq97jdm59sq7oapc0qas6">Die Hard With A Vengeance</a> </td></tr><tr><td> £39.99 </td></tr><tr><td><a href="http://localhost/catalog/index.php?cPath=3_10&sort=3a&action=buy_now&products_id=12&osCsid=r2r1khq97jdm59sq7oapc0qas6"><img src="includes/sts_templates/modernrc2a/images/english/buttons/button_buy_now.gif" border="0" alt="" width="120" height="24"></a> </tr></td></table></center></td> I believe the cellpadding of 2 prior to my code block doesn't cause the issue i need to resolve. Anybody know why the images have a whitespace around them? my listing boxes should be width 120 (as is the case with the images) but it in reality is 128 (4 pixels on each side) the top of the image has a single pixel space and the bottom like the sides is 4 pixels, whats causing this? p.s. i am aware this is probably neither STS nor OSC related but hope i can get some pointers to remove this issue (or an alternative suggestion to resolve my issue
×