I understand that I'll probably get some flak for this answer, but I'm going to have to disagree with every answer posted thus far. I like to take a logical approach to UX and even if you do opt for option two, hopefully I can at least convey another point of view.
When someone enters their payment information, 999 times out of 1000 they know exactly what they are buying. They know (at least roughly) what the total cost of all of the items added to their cart is. When they go to check out with option 1, they will have a clear reminder of everything they have added. When someone clicks 'next' and fills out their payment details, 999 times out of 1000 they are ready to make the exchange. If you use option 2, you are accounting for the one person out of a thousand who has buyer's remorse at the last second or somehow managed to add something to their cart that they didn't mean to, then skipped over the confirmation, and has now paid the wrong amount. If you use option 2 to account for this one person, you are providing an unnecessary obstacle for the 999 people who are simply ready to pay for the product(s).
You can still permit easy reversal of actions by utilizing a system similar to Amazon's. Make it possible for the user to cancel their order before it has been shipped. You could even place a link to cancel an order on the same page as the message that thanks the user for their business.