Stripe Checkout
stripe.com
stripe.com
I have yet to meet a retailer that we can't hit at least 15 - 25% improvement in sales by testing and fixing their checkout.
Take those gains and multiply that times the entire internet and Stripe has the opportunity to make a major impact on the GDP (I'm only half kidding).
A few years back I shared one of our "low hanging fruit" cart optimization strategies that almost always works:
http://www.conversionvoodoo.com/blog/2010/07/proper-placemen...
Despite being nearly 3-year old advice, moving security / trust symbols into the visual field of sensitive information remains an easy conversion gain that we see STILL work nearly every time to the order of 5 - 10% gains.
But the current reality is that even being able to test your checkout process on most of the leading "off the shelf" ecommerce platforms is an incredible pain in the ass (I'm looking at you Magento, Oracle ATG, etc)
If Stripe executes on this idea - scaled cart testing - every dollar that an organization pays for Stripe fees is easily cancelled out by a properly optimized checkout form. This is huge.
>make a major impact on the GDP
I agree on the percentages (I'm myself a big advocate for A/B testing), but I do think that a lot of those gains are made because a certain company becomes a lot "better" than their competitors by employing these kinds of techniques.
Example from my personal life today: I looked at gyms in London. After about looking at 5 I got slightly annoyed: They tried to hide their prices, generally broken UI and I felt they were trying to trick me into a high-paying contract. I then stumbled over site 6: Clear value proposition, not afraid to ask their prices and super easy to do a first training. Sold.
If every single gym out there had a great website, I still would only get 1 gym membership. Though it would probably help if it didn't cause me so much time & pain to do it. But most of the pain is not in the checkout process (punch in credit card numbers). In fact I don't think I've ever not made a purchase because the credit card form wasn't to my liking, the buy/no buy decision generally gets made much earlier and that's an issue that I don't think is for Stripe to fix, but rather for individual companies learning about & implementing great sales channels.
But take the inverse; if every transaction in the world were made more difficult (eg, by removing credit cards and bank transfers, leaving cash and mailed cheques), do you believe that wouldn't shrink the economy?
Worldwide adoption of best practices certainly wouldn't suddenly increase the worldwide GDP 20%, but the rising tide of demand due to reduced transaction friction would lift all boats, so to speak.
I think the point we're making is that if people couldn't make the transactions that they wanted to make, it would definitely shrink. That feels like a bad reason for why an economy should shrink.
I recommend reading Web Design for ROI for other tips such as that. [http://www.amazon.com/Web-Design-ROI-Browsers-Prospects/dp/0...]
- I am not the author, I just found this book interesting in how impactful certain ecommerce design modifications can be towards increasing sales.
I appreciate the sentiment, but it's worth pointing out that online retail I the US only accounts for about 5-7% of the market. The UK is doing probably the highest at around 12-15%. So it might make a blip, but don't get too carried away
The overlay can (and would) easily be imitated by crooks who want to steal credit card details.
It would be much safer for users if you offer a paypal-like service where you store their credit details before hand. If you do this, then this is what should happen.
If the users has already logged in, then the overlay would simply be selecting the amount to pay (which coincidentally is shorter for users) and optionally, which source of fund to deduct from if user has multiple credit cards stored.
Security of funds is more important than ease of use.
What stripe needs to do is sponsor the development of an official rails gem that handles all these things like ActiveMerchant (plus views people can then hack on like normal rails views). Many people are implementing these things over and over again, probably including stripe developers themselves for their own side projects. It is a huge waste of effort and source of bugs for everyone.
One nicely written gem that integrated easily with common practices for User models and people could integrate stripe with a simple "stripe_user :subscription, :email_notify" whatever. That would be awesome.
I realize rails is not the entirety of their business but I'm just saying it would make me and a lot of other people happy.
ActiveMerchant is a payment gateway abstraction layer, and in fact it already supports Stripe. It has two use cases: A) legacy gateways with shitty APIs and libraries (eg. Authorize.net) and B) theoretical portability between gateways. At my company we recently swapped out AM for the Braintree gem because the lowest-common denominator made it inferior for interfacing against Braintree, and the payment interface surface area in the app is small enough anyway that the theoretical advantage if we switch payment providers is negligible anyway.
Stripe if anything has a better API and ruby library than Braintree (Stripe uses a lot of Ruby internally is my understanding), so what's missing?
A higher-level gem that gives you plugin payments would necessarily start making assumptions and compromises that would quickly whittle down the number of ideally-served use cases, whereas the Stripe API as it stands now is at the granularity to fit the maximum number of use cases without being over-complicated. If you want to make something easier I think you veer into clumsy high-level components that is more akin to Drupal than Rails.
I'm not sure I agree that a higher level gem would be of limited use or only of use to a few applications. I think it can definitely be done in a way that would have helped me big time in all three applications I've integrated with Stripe despite their unique needs.
It seems like a customer would do the following:
- Fill out all data except billing info
- Click the "Pay with Card" button
- Overlay comes up, they enter billing info, then click "Pay $X"
- Overlay closes, token is passed back to form, form is automatically submitted via JS
The proof is in testing and data of course, but my gut tells me people prefer just a single form and button. That's why I like the original checkout method.
The mobile part is great BTW.
For instance, collecting an email address would have to be done elsewhere.
Fortunately, the "old" Button <script> still works for now. i.e. <script src="https://button.stripe.com/v1/button.js ...>
Hurry up and offer a ckeckout with stripe option. I'm tired of dealing with Paypal. Thank you.
That being said they're making insane progress. I am very happy with them.
It looks like `token` is the only callback you can pass to the popup and it receives nothing but the stripe token. Is there any reason not to include more information?
For comparison, this is what stripe.js gives you
{
id : "tok_u5dg20Gra", // String of token identifier,
card : { // Dictionary of the card used to create the token
name: null,
address_line1: "12 Main Street",
address_line2: "Apt 42",
address_city: "Palo Alto",
address_state: "CA",
address_zip: "94301",
address_country: "US",
country: "US",
exp_month: 2,
exp_year: 2012,
last4: "4242",
fingerprint: "BzXGiNioaEH4iECL",
object: "card",
type: "Visa"
},
created : 1358552058, // Integer of date token was created
currency: "usd", // String currency that the token was created in
livemode: true, // Boolean of whether this token was created with a live or test API key
object: "token", // String identifier of the type of object, always "token"
used : false, // Boolean of whether this token has been used,
}
My app uses this information. So as much as I want to, I can't just drop in the new code.I could use Stripe.getToken but I don't see why I need the extra roundtrips to the server (one for stripe.js, one for getting the info about the token)
Edit: Never mind, I didn't read the docs carefully enough. The callback receives all that, my bad. In the stripe.js docs the parameter is called response and in the new one it's called token. Sorry ;)
"Paymill is a cloned business, and thus they are bad".
"Cloned businesses are bad because they are cloned".
"If you won't accept my assertion without any justification, I don't want to talk to you".
Do you have any actual reason for your opinion, or do you always form your beliefs from instinct and feelings?
Might be legal, but it's certainly not an ethical way to do business. Additionally, I would never trust my business with a company that was in it for the money, especially if they could shut it down at any time, as they often do with other clones that aren't quickly adopted.
Lastly, it's clear you and I have a different set of values, therefore I am uninterested in persuading you of anything. The fact that you don't see anything wrong with cloning other businesses makes you a perfect customer for one that does.
Is it really so hard to understand, or are you being intentionally obtuse?
Most companies are in it for the money, that's why they're formed. Do you think Stripe will continue existing if they don't make money? That said, the part about shutting down companies that aren't quickly adopted is the only real argument you've made in this discussion.
Copying elements from a startup is ethically dubious, sure, but Paymill is providing a valuable service to people who wouldn't otherwise have it. It's "Stripe for Europe", but why is that bad? If frozen yoghurt is all the rage in the valley at the moment, is it unethical for you to open a frozen yoghurt shop in your home town?
Blasting Paymill for copying the model of Stripe is not in the same category like calling distribution of copyrighted material theft. If executed well it is a net benefit for society.
Stripe isn't here, and any desire to support their innovation whilst waiting for them to arrive leads to European startups potentially missing opportunity.
It's our responsibility as European startups to get money through doors, and if Paymill is here doing that for us today, then give us a good reason not to use them.
If and when Stripe arrive, I'm sure that many HNers would switch to Stripe as the innovation and support is great. But fact is, they are not here yet... and the only thing that matters is how to process payments in a way that is smooth and minimises our dev time to implement.
If Stripe want our business, then on the day they launch across Europe then they can fight for it.
Until then, Stripe are not here... they aren't even a contender because they are not here. Startups are not going to wait for them on a promise that it will be "soon".
The great thing about the Paymill API is that it is such a Stripe rip-off that if we implement out payment flow based on their API, then we have in fact given ourselves the least painful route to later transition to Stripe.
Implementing Paymill gives us a more likely route to transition to Stripe than implementing one of the incumbents flows (PayPal, MoneyBookers, etc).
So of all options actually available to European startups, Paymill look pretty good.
My advice: do not spend time integrating with their API before they authorise you to do real payments.
Would prefer some sort of a seal or something on the popup to indicate that their payments are safe, a few clients asked. At least an option to customize displaying that seal would be great and also may be the type of credit cards Stripe accepts.
Is this Checkout thing same as Stripe.js? I didn't get a chance to checkout (lol) this fully yet!
Some users want that behavior. But we're rolling out tools that give you the option to decline charges if the CVC fails.
Can you please also answer a few of my other questions including the reliability seal thing? I'm sure that would be a simple change from your side and the developers may not even have to do a thing.
https://answers.stripe.com/questions/does-stripe-have-settin...
@pc: Why would anyone want that behavior? Could you elaborate?
How does my app tell the button the final price?
How does the button send the token to my app?
What does the user see after they pay? Does the button display its own receipt or do I build that?
So, in other words the price is client-side, and only used for display. The token gets submitted in a form to your server. And you build the receipt page.
I normally uncheck the "Save This Card" option, with Stripe they don't allow this.
Sample size of one company, so take this for what it's worth.
Why doesn't it auto-fill when the user types a valid zipcode? Seems like cheap satisfaction.
zip->state is not a many to one mapping, it's many to many.
Example: Zip code 19973 spans both maryland and delaware.
https://www.google.com/maps/vt/data=Ay5GWBeob_WIPLDYoIWcfVXx...
The dashed vertical line is the maryland/delaware boundary.
You can see there are people both in maryland, and delaware, who have that zip code. The post office is in seaford, de.
This actually came up in the real world in some elections stuff, because these folks often list their mailing address as in seaford, de, but vote in maryland ;)
Big point: I wouldn't want it user-facing (e.g. the ubiquitous self-checkout that is online shopping), but it might be a nice tool for power users (e.g. cashiers).
How about the ability to subscribe someone to multiple subscriptions now?
nudge nudge.
pweassee
Basic example: http://substack.net/projects/pricing-widget/basic/ Fancy example: http://substack.net/projects/pricing-widget/browserling/
The problem seems to have been going over for around 8 hours now.
We've received no reply from their support in 4 hours.
Anyone have any ideas how to get in contact with them at this time?
On a signup form:
1. Enter email
2. Enter password
3. Click the Stripe checkout button, div popup, fill in and click pay, popup goes away, Token created and added to the form
4. User clicks submit on the original form
Is that right?
I'm writing this on a machine with Chromium and Firefox on a nearly new Linux Mint 14 install (all packages are up-to-date) with no browser extensions or other weirdness. When I click the "Pay with Card" button in the article, both browsers open it in a new tab.
Are my browsers broken, is Stripe's code broken, or is there some miscommunication about what the button is supposed to do?
From what I can see, there are 2 iframes for the button and the hidden overlay. Clicking on the iframe button enables the overlay via some sort of iframe to iframe communication on the parent(host) page
I think it would be clearer if I saw some examples.
If you're not using SSL, you should just assume that an attacker can break your page in every conceivable way.
I'm picturing the user clicking a checkbox for an add-on product without having to make a round-trip back to the server.
Not on a secure site? Well, the stripe widget just popped up, so it looks legit...
You get the idea.
Just wanted to add, the demo works if you use the 4242 sequence for all fields (YMMV).
data-panel-label="Begin Free Trial"
But on the button I'm still seeing: Begin Free Trial $20.00
Not sure if this is the intended behavior, but I just can't see how it makes sense for a free trial.Keep in mind that this checkout dialog does not charge the customer anything, so the amount is purely cosmetic.
data-amount="2000"
It looks nice but every payment solution where the client can arbitrarily change the amount they're going to pay is inherently flawed.They would not make a glaring mistake like this (though their users easily could).
Short-sighted... Mobile is growing at a crazy rate in ecommerce.