Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

Checkout_Confirmation.php throws blank.


Wilderland

Recommended Posts

Hey all,

 

I'm looking for a bit of help here. I've been working on getting my store back online after a major kerfuffle involving a dead computer and a corrupt install and have gotten to the point of establishing payment gateways. first I installed the NZBank transfer module to allow customers to see bank details and process payments that way. Then I started trying to insta Paymate SPI which I eventually gave up on due to issues with checkout_confirmation displaying a bad CSS layout and no data. since then I have deleted this module and instead gone for Paypal as they have a full IPN and i thought their support would be more stable.

 

Enter problem: the page is still blank. NZBank transfer works a treat but paypal throws a fit as doesnt give me a complete page. seems like everything from:

 

<?php
 if (is_array($payment_modules->modules)) {
   if ($confirmation = $payment_modules->confirmation()) {
?>

 

Doesnt wanna show up. Not to cool. can anybody look at my code and magically know the solution?

 

I hope so :) I normally try to nut things out myself but I'm stumped, not a native PHP speaker :(

 

CODE:

 

<?php
/*
 $Id$
 osCommerce, Open Source E-Commerce Solutions
 http://www.oscommerce.com
 Copyright (c) 2010 osCommerce
 Released under the GNU General Public License
*/
 require('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 there is nothing in the customers cart, redirect them to the shopping cart page
 if ($cart->count_contents() < 1) {
   tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
 }
// 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'));
   }
 }
// if no shipping method has been selected, redirect the customer to the shipping method selection page
 if (!tep_session_is_registered('shipping')) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
 }
 if (!tep_session_is_registered('payment')) tep_session_register('payment');
 if (isset($HTTP_POST_VARS['payment'])) $payment = $HTTP_POST_VARS['payment'];
 if (!tep_session_is_registered('comments')) tep_session_register('comments');
 if (isset($HTTP_POST_VARS['comments']) && tep_not_null($HTTP_POST_VARS['comments'])) {
   $comments = tep_db_prepare_input($HTTP_POST_VARS['comments']);
 }
// load the selected payment module
 require(DIR_WS_CLASSES . 'payment.php');
 $payment_modules = new payment($payment);
 require(DIR_WS_CLASSES . 'order.php');
 $order = new order;
 $payment_modules->update_status();
 if ( ($payment_modules->selected_module != $payment) || ( is_array($payment_modules->modules) && (sizeof($payment_modules->modules) > 1) && !is_object($$payment) ) || (is_object($$payment) && ($$payment->enabled == false)) ) {
   tep_redirect(tep_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . urlencode(ERROR_NO_PAYMENT_MODULE_SELECTED), 'SSL'));
 }
 if (is_array($payment_modules->modules)) {
   $payment_modules->pre_confirmation_check();
 }
// load the selected shipping module
 require(DIR_WS_CLASSES . 'shipping.php');
 $shipping_modules = new shipping($shipping);
 require(DIR_WS_CLASSES . 'order_total.php');
 $order_total_modules = new order_total;
 $order_total_modules->process();
// Stock Check
 $any_out_of_stock = false;
 if (STOCK_CHECK == 'true') {
   for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
  if (tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty'])) {
    $any_out_of_stock = true;
  }
   }
   // Out of Stock
   if ( (STOCK_ALLOW_CHECKOUT != 'true') && ($any_out_of_stock == true) ) {
  tep_redirect(tep_href_link(FILENAME_SHOPPING_CART));
   }
 }
 require(DIR_WS_LANGUAGES . $language . '/' . FILENAME_CHECKOUT_CONFIRMATION);
 $breadcrumb->add(NAVBAR_TITLE_1, tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL'));
 $breadcrumb->add(NAVBAR_TITLE_2);
 require(DIR_WS_INCLUDES . 'template_top.php');
?>
<h1><?php echo HEADING_TITLE; ?></h1>
<?php
 if (isset($$payment->form_action_url)) {
   $form_action_url = $$payment->form_action_url;
 } else {
   $form_action_url = tep_href_link(FILENAME_CHECKOUT_PROCESS, '', 'SSL');
 }
 echo tep_draw_form('checkout_confirmation', $form_action_url, 'post');
?>
<?php
 if (is_array($payment_modules->modules)) {
   if ($confirmation = $payment_modules->confirmation()) {
?>
 <h2><?php echo HEADING_PAYMENT_INFORMATION; ?></h2>
 <div class="contentText">
   <table border="0" cellspacing="0" cellpadding="2">
  <tr>
    <td colspan="4"><?php echo $confirmation['title']; ?></td>
  </tr>
<?php
  if (isset($confirmation['fields'])) {
    for ($i=0, $n=sizeof($confirmation['fields']); $i<$n; $i++) {
?>
  <tr>
    <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
    <td class="main"><?php echo $confirmation['fields'][$i]['title']; ?></td>
    <td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>
    <td class="main"><?php echo $confirmation['fields'][$i]['field']; ?></td>
  </tr>
<?php
    }
  }
?>
   </table>
 </div>
<div class="contentContainer">
 <h2><?php echo HEADING_SHIPPING_INFORMATION; ?></h2>
 <div class="contentText">
   <table border="0" width="100%" cellspacing="1" cellpadding="2">
  <tr>
<?php
 if ($sendto != false) {
?>
    <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
	    <td><?php echo '<strong>' . HEADING_DELIVERY_ADDRESS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	  </tr>
	  <tr>
	    <td><?php echo tep_address_format($order->delivery['format_id'], $order->delivery, 1, ' ', '<br />'); ?></td>
	  </tr>
<?php
   if ($order->info['shipping_method']) {
?>
	  <tr>
	    <td><?php echo '<strong>' . HEADING_SHIPPING_METHOD . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	  </tr>
	  <tr>
	    <td><?php echo $order->info['shipping_method']; ?></td>
	  </tr>
<?php
   }
?>
    </table></td>
<?php
 }
?>
    <td width="<?php echo (($sendto != false) ? '70%' : '100%'); ?>" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
<?php
 if (sizeof($order->info['tax_groups']) > 1) {
?>
	  <tr>
	    <td colspan="2"><?php echo '<strong>' . HEADING_PRODUCTS . '</strong> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	    <td align="right"><strong><?php echo HEADING_TAX; ?></strong></td>
	    <td align="right"><strong><?php echo HEADING_TOTAL; ?></strong></td>
	  </tr>
<?php
 } else {
?>
	  <tr>
	    <td colspan="3"><?php echo '<strong>' . HEADING_PRODUCTS . '</strong> <a href="' . tep_href_link(FILENAME_SHOPPING_CART) . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	  </tr>
<?php
 }
 for ($i=0, $n=sizeof($order->products); $i<$n; $i++) {
   echo '		  <tr>' . "\n" .
	 '		    <td align="right" valign="top" width="30">' . $order->products[$i]['qty'] . ' x</td>' . "\n" .
	 '		    <td valign="top">' . $order->products[$i]['name'];
   if (STOCK_CHECK == 'true') {
  echo tep_check_stock($order->products[$i]['id'], $order->products[$i]['qty']);
   }
   if ( (isset($order->products[$i]['attributes'])) && (sizeof($order->products[$i]['attributes']) > 0) ) {
  for ($j=0, $n2=sizeof($order->products[$i]['attributes']); $j<$n2; $j++) {
    echo '<br /><nobr><small> <i> - ' . $order->products[$i]['attributes'][$j]['option'] . ': ' . $order->products[$i]['attributes'][$j]['value'] . '</i></small></nobr>';
  }
   }
   echo '</td>' . "\n";
   if (sizeof($order->info['tax_groups']) > 1) echo '		    <td valign="top" align="right">' . tep_display_tax_value($order->products[$i]['tax']) . '%</td>' . "\n";
   echo '		    <td align="right" valign="top">' . $currencies->display_price($order->products[$i]['final_price'], $order->products[$i]['tax'], $order->products[$i]['qty']) . '</td>' . "\n" .
	 '		  </tr>' . "\n";
 }
?>
    </table></td>
  </tr>
   </table>
 </div>
 <h2><?php echo HEADING_BILLING_INFORMATION; ?></h2>
 <div class="contentText">
   <table border="0" width="100%" cellspacing="1" cellpadding="2">
  <tr>
    <td width="30%" valign="top"><table border="0" width="100%" cellspacing="0" cellpadding="2">
	  <tr>
	    <td><?php echo '<strong>' . HEADING_BILLING_ADDRESS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT_ADDRESS, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	  </tr>
	  <tr>
	    <td><?php echo tep_address_format($order->billing['format_id'], $order->billing, 1, ' ', '<br />'); ?></td>
	  </tr>
	  <tr>
	    <td><?php echo '<strong>' . HEADING_PAYMENT_METHOD . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></td>
	  </tr>
	  <tr>
	    <td><?php echo $order->info['payment_method']; ?></td>
	  </tr>
    </table></td>
    <td width="70%" valign="top" align="right"><table border="0" cellspacing="0" cellpadding="2">
<?php
 if (MODULE_ORDER_TOTAL_INSTALLED) {
   echo $order_total_modules->output();
 }
?>
    </table></td>
  </tr>
   </table>
 </div>
<?php
   }
 }
 if (tep_not_null($order->info['comments'])) {
?>
 <h2><?php echo '<strong>' . HEADING_ORDER_COMMENTS . '</strong> <a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '"><span class="orderEdit">(' . TEXT_EDIT . ')</span></a>'; ?></h2>
 <div class="contentText">
   <?php echo nl2br(tep_output_string_protected($order->info['comments'])) . tep_draw_hidden_field('comments', $order->info['comments']); ?>
 </div>
<?php
 }
?>
 <div class="contentText">
   <div style="float: left; width: 60%; padding-top: 5px; padding-left: 15%;">
  <div id="coProgressBar" style="height: 5px;"></div>
  <table border="0" width="100%" cellspacing="0" cellpadding="2">
    <tr>
	  <td align="center" width="33%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_SHIPPING, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_DELIVERY . '</a>'; ?></td>
	  <td align="center" width="33%" class="checkoutBarFrom"><?php echo '<a href="' . tep_href_link(FILENAME_CHECKOUT_PAYMENT, '', 'SSL') . '" class="checkoutBarFrom">' . CHECKOUT_BAR_PAYMENT . '</a>'; ?></td>
	  <td align="center" width="33%" class="checkoutBarCurrent"><?php echo CHECKOUT_BAR_CONFIRMATION; ?></td>
    </tr>
  </table>
   </div>
   <div style="float: right;">
<?php
 if (is_array($payment_modules->modules)) {
   echo $payment_modules->process_button();
 }
 echo tep_draw_button(IMAGE_BUTTON_CONFIRM_ORDER, 'check', null, 'primary');
?>
   </div>
 </div>
</div>
<script type="text/javascript">
$('#coProgressBar').progressbar({
 value: 100
});
</script>
</form>
<?php
 require(DIR_WS_INCLUDES . 'template_bottom.php');
 require(DIR_WS_INCLUDES . 'application_bottom.php');
?>

Link to comment
Share on other sites

Open up checkout_confirmation.php

 

Add this right after the first <?php

 

ini_set('display_errors', 'On');

error_reporting(4096);

 

 

and see what errors it may throw. if it throws errors you'll know what the problem is.

Link to comment
Share on other sites

Hi simo,

 

this code seems to be in the wrong place

 

<?php

if (is_array($payment_modules->modules)) {

if ($confirmation = $payment_modules->confirmation()) {

?>

<h2><?php echo HEADING_PAYMENT_INFORMATION; ?></h2>

<div class="contentText">

<table border="0" cellspacing="0" cellpadding="2">

<tr>

<td colspan="4"><?php echo $confirmation['title']; ?></td>

</tr>

<?php

if (isset($confirmation['fields'])) {

for ($i=0, $n=sizeof($confirmation['fields']); $i<$n; $i++) {

?>

<tr>

<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

<td class="main"><?php echo $confirmation['fields'][$i]['title']; ?></td>

<td><?php echo tep_draw_separator('pixel_trans.gif', '10', '1'); ?></td>

<td class="main"><?php echo $confirmation['fields'][$i]['field']; ?></td>

</tr>

<?php

}

}

?>

</table>

</div>

 

easiest would be just to upload a new file

 

It should be just below

 

<?php

if (MODULE_ORDER_TOTAL_INSTALLED) {

echo $order_total_modules->output();

}

?>

</table></td>

</tr>

</table>

</div>

 

about line 204

 

regards

Joli

To improve is to change; to be perfect is to change often.

 

Link to comment
Share on other sites

Funny story:

 

Before I got back to this post I found a solution by simply removing the statement:

 

if ($confirmation = $payment_modules->confirmation()) {

 

(and its closing })

 

For me this doesn't seem like an issue, from what I understand this function ensures the payment module selected is correct? I don't think it will create and security issues except for allowing the generation of confirmation pages :P

 

I tried your solution also and found it throwing all new errors to do with a lack of closed brackets, I don't have time right now to focus on debugging that but If any problems arise I'll give it a spin.

Link to comment
Share on other sites

Archived

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

×
×
  • Create New...