Hacker News new | past | comments | ask | show | jobs | submit login

To expand, it's these 7 lines. (Actually 12)

    <form action="/your-server-side-code" method="POST">
      <script
        src="https://checkout.stripe.com/checkout.js" class="stripe-button"
        data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh"
        data-amount="999"
        data-name="Stripe.com"
        data-description="Widget"
        data-image="https://stripe.com/img/documentation/checkout/marketplace.png"
        data-locale="auto"
        data-zip-code="true">
      </script>
    </form>
- more or less. Maybe not precisely that, but it's the bit where you add a payment form to your website.

It's a nice headline, but it really leaves out the tremendous amount of back-end work that went into making that front end easy to use.




Actually it's 1 line.

  <form action="/your-server-side-code" method="POST"> <script src="https://checkout.stripe.com/checkout.js" class="stripe-button" data-key="pk_test_6pRNASCoBOKtIshFeQd4XMUh" data-amount="999" data-name="Stripe.com" data-description="Widget" data-image="https://stripe.com/img/documentation/checkout/marketplace.png" data-locale="auto" data-zip-code="true"></script></form>


There always has to be that guy...


Actually, it's 371 bytes.


and then there's this guy.


Actually it's 348 bytes.

    <form action=/your-server-side-code method=POST><script class=stripe-button data-amount=999 data-description=Widget data-image=https://stripe.com/img/documentation/checkout/marketplace.png data-key=pk_test_6pRNASCoBOKtIshFeQd4XMUh data-locale=auto data-name=Stripe.com data-zip-code=true src=https://checkout.stripe.com/checkout.js></script></form>


And then there's that guy from the CodeGolf StackExchange.


"I shaved off 3 bytes with eval() and a regex"


[flagged]


You can shave 4 bytes off of your comment by omitting the redundant "www." in your first link.


Maybe I like taking up more bytes with my comments ;-)


The PayPal form is roughly the same number of lines. The real break through for stripe was it was an alternative to PayPal with a modern UI.


Nope. The Stripe advantage over PayPal is that Stripe operates more like a merchant account, where the buyer sees the seller's name on the credit card statement. PayPal injects itself into the checkout process, Stripe is basically a white label. Stripe also has easier underwriting. I suspect Stripe is taking more business from merchant accounts/gateways than PayPal, because they are different markets.


As someone that selected stripe to process orders for a product were were launching somewhere around 2012, it was because of the APIs and developer sandbox.

Paypal was ugly to work with, felt crufty, etc. Stripe had pip installable modules, awesome documentation (live code samples in docs and sandbox), and was easy to integrate into our tests.


And most importantly: Stripe does not randomly decide your funds are suddenly theirs for the next 6 months to a year.


That's the least of it. Paypal automatically puts you on a 21-60 day rolling reserve once you hit a certain level. Small businesses can and have had 30%+ of their revenue unavailable for two months. That's your entire profit margin gone. It makes it impossible to grow a small business. And of course they will not respond to anything for months if ever. And it never gets better! Companies with millions in revenue still get these problems.

Paypal has no place being used by anyone trying to start a company. They are awful.


Before Stripe - I had to take a loan out, and make the switch to Authorize.net so I could get my company off PayPal and its 60 day reserve - otherwise it would have folded. They were perpetually holding tens of thousands of dollars at all times.


Fraud and charge backs are worse [with Stripe] than with PayPal.

https://news.ycombinator.com/item?id=14463971 (2 months ago)

Stripe launched a fraud detection tool in October 2016; not sure if this comment took that into account.

https://stripe.com/blog/radar (2016)

https://stripe.com/blog/better-dispute-management (2012)


They'll do that sooner or later. Everyone in the money-handling industry has to randomly lock-up funds and not tell you why, because that's what anti-money-laundering laws require.


Ok, but there's a difference between doing that because you are required to by law, and doing it because you've chosen to adopt appalling business practices.


This is how PayPal lost my business initially; now that I'm a part of the payments industry, I use PayPal sparingly for much else.


PayPal had a developer sandbox back in 2010 when I wrote our client code. Honestly I don't remember it being difficult or tricky. The worst aspect was their confusing documentation which tended to mix up various different services and APIs such that it was hard to figure out which was the current, appropriate one. Perhaps that was the Stripe advantage: a single obvious course of action to take.


One of my best upvoted stackoverflow answers is about a paypal sandbox bug (or "undocumented feature") where it would disregard the port in the pingback url.

Just generally the sandbox was horrible, it had a weird 'double login' system where it often got confused between whether you were 'inside' the sandbox logged in as a fake user or outside logged in as your paypal account.

And you're right about their woefully confusing documentation, it was definitely hard to understand which payment flow you were trying to use and which was appropriate.


I suspect also that the marketing folks re-branded the various services on a regular basis so you weren't even sure if two different names for something actually referred to the same thing.


The sandbox was a big hack. I worked there internally and it was a pain even inside.

Maybe it's a bit different now, but I haven't looked back. :-D


It's actually gotten worse.

PayPal tried to "modernize" their old crufty SOAP API with a REST-based API but ended up creating a separate half-functional, poorly documented, buggy layer on top of it that actually loses payments sometimes. I processed millions of payments through it and actually have their support people admitting the problems.

Their only hope is a reverse-takeover from Braintree. I'm not holding my breath; I've done my last PayPal integration. Forget all the "paypal will hold your money" concerns - the real problem is that they will loose your money in the wonky Rube Goldberg machine they've created to process payments.


In a series of calls with the top tier of support at Paypal, no one was able to even answer which API was the best to use. I was told not to use SOAP (or NVP), because they're ancient, not to use REST because it wasn't ready yet, and that the Braintree API around PayPal would never support the features we were trying to implement.

The project just ended up getting scrapped.


Ease of development was our number one reason to use Stripe for sure. We did end up adding Paypal after and it was a pain to work with.

Stripe was so reliable that we had clickety-test that used their real sandbox API to make sure in our CI that payment kept working.

Whenever someone brings up Stripe it always brings happy memories. I've never worked with a third party API that was as nice as theirs. Their Ruby SDK helped with that of course.


> The Stripe advantage over PayPal is that Stripe operates more like a merchant account, where the buyer sees the seller's name on the credit card statement. PayPal injects itself into the checkout process, Stripe is basically a white label.

You're talking about PayPal Express, which is the PayPal form most of us are familiar with.

PayPal has a number of other services, such as Payments Pro, and PayFlow, which act just like a Credit Card Processor, ie. the customer has no idea it's PayPal on the backend - they enter their credit card info on your checkout form like normal and click submit. The customer's bank statement will state your company name, not PayPal.

Majority (all?) of the PayPal horror stories you hear are from folks using PayPal Express with large amounts of money coming from weird places. Payments Pro really is a different class of service, complete with your own representative you can call up 24 hours a day. You can also setup a nightly automated sweep of any funds to your real bank account.


But why would anyone use a shitty company over a good one, no matter the service levels?


Because you may live in a dark patch: https://stripe.com/global

EDIT: Nevermind: "Currently, PayPal Payments Pro is available in the US, UK, and Canada."


  The Stripe advantage over PayPal is that
  Stripe operates more like a merchant account ...
Stripe is an ISO with First Data Merchant Services (FDMS, I believe now owned or controlled by Wells Fargo) doing the actual processing and, as such, assumes a different legal role than PayPal (which is a VAR for Paymentech). This is how Stripe is, as you say, "basically a white label."


Question is when will Stripe (or someone else) operate even =more= like a merchant account (ie, interchange+ pricing).


They already do. You just need high enough volume.


Don't forget about their fantastic API and documentation.


We moved from PayPal to Stripe. Yes, integration was much easier, because of the simple and effective API and great documentation (good examples with your own data included - brilliant!).

But we switched because PayPal just did not work. A significant percentage of card transactions failed for absolutely no reason, despite "good" customers (school teachers from first world countries), no chargebacks and no fraud. Cards would routinely magically work the next day, and in the end we came to believe PayPal arbitrarily failed card transactions to force people to set up PayPal accounts.

Moving to Stripe resolved this overnight. We'll never go back.


Another great reminder to all you founders - don't underestimate the power of great product design.


And don't underestimate the power of new and... different. Many founders pass on markets they think have no room for innovation or new entrants, only to leap into some small marketless crevice.


> The real break through for stripe was it was an alternative to PayPal with a modern UI.

Paypal's documentation and the sandbox process is so atrocious that I had to question my own intelligence. Turns out the problem was with paypal and not my IQ.


The PayPal form also involved redirecting all your users over to PayPal. Stripe has always integrated into your site/service which is part of what made that form so nifty.


PayPal also offered a service called Payments Pro which did not do any redirects.


Yes and it was quite a bit more work to integrate. Stripe hit the sweet spot of being easy as possible and integrated into your site.


Actually processing the response is significantly easier with Stripe.

Before Stripe, PayPal was some clunky API with a endless amount of different accounts with different pricing structures.


It's a "nice" headline for Bloomberg's advertisers (and hence, for Bloomberg) in that it gets people to click on the link.

But in terms of information content, it's a horrible headline (for the reasons you so succinctly describe).


Wait, the /your-server-side-code bit seems like the most difficult. Did Stripe not implement this aspect as well? I would have no idea how to securely process credit card transactions server-side.


If I remember how they worked (last did stripe integration a ways back), the script instruments your form's submit event to do an (ajax if possible) POST to stripe's server, which processes everything, and returns back a (merchant specific) "token" representing a redeemable charge to the customer. The form is then posted to your server, but all it gets is the "token", which it can then use your private merchant key to redeem behind the scenes with their server.

So you get an anonymous "charge" token that you can revoke if a later part of the checkout process fails, and CC data never touches your system.

(I think the markup for that was a little bit different than what was posted above though).


Correct, and the big reason for that is it means you don't have to be PCI compliant since the card never touches your server, only stripes. That's why Stripe blew up, Paypal had no such offering for allowing you to use your own checkout form but not have to pass the card through your server.


Not true, PayPal Payments Pro offered that.


That product seems to have a marketing problem. I've heard plenty of PayPal horror stories over the years, but this thread is the first time I've ever heard of Payments Pro.


Not exactly, the Paypal transparent redirect one still bounces you through paypal's URL; the Stripe one never leaves your domain.


I think they did eventually. I remember trying to use Stripe for a project during college (2012ish) that involved building a website with a REST integration in C#. My rtfm'ing skills were much worse back then so I could be wrong, but yeah, you had to do a bunch of server-side implementation and make calls to their API. It seemed quite challenging to me at the time, but looking back, it really wasn't. They've gotten rid of that extra step now though. You can just drop in the javascript and their html form with api keys and you're ready to go.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: