После совершения заказа корзина всегда очищается, это для того, чтобы не было повторных заказов.
Если оплата вернула ошибку, то заказ не завершен и корзина не очищается. Так сделано во всех платежных модулях (нормальных модулях).
Добавить проверку ответа об оплате. Как делать можно смотреть в модуле paypal.