Show HN: Card – An interactive CSS3 credit card form
jessepollak.github.io
jessepollak.github.io
1) On the already crowded payment form, I don't want to devote a hell of a lot of space to something that is otherwise inconsequential (a picture of a credit card)
2) Is it a great idea to broadcast someone's card numbers so clearly? The graphic is so obviously a credit card, it would be easy for any onlooker to spot and steal.
Really, this seems like aesthetics for aesthetics' sake, which I traditionally shy from, but I always like seeing people take a swing at something.
yes - anything that signposts card data clearly to an onlooker is problematic, but any malicious shoulder surfer will probably be able to spot a payment page a mile off in any case. This might however, have a small possibility of encouraging opportunistic theft.
I think the bigger threat to this probably comes from the networks (MC, VISA, AMEX etc) who get VERY possessive about mock-ups / card image facsimiles that use their logos. The brand logo protection that they enforce is pretty strict and I would imagine this approach would not be welcomed. I'd like to be wrong, but my experience with the networks makes me pessimistic.
Basically those aren't their logos. They're slightly inaccurate imitations. Most big brands will be upset if even a few pixels are off when their logo is displayed.
All you need is to load some encoded image off of a third server to leak card info via a side channel, if your code is underhanded.
I would trust "one line of code" if it's a solution from Google or something, but for something this small I don't see how going with a small third-party solution is secure.
- OP: why not sell this solution to a larger payment processor as a complete solution, so they don't have to develop it themselves?
You'd say you'd trust it if it was from Google - in this case, if you use it, it's coming from you, on your server, under your control. I'd trust this far more than a Google-hosted closed-source library - not because I wouldn't trust a Google payment endpoint, but because this is totally under my control, and something from Google isn't.
Not sure what you're talking about with the encoded image. Doesn't make much sense.
There are no real security problems with this whatsoever. The problem is, unsavvy users may think there is, due to the visual resemblance of the onscreen card.
Make your credit card form better in one line of code
and With one line of code..
$('form').card({ container: $('.card-wrapper') });
You get..
Animations for 4 different card types
An intuitive experience for your users
Pure CSS, HTML, and Javascript (no images)
100% free and open source
Which certainly could be used by someone who doesn't understand all this.All I am saying is that for us as developers it is not so simple either. . . we also have to be vigilant.
That doesn't mean the customer won't conclude it is legit, or that we don't conclude the same thing.
Recall that I had responded to,
>Looks gorgeous. I can't help but wonder if people unfamiliar with technology and ecommerce would be deterred by such a form?
Certainly I personally would be deterred (to an extent) from using this form without at least a cursory audit and verifying the identity of the person who wrote it.
This will naturally be less and less important the more eyeballs this sees. But as a simple tool, perhaps it is not that many.
Do remember that if I were wanting to get my hands on people's credit cards, getting developers to use this kind of script while having a well-hidden side channel (perhaps quite well-hidden - it could somehow encode cc details in the timing delays to a different server, potentially, so that it is not at all obvious that the delays even correspond with the data, it could just look like visualizations getting loaded as the person types) -- then this would be one of the more clever ways I could go about doing so.
I don't see how we're 'arguing' about this? We need to check what we are using, just like customers need to check that this is legit.
The idea that anyone would successfully steal CC info by putting up an open-source client-side jQuery plugin under his real name is just silly. It's not something that you ever have to worry about in the real world. Sure, I'll concede that if a number of absurdly unlikely things happened, something like this could steal CC info.
Besides, you're missing the point. We're paid to vet this stuff. Customers aren't. Your choice of whether to use this or not harms no one - but customers being scared of an odd-looking CC form is harmful to business, and a valid and interesting point.
But it looks gorgeous for sure and it's probably part of the future.
This is great work.
There's a few annoyances that threw me off:
1) Like others mentioned in this thread, I first tried to enter credit card details directly on the card. I was initially blind to the text inputs underneath the card. If the card was initially hidden, then faded in to the left/right of the input form that might alleviate this confusion. The problem is the card is so beautiful and neat looking I immediately anchor to the card instead of the input form.
2) When entering an invalid date or credit card number there's no visual feedback. It's very common to be blind to your own input errors, which necessitates clear communication of error state.
3) Even more confusing, I can't tab to the CVC field when the date is invalid. But I can tab to the name field when the credit card number is invalid. This inconsistent behavior initially made me think the form was "broken".
If you're not the merchant of record using this form could very well violate your terms of service for whatever credit card company you have your merchant account with, and/or the IPSP terms of service.
Using this can result in terminating your merchant account or temporary suspension depending on how they take it.
The reason why is that the logo's are only allowed to be used by the merchant of record, for many of the parties interested in that this will be their IPSP. So verify prior to doing this that you actually are allowed to use the card association logos. (And for that matter, that you're authorized to capture the card details!).
Please be careful, if you lose your merchant account it could be a while before you get it back, if ever.
Most people that will be taking credit cards directly via a form like this will have merchant account and be authorized to use the credit card logos. If they are using a service like PayPal they are mostly redirecting to their service providers site for processing not taking the card info directly.
The usage of the network logos are not as strict as you are implying here, even if you use paypal you can use the Network logos. https://www.paypal.com/us/webapps/mpp/logo-center
There are many approved banners and logos that make use of the card network logos.
I have never had a payment processing agreement where I was barred from using the Network Logos, nor would I sign up for such a service, in the off chance I am wrong please back up your claims with citations to actual laws or statements to support your claim
Using logos in combination with a credit card capture form comes with a different set of rules (and a different contract!) than just being allowed to use some third party processor that does all the work for you.
If you want to capture the cards yourself instead of outsourcing the job to an IPSP then you're going to have to be at a minimum PCI compliant. This goes for any company that stores, processes or transmits credit card information. The tipping point is somewhere around a million $ US per year. Below that the cost of being in compliance outweighs the fees the IPSP charges for their service handily.
The word 'credit' in credit cards stands for 'trust'.
https://www.google.com/search?client=ubuntu&channel=fs&q=ori...
People trust those companies and by extension trust those logos. That's why when you use them you will be held to the rules so strictly because credit card companies do not like it when their logos are used to give an aura of trust to an otherwise non-trustworthy situation. Just the PDF about what you can and can not do visually with the logo runs to lots of pages.
Yes, there are plenty of ways in which using those logos is absolutely ok, and where using this form is (probably) just fine.
Everybody that is PCI DSS compliant can likely use it without any problem. Yes, there are also plenty of ways in which using this form is strictly against the terms of service, typically this includes everybody who is not PCI certified, which is almost every two bit merchant on the web that outsources their payment processing and credit card capture to some third party.
So, if you use a 3rd party solution that serves up the payment form and that handles the card capture and subsequent processing for you and you have a contract with them rather than with the card company you can use the logos and nobody will care, mostly because you can't do much harm (such as your paypal example).
But if you are in a situation where you have a merchant account but you are not the merchant of record (this means you are a sub-merchant, such as when using any one of a number of IPSPs) then using this form is most likely not a good idea.
As for me backing up my claims, I'm not going to attach a copy of my merchant agreement to a comment on the web, you are totally free to disregard what I wrote. This advice is worth exactly what you paid for, and everybody that has a merchant account but is not the merchant of record (aka a 'sub-merchant' in payment processing lingo) is totally free to inspect their own personal copy and for everybody else this does not matter at all.
Further reading on the subject:
https://www.pcicomplianceguide.org/pci-faqs-2/
A list with a sample of payment facilitators (if you use one of these you are quite possibly not the merchant of record):
http://www.mastercard.us/merchants/accept-mastercard/payment...
Note that this is not an exhaustive list by a long shot.
The mastercard FAQ which has a nice little blurb about who is and who is not a merchant or record:
http://www.mastercard.us/merchants/assistance/faq.html
Also of interest:
http://www.mastercardbrandcenter.com/us/images/acceptance_ma...
Less interesting (branding, not acceptance marks):
https://www.mastercardbrandcenter.com/us/getourbrand/index.s...
Oh, and an afterthought: there is yet another important logo, the VBV one, you can only use this if you're actually part of the program.
Edit:
I Just looked at your list of "Payment Facilitators". If you use one of those processors YOU DO NOT HAVE A MERCHANT ACCOUNT. I think that is where the communications break down is happening, a merchant account is a specific thing, Using 2 Checkout, or Stripe (which is the service this seems targeted at) does not mean you have a "merchant account". None of these services claim to give you a merchant account.
Further I can find thing to support your claim that using this form with Stripe or another "Payment Facilitators" would be in violation of any agreements. However when I replied I was not talking about people that use these "Payment Facilitators", a person with merchant account, a person that uses a full gateway like Authorize.net which a huge number of merchants do should not be at all concerned with using this form
None of the links you posted have supported your claim, nor can I find any supporting documentation to back your claims. You do not need to post your mythical very restrictive merchant agreement, you should just post the text about that your talking about. Or find me any company most of which have their standard agreements and terms online, that says anything about this. I have look at most of the major payment gateways, 3rd party processors, and various others people, plus I have contacted some people I know that still work in development of payment systems (I have been out of that game for about 5 years now) and none of them have any clue what your talking about.
I'm not sure what you're trying to achieve here, some kind of anecdotal proof that I'm wrong?
You're completely missing the point of the sub-merchant situation, one where you have a contract with both the card companies (one for VISA, one for MC etc) and a contract with an IPSP. This is the situation I'm talking about and it is one that is quite common for mid-sized merchants, just a bit too large for the various parties listed in those links and too small to be dealing with the overhead of becoming PCI compliant.
Whether you and your friends are aware of that or not is frankly immaterial, I happen to be in that precise situation so I think I know what I'm talking about, whether you believe me or not is your problem.
I'm under no obligation to post any text here whatsoever, this is an internet forum, not some kind of court proceedings and the claim I'm making is not so outrageous that it requires extraordinary proof to satisfy you.
If this was an official position of either Visa, MC, or an "IPSP" you would be able to post a link to their official terms that spell out that position, since you can not your comment should be ignored.
As to PCI Compliance, I will say again, ALL PERSONS TAKING CREDIT CARD MUST BE PCI COMPLAINT. Small, medium, large it does not matter, if you accept credit cards at all you much be PCI Compliant. Level 4 Compliance is a joke, and even the smallest of small business can become Level 4 Complaint...
Level 1, which is what a Walmart would be, is hard to get and most online merchants do not even attempt to get that.
And as someone else said, I also tried entering ON the card rather than below it.
And this one which doesn't https://news.ycombinator.com/item?id=6692075
Example Amazon:
http://i.imgur.com/aK8K4UY.png?1
Single name on card field Card # Dropdown for EXP
Example Stripe:
Single name on card field Card # Exp / CVC
Less is more when it comes to this point in your conversion funnel.
And the fundamental conversion issue around collecting a CC at this point in cycle isn't usually design, it's trust.
There's a direct statistical correlation between less fields and the amount of chargebacks received.
So, yes, less is more for a conversion funnel, but do not assume that it comes without a cost.
Spot on and completely agreed.
But in my experience getting that CC at nearly any cost, even @ the end of a long sales process, delivers net gains even measured against returns etc.
For enterprise (eg anybody that can afford it) there are fraud prevention solutions in place to balance the outcome and I've been thrilled watching STRIPE strip away the complexity for "the rest of us".
But point well taken, multiple considerations in testing anything in your funnel and always optimize to highest LTV / KPI.
Point of reference for the above is spending the last ~10 years running CRO projects across dozens of verticals, millions of transactions.
At first glance I think users would be extremely confused by what is happening in terms of what to fill out, if not full out distracted by the animated card.
However, how does this stack up against the recent UX trend of moving away from skeumorphism? Why should a CC number be represented by an actual plastic card that is coming to life and flipping around on my screen?
I believe the future of plastic credit cards is limited given the security loop holes etc. Companies like Square, Google, etc. are already championing transferring money over native internet identities like email addresses.
One great optimization skeuocard has is it only asks for the cc# at first, then the other fields appear as you type it in. So the form is less daunting at first.
When one field is valid that field no longer appears editable, so if there was a mistake in the spelling of my name it took me a minute to figure out I can still click on my name to change it.
It doesn't tell me the card number is invalid until after I enter an expiry date, that may be legitimate but it caught me off guard.
I don't like it. It's too confusing for what should be name, card number, expiry and security number. It doesn't address the fact that after I fill out those four fields, I still need to enter my billing address in what would be at least four additional fields regardless.
More generally, while I do think that entering card details is a bit of a ball-ache, I don't think the solution is having a picture of the card on screen...
Interesting reaction by test group when deploying....test group being a small group of coworkers. Without announcement, they immediately were untrusting of it and thought it was somehow consuming the credit card information maliciously. This is the security climate we find ourselves in. heh But after assuring them, they thought it was pretty neat/fun.
Fun.
The algorithm is public domain and all it does is tell you who issued the card which doesn't seem like an issue to me
Easily solved by simply adding treatments for more card types, and styling the entire card isn't that much more effort than just displaying an issuer logo.
Where this starts to get really interesting (from a slick + branded perspective) is when you start handling gift cards.
Are we so used to crappy CC forms, that a nice, flashy one (which I know is open sourced on github - I can validate if they are doing something bad) is slightly scaring me?
Wow that's the power of crappy design fed to us for years.
EDIT: I apologize it works! (note I did try it but apparently mis-typed my first four digits ....)
ReferenceError: hljs is not defined
On line 123. Hope this helps, good luck.Bonus points for the form still working right through all of that.
$('.active form').card({ container: $('.card-wrapper')})Same issue here, but that's what it should look like.
Two minor points...
It would be nice if it checksummed the card to ensure the entered number was a valid credit card number on form exit.
You can get 17 digit credit card numbers now.
Perhaps you should ensure it works with those data entry methods?
It's insanely easy to integrate, and has an awesome (modal) payment form.
Any A/B test results on conversion rates?