The only way I know of to do both yourself without the customer inputing credit card info twice, is to collect the domain name info on your hosting order form, then you go yourself and register the domain using your own cc, just billing the customer the grand total for both.
The main downside to this is that the domain is not registered in real time when the customer signs up. If someone happens to go register it before you process the order, too bad!
We do it by registering the domain name ourselves and then charging the customer for both.
We are thinking of moving to something like zaygo hostingcart from www.zaygo.com as it has plugins for domain registrars and merchant accounts, so it allows you to automate the registration.
I am sure there are a few more bits of software like that aroound too.
To ptww.net: I do have advice from others about your methodology. But just like you said, it will have problem if
the domain name is taken up. Moreover, I ain't very good
in creating forms. I merely use phpnuke doing up my website.
To tazd9t9: My merchant account do have a shopping cart, but
there will be problem checking the availability of domain name and registration if I am using the shopping cart.
I will try to post my outcome and share with you bloke! Hope to hear from you people again.