this can be done using eCart and a few other extensions but will be tricky to accomplish.
in reality it will be tricky to accomplish no matter what system you use.
you will need to have user registration in place so the user can login and view their account balance. the account balance would basically be a product that is added to the cart for checkout.
the eCart checkout wizard can be used to create the checkout feature.