The CatalogManager.Checkout is a wrapper of :
OrderCheckout orderCheckout = new OrderCheckout(theCataogManager);
orderCheckout.Checkout(cartOrderId, checkoutState, customer);
he just creates an Order object from the Cart object you can use both ways.
is the CartOrder should be calculated before that before you invoke the Checkout.
So your problem here is not with the checkout but possibly with the shopping cart. I am not sure how the products/items are added to that cart but in our controls each time a product is added to the cart we do the fallowing call :
var orderCalculator = ObjectFactory.Resolve<IOrderCalculator>();
So in your code if you do this call before placing the order the total and subtotal and etc should be populated after that.
About your other issue.. the GatewayResponse field and the PaymentResponse.
Inside the Checkout method we are trying to process the order.. so in short we are taking the PaymentMethodId and the CreditCardInfo from the CheckoutState and we are trying to send a Transaction to the selected payment method with this credit card details and we receive response from them. I guess in your case you are not using the right PaymentMethod or the CheckoutState is not populated correctly. Just for testing if you set the PaymentMethodId of some Offline Payment Method you should not get any error and the order at the end should have a status Pending.
Please let me know if you need future assistance.
Do you want to have your say in the Sitefinity development roadmap? Do you want to know when a feature you requested is added or when a bug fixed? Explore the Telerik Public Issue Tracking
system and vote to affect the priority of the items