Index: openacs-4/packages/dotlrn-ecommerce/catalog/dotlrn-ecommerce.en_US.ISO-8859-1.xml
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/catalog/dotlrn-ecommerce.en_US.ISO-8859-1.xml,v
diff -u -r1.43 -r1.44
--- openacs-4/packages/dotlrn-ecommerce/catalog/dotlrn-ecommerce.en_US.ISO-8859-1.xml	6 Sep 2005 04:25:42 -0000	1.43
+++ openacs-4/packages/dotlrn-ecommerce/catalog/dotlrn-ecommerce.en_US.ISO-8859-1.xml	6 Sep 2005 08:53:36 -0000	1.44
@@ -139,6 +139,12 @@
   <msg key="lt_Order_Details_for_ord">Order Details for %order_id%</msg>
   <msg key="lt_Orders_in_the_Last_7_">Orders in the Last 7 Days</msg>
   <msg key="lt_Participant_pays_for_">Participant pays for course</msg>
+  <msg key="lt_pAt_this_time_we_are_">&lt;p&gt;At this time we are unable to receive authorization to charge
+	your credit card.  Please check the number and the expiration
+	date and try again or use a different credit card.&lt;/p&gt;
+      &lt;p&gt;If this message persists, there may be a temporary problem, 
+	such as the system not being able to reach the merchant banking system.
+      &lt;/p&gt;</msg>
   <msg key="lt_patron_name_also_pays">%patron_name% also pays for the course</msg>
   <msg key="lt_Please_enter_a_credit">Please enter a credit card number</msg>
   <msg key="lt_Please_enter_a_name_f">Please enter a name for the group</msg>
@@ -167,6 +173,7 @@
   <msg key="lt_Select_another_purcha">Select another purchaser</msg>
   <msg key="lt_Sessions_and_Attendan">Sessions and Attendance</msg>
   <msg key="lt_Sorry_the_offer_code_">Sorry, the offer code was not accepted.</msg>
+  <msg key="lt_Sorry_There_seems_to_">Sorry, There seems to be a problem with completing this transaction.</msg>
   <msg key="lt_Thank_you_for_your_ap">Thank you for putting yourself on the waiting list for %section_name%.  We will notify you if a space becomes available.</msg>
   <msg key="lt_Thank_You_For_Your_Or">Thank You For Your Order</msg>
   <msg key="lt_The_course_only_has_a">The course only has $available_slots slot(s) left</msg>
Index: openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.adp
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.adp,v
diff -u -r1.6 -r1.7
--- openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.adp	5 Aug 2005 13:06:02 -0000	1.6
+++ openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.adp	6 Sep 2005 08:53:35 -0000	1.7
@@ -2,9 +2,19 @@
 
 <!-- following from billing.adp -->
 
-  <property name="title">#dotlrn-ecommerce.lt_Completing_Your_Order_1#</property>
+  <if @invalid_cc_p@>
+    <property name="title">#dotlrn-ecommerce.lt_Completing_Your_Order_1#</property>
 
-  <p>#dotlrn-ecommerce.lt_To_complete_your_orde#</p>
+    <h2>#dotlrn-ecommerce.lt_Sorry_There_seems_to_#</h2>
+    <blockquote>
+      #dotlrn-ecommerce.lt_pAt_this_time_we_are_#
+    </blockquote>
+  </if>
+  <else>
+    <property name="title">#dotlrn-ecommerce.lt_Completing_Your_Order_1#</property>
+    
+    <p>#dotlrn-ecommerce.lt_To_complete_your_orde#</p>
+  </else>
 
 <if @more_addresses_available@ true>
   <p>#dotlrn-ecommerce.lt_Alternately_you_can_u# <a href="checkout">#dotlrn-ecommerce.lt_multi-page_order_proc#</a>, 
Index: openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.tcl,v
diff -u -r1.21 -r1.22
--- openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.tcl	12 Aug 2005 10:09:32 -0000	1.21
+++ openacs-4/packages/dotlrn-ecommerce/www/ecommerce/checkout-one-form.tcl	6 Sep 2005 08:53:35 -0000	1.22
@@ -18,6 +18,8 @@
     user_id:integer,notnull,optional
     participant_id:integer,optional
 
+    {invalid_cc_p 0}
+
     {creditcard_expire_1 ""}
     {creditcard_expire_2 ""}
 }
Index: openacs-4/packages/dotlrn-ecommerce/www/ecommerce/finalize-order.tcl
===================================================================
RCS file: /usr/local/cvsroot/openacs-4/packages/dotlrn-ecommerce/www/ecommerce/finalize-order.tcl,v
diff -u -r1.11 -r1.12
--- openacs-4/packages/dotlrn-ecommerce/www/ecommerce/finalize-order.tcl	5 Sep 2005 03:11:04 -0000	1.11
+++ openacs-4/packages/dotlrn-ecommerce/www/ecommerce/finalize-order.tcl	6 Sep 2005 08:53:35 -0000	1.12
@@ -51,7 +51,7 @@
     
     set return_url "[ad_conn url]"
 
-    ad_returnredirect "/register?[export_url_vars return_url]"
+    ad_returnredirect "[ad_conn package_url]login?[export_url_vars return_url]"
     ad_script_abort
 }
 
@@ -88,11 +88,9 @@
 			and o2.confirmed_date is not null)" -default ""]
 
     if { [empty_string_p $most_recently_confirmed_order] } {
-	rp_internal_redirect "index"
         ns_log Notice "finalize-order.tcl ref(84): no confirmed order for user $user_id. Redirecting user."
-    } else {
-	ad_returnredirect ..
     }
+    ad_returnredirect ..
     ad_script_abort
 }
 
@@ -106,8 +104,7 @@
     select count(*) 
     from ec_items 
     where order_id = :order_id"] == 0 } {
-    rp_form_put user_id $user_id
-    rp_internal_redirect shopping-cart
+    ad_returnredirect [export_vars -base shopping-cart { user_id }]
     ad_script_abort
 }
 
@@ -120,8 +117,7 @@
     from ec_orders 
     where order_id = :order_id"]
 if { $order_owner != $user_id } {
-    rp_form_put user_id $user_id
-    rp_internal_redirect checkout
+    ad_returnredirect [export_vars -base checkout-one-form { user_id }]
     ad_script_abort
 }
 
@@ -145,7 +141,7 @@
 	and p.no_shipping_avail_p = 'f' 
 	and i.order_id = :order_id
 	group by no_shipping_avail_p"]} {
-	ad_returnredirect [ec_securelink checkout]
+	ad_returnredirect [export_vars -base checkout-one-form { user_id }]
         ad_script_abort
     }
 }
@@ -334,9 +330,8 @@
 
                     # authorization error is not necessarily the fault of the user's card, so log it for identifying pattern for diagnostics
                     ns_log Notice "finalize-order.tcl ref(295): failed_authorization for order_id: $order_id. Redirecting user to credit-card-correction."
-
-		    rp_form_put user_id $user_id
-		    rp_internal_redirect credit-card-correction
+		    
+		    ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
                     ad_script_abort
 		} else {
 
@@ -454,8 +449,7 @@
 
 		    ec_update_state_to_in_basket $order_id
                     ns_log Notice "finalize-order.tcl ref(411): updated creditcard check failed for order_id $order_id. Redirecting to credit-card-correction"
-		    rp_form_put user_id $user_id
-		    rp_internal_redirect credit-card-correction
+		    ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
                     ad_script_abort
 		} else {
 
@@ -595,9 +589,8 @@
 
 			ec_update_state_to_in_basket $order_id
                         ns_log Notice "finalize-order.tcl ref(544): creditcard check failed. Redirecting user to credit-card-correction."
-			rp_form_put user_id $user_id
-			rp_internal_redirect credit-card-correction
-
+			ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
+			ad_script_abort
 		    } else {
 
 			# Then result is probably
@@ -621,9 +614,8 @@
 
 		    ec_update_state_to_in_basket $order_id
 
-		    rp_form_put user_id $user_id
-		    rp_internal_redirect credit-card-correction
-                    ad_script_abort
+		    ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
+		    ad_script_abort
 		} else {
 
 		    # Then result is probably "invalid_input".  This should never
@@ -736,8 +728,7 @@
                 # log this just in case this is a symptom of an extended gateway downtime
                 ns_log Notice "finalize-order.tcl, ref(671): creditcard check failed for order_id $order_id. Redirecting to credit-card-correction"
 
-		rp_form_put user_id $user_id
-		rp_internal_redirect credit-card-correction
+		ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
                 ad_script_abort
 	    } else {
 
@@ -883,8 +874,7 @@
 		
 		ec_update_state_to_in_basket $order_id
                 ns_log Notice "finalize-order.tcl ref(789): creditcard check failed. Redirecting to credit-card-correction"		
-		rp_form_put user_id $user_id
-		rp_internal_redirect credit-card-correction
+		ad_returnredirect [export_vars -base checkout-one-form { user_id {invalid_cc_p 1} }]
                 ad_script_abort
 
 	    } else {