32 karma · joined December 22, 2011
1. Given postal code, asking for city and state is pretty much useless. There is a unique mapping from postal code -> city, state. Maxmind used to have free db, but you can download it from geonames here: http://download.geonames.org/export/zip/
2. You don't need to ask for card type given card number. Again, simple regex. Reference: http://stackoverflow.com/questions/72768/how-do-you-detect-c...
3. Only American Express supports name verification. Most other banks don't. So, asking name is pretty much useless. If you already have the customer name in you database, use that to fill them in.
4. Things like 'Company' are just not needed.
5. Phone verification is again something supported by very few banks.
That just cut down 7 fields with no compromise on fraud.
Also, any good payment processor will let you store card information (in a secure manner adhering to standards set by Visa, a.k.a being PCI complaint). So, you could just display the last four of the card along with card type and charge them at a later point of time (think Amazon checkout).
So, payment forms need not be nearly as bad as the one pointed out in OP. But, sometime bad design choices and legacy thinking comes in way.
I work for Balanced Payments. When we were PoundPay (previous avatar of our product), we used to serve the payment frame via iframe. Our form looked like this: http://imgur.com/wF2Z2qZ
It encapsulates lot of points I discussed earlier.
May be, we should have clarified it in the end. But, thanks for pointing it out.
1. Twitter account creation date 2. Number of followers/following 3. Location information (if available) 4. # of tweets
Esp. (1) and (2) would be very useful. When I last analyzed the github accounts, almost all fraudsters had relatively recent github accounts and (unsurprisingly) zero/almost zero followers for their repos. As with most things related to fraud, these do not guarantee fraud protection, but serve as very strong signals.