As for viewing the billing information at checkout, only show them the last 4 digits of the card number. Its enough data for them to figure out which card they used but not enough data for a thug to make use of it.
I'd stay away from trying to encrypt stuff in a cookie which gets sent back to a browser and parked on a hard drive. You could have problems with someone intercepting the data and making use of it. Someone could intercept the data as it sits on the hard drive stored in cookie form. More seriously, someone could hijack the session and starting billing on that card number. Not good if you ask me.
Sessions are typically used in the final phases of the transaction. These are sessions that expire when the web page is closed. Note also its just the session ID being used. That's fine. Just keep in mind session hijacking and how all that works (typical security stuff).
I'd recommend following what your payment gateway (or bank) allows you to do with later payment. Use the last 4 if you have to, but nothing more. As for billing, the user should be able to figure out which card was used. And it should make them feel better that the card number has been blanked out for security.
Seriously, check out how professional e-comm sites work. Buy something. Notice how they handle your card number (notice you don't see it come back to you in an email, shown more than once on a web page, etc). Think about how you'd want your card number handled. Just be careful...