I was buying tickets to fly to Auckland for Radiohead ("Hey William," you say. "Aren't they playing Sydney?" "Yes," I reply. "I didn't know I was moving to Australia, then.") and as much as I love Air New Zealand, being faced with this makes me sad:
Maybe it's because I've been implementing credit card processing at work over the last couple of days, but this kind of laziness in an interface really gets to me.
Dropdowns for numeric dates are the scum of the earth
The expiry date thing is crap because GOMS analysis will tell you that it's faster to type a number than select it from a dropdown list (this is something I picked up at UX Australia: check out these slides). I'm not going to dwell on that. I understand why they're doing it but I want them to know that they're wrong and they need to look at the choices they've made in their life.
If you're asking me what card I have, you're wasting my time
Second, "select provider"? Pull the other one. Credit card numbers encode the issuer within the first six digits of the number (wikipedia). While I will concede that, yes, Air New Zealand has to deal with JCB and Diners along with the Big Three that I have to deal with, I don't think that's any excuse. I had to go and look it up, but still. That's hardly the end of the world.
All you have to do is read the card number as they're typing it (or wait til they focus out) and write a set of case statements to handle all the IIN numbers you support. Adding new providers is going to be about as difficult as adding a new option to your list of supported cards (unless you're getting that from a database, I guess, but that's not the point).
The only reason I can think of to put a dropdown for card issuer is to give an indication of the cards you support. There is no reason to force the user to select an option from a dropdown to do this; you can do it with a series of icons (which seems to work fine for Paypal, and I assume they know something about payments). If you want to get real fancy you can highlight the card provider they're entering, as they enter it. That's what I did today, and I was unnecessarily pleased by how neat it looked.
If the user still manages to miss all the signs that you don't support their card, their payment will just fail when it reaches your payment gateway. I'm assuming you're already handling this situation with some sort of error message. Stop getting in your users' way.