Wei, if you're using out of the box portal engine processing, then no you cannot have it the way you want. Also from a standard e-commerce approach, you need to be able to store an orders status even if the payment failed so you can track that. Most payment processing systems want an order ID as well when you pass along the payment info.
My suggestion is to create your own custom checkout to get the process order you want.