Only empty the cart when accessing the transaction results page on a successful purchase.  Not awesome to have your cart emptied when your card is declined.