eCommerce Payment Process

We have an eCommerce website that takes credit card payments, everything is fine, however sometimes a user enters their details, gets approved and moves on to the Complete page - they then hit back and hit Submit AGAIN (they get a duplicate transaction error of course), but my question is - What is the best way to discourage this behavior?

My initial thoughts are

  • Grey the button out and add auxiliary text or change the button text - to "Processing..."

  • Add an "Intermediate" page that shows the text "Processing" with an ajax spinner and some additional text discouraging hitting back or closing

Is there a best practice for this schenario?