Guest Posted March 15, 2006 Posted March 15, 2006 Hi I'm using the pppay module but am having problems..... when customer place an order their order disappears into cyberspace, my store never updates to let me know what they have ordered. This is the module script - anyone got any ideas whats wrong? <?php /* $Id: pppay.php,v 1.39 2003/01/29 19:57:15 hpdl Exp $ osCommerce, Open Source E-Commerce Solutions http://www.oscommerce.com Copyright © 2003 osCommerce Released under the GNU General Public License */ class pppay { var $code, $title, $description, $enabled; // class constructor function pppay() { global $order; $this->code = 'pppay'; $this->title = MODULE_PAYMENT_PPPAY_TEXT_TITLE; $this->description = MODULE_PAYMENT_PPPAY_TEXT_DESCRIPTION; $this->sort_order = MODULE_PAYMENT_PPPAY_SORT_ORDER; $this->enabled = ((MODULE_PAYMENT_PPPAY_STATUS == 'True') ? true : false); if ((int)MODULE_PAYMENT_PPPAY_ORDER_STATUS_ID > 0) { $this->order_status = MODULE_PAYMENT_PPPAY_ORDER_STATUS_ID; } if (is_object($order)) $this->update_status(); $this->form_action_url = 'https://www.pppay.com/checkout_centre.php?'; } // class methods function update_status() { global $order; if ( ($this->enabled == true) && ((int)MODULE_PAYMENT_PPPAY_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_PPPAY_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; if (MODULE_PAYMENT_PPPAY_CURRENCY == 'Selected Currency') { $my_currency = $currency; } else { $my_currency = substr(MODULE_PAYMENT_PPPAY_CURRENCY, 5); } if (!in_array($my_currency, array('CAD', 'EUR', 'GBP', 'JPY', 'USD'))) { $my_currency = 'GBP'; } $process_button_string = tep_draw_hidden_field('cmd', '_xclick') . tep_draw_hidden_field('Seller', MODULE_PAYMENT_PPPAY_ID) . tep_draw_hidden_field('Site', STORE_NAME) . tep_draw_hidden_field('kind', 'single') . tep_draw_hidden_field('Title_1', 'Online order from UKPD') . tep_draw_hidden_field('Code_1', $customer_id . 'EA' . date('Ymdhis')) . tep_draw_hidden_field('item_name', STORE_NAME) . tep_draw_hidden_field('Amount_1', number_format($order->info['total'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) . tep_draw_hidden_field('shipping', number_format($order->info['shipping_cost'] * $currencies->get_value($my_currency), $currencies->get_decimal_places($my_currency))) . tep_draw_hidden_field('Currency', $my_currency) . tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) . tep_draw_hidden_field('cancel_return', tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL')); return $process_button_string; } function before_process() { return false; } function after_process() { return false; } function output_error() { return false; } function check() { if (!isset($this->_check)) { $check_query = tep_db_query("select configuration_value from " . TABLE_CONFIGURATION . " where configuration_key = 'MODULE_PAYMENT_PPPAY_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 pppay Module', 'MODULE_PAYMENT_PPPAY_STATUS', 'True', 'Do you want to accept pppay payments?', '6', '3', '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 ('E-Mail Address', 'MODULE_PAYMENT_PPPAY_ID', '[email protected]', 'The e-mail address to use for the pppay service', '6', '4', 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_PPPAY_CURRENCY', 'Selected Currency', 'The currency to use for credit card transactions', '6', '6', 'tep_cfg_select_option(array(\'Selected Currency\',\'Only USD\',\'Only CAD\',\'Only EUR\',\'Only GBP\',\'Only JPY\'), ', 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_PPPAY_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_PPPAY_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_PPPAY_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_PPPAY_STATUS', 'MODULE_PAYMENT_PPPAY_ID', 'MODULE_PAYMENT_PPPAY_CURRENCY', 'MODULE_PAYMENT_PPPAY_ZONE', 'MODULE_PAYMENT_PPPAY_ORDER_STATUS_ID', 'MODULE_PAYMENT_PPPAY_SORT_ORDER'); } } ?> Thanks
julianpuje Posted March 15, 2006 Posted March 15, 2006 For a start I don't use pppay but heres a few pointers to look at: Are you getting the money paid successfully into pppay? Your admin won't update unless the customer completes the checkout_process.php and ends up at checkout_success page which then updates your admin. Is your site using SSL for checkout? if not it looks like the callback needs to be secure. This is the callback from the posted file: tep_draw_hidden_field('return', tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL')) . Also, if you haven't already, check that your problem is the pppay module by deactivating it and testing a manual payment module like cash or cheque or something to see if it completes the checkout as normal and updates your admin. That way you know your checkout works and the problem is definitely with the pppay callback. HTH J A little knowledge is dangerous, I SHOULD KNOW. If Life Begins At 40, What ends????
Recommended Posts
Archived
This topic is now archived and is closed to further replies.