maintain products in shopping-cart as long as a payment was not completed. (or succes page was not reached).
Currently when a user cannot complete a payment, he returns to the checkout page with the only option to choose a different payment method.
However: if the user thenleaves the checkout the cart is cleared (= is made empty).
I do not believe that a failed payment automatically cancels the intention of the user to buy what-ever they have put in te cart.
This way you loose potential purchases, when some users are only looking to make some adjustments before continuing to eventually complete the purchase (payment).
I believe it is better to always maintain the full content of the cart (even the promotions, if any apply) as long as the user has not clearly decided not to proceed with the puchase.
Better would be to only empty the cart when a user specifically aims for that: for example by using a button to "empty" the cart.