Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Please help whilst i have hair left!!!


Guest

Recommended Posts

Posted

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

Posted

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????

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...