I would still add a new record and save it at stage 2.
There would need be a table variable for "status". Make that status "pending".
If they close their browser, you'll lose the session, but you won't lose the stored data in your MySQL table.
After the confirmation code comes back from iDEAL, update that status to either "paid" or the "fail" code that gets returned.
If it's failed, you'll have the code that explains what the problem was.
After you ship it, change the status to "shipped".