php[architect] logo

Want to check out an issue? Sign up to receive a special offer.

A Wholly Superficial Review of Stripe

Posted by on December 5, 2011

Processing credit cards is hard. I mean really, really hard. For someone like me who manages his own server, writes his own code, and tries to keep all the balls in the air, the idea of maintaining a PCI-compliant server gives me the heebie-jeebies. I’ve looked at other systems and as much as I hate to say it, up until now, PayPal has been the best option for small sites like mine. However, for code monkeys, a new option is now available, Stripe.

Stripe bills themselves as “payments for developers”; so right away, you know they have identified a group – me – that needs a service – payment processing – and is targeting just that group. I love their single-minded focus. I also love companies that don’t take themselves too seriously, and if you take a look at their FAQ, you begin to realize that even though their service is dead serious, maybe they aren’t.

So when I started hacking together a simple script to sell my new book online, I decided to give Stripe a chance, assuming I would fall back to PayPal all too soon. Not so this time. Using nothing more than their tutorial, I was able to start processing test transactions in about 20 minutes; that was incredibly cool.

To get going, you have to set up an account. This involves the normal churn of email address, password, etc. However, then they add a twist; you have to complete a test transaction. You can do so in the browser or use the curl code they supply to do it from your server.

Once you are verified, you are ready to process all the test transactions you want. Getting to the point where you can process real transactions takes a bit more information, though.

It would be silly of me to publish code here since everything you need to process a test transaction can be found in their “Forms Tutorial”. Complete that, and you can fire off test transactions, play with their code and mold it into something that can work for you. Once you have the front end working, follow through to their “Payment Tutorial”, and they will show you how to finish the transaction in either PHP, Ruby or Python. Seriously, 20 minutes of copy ‘n paste, and you’ve got a working system that you can dissect to see how it works and how you can integrate it into your system.

The thing I like most about Stripe is that it keeps the credit card information off my server totally; thus eliminating the need for it to be PCI-compliant. They encrypt the credit card number in JavaScript and send it to their own PCI-compliant server via an Ajax call. What comes back to you is a token representing the transaction. You send that token to your server and complete the transaction. It is a beautiful system, and I am honestly surprised someone hasn’t done it before. Then again, the best ideas are like that.

The only downside I have found so far – and this may be a deal killer for some – is that they hold your money for 7 days before paying. Given the ease of implementation and the convenience that Stripe provides, this is a limitation I am willing to live with, at least for this project.

If you need to incorporate payment processing into your system or are building out something that needs payment processing, you need to at least consider Stripe. It’s not right for every project – no tool is. It is however, a solid tool that you need to be aware of for future projects.


Cal Evans is a veteran of the browser wars. (BW-I, the big one) He has been programming for more years than he likes to remember but for the past [redacted] years he's been working strictly with PHP, MySQL and their friends. Cal regularly speaks at PHP users groups and conferences, writes articles and wanders the net looking for trouble to cause. He blogs on an "as he feels like it" basis at Postcards from my life.
 

Responses and Pingbacks

Cal,

I just discovered Stripe myself and I whole heartedly agree with everything you said. It *is* a beautiful system and I was marveling at the simplicity of it.

Though, 7 days is actually better than a traditional payment gateway. Say someone like authorize.net. We have been using them for credit card processing for years and they hold money for 30 days. Just the way it is. 7 days is a great feature!

-Mike

Stripe looks to be a great solution that will fit the bill for many.

@ Mike 7 days for funding is not exactly a great feature. A traditional payment gateway/merchant # combo should net you funding to your checking account, within 48 hours.

@ Mike – Authorize.net holds your funds for 30 days? Huh? Not sure why… I’ve been using them for years and it’s a 3 day hold until funds are in the bank.

I’m suspecting their 7 day hold on funds – the float – is how they’re making their money… A bit too long for my taste…. can’t imagine a 30 day hold!

Russell

@ Cal – Nice write-up.

Just to chime in…
In my experience running a few drop ship sites using Authorize.net, it is true that we would definitely receive the money in our bank account within 2-3 business days after performing a batch capture; however, I believe the Merchant Account Provider one chooses to go with is where a percentage of funds can be held for “RISK” purposes.

I have heard of some horror stories for people who request a merchant account with an estimate of say $2000 – $5000 in estimated monthly revenues (whereby a credit check is then performed for that amount of risk). Then, when they hit it big and do say $30,000 in one month, the merchant account provider becomes suspicious and has the ability to hold the funds for an undisclosed period of time.

Personally, we eventually experienced a continual “RISK” hold of 7% – 15% of all our revenues on a continual basis. I am definitely going to be implementing/testing Stripe in the coming months.

I have been using Pay Pal and I have noticed that I have been loosing sales at the Payment part of my website. I think it might be because someone does not have a pay pal account. I am going to give Stripe a try and just offer both Pay Pal and Stripe and see if that solves the problem. It always takes Pay Pal 72 hours to deposit the funds in my account so I can live with 7 days.

Great article. Do you have examples of sites that you’ve used it on?

I like the ease of integrating Stripe, but seven days to receive payment is a bit much for a small business owner like me. I have PayPal and Square and favor Square over Stripe and PayPal. Stripe really should consider processing payments and adding them to patrons’ accounts within two-three business days.

We had a very unpleasant experience with Stripe. A week after we chose to partner with them, we received an email accusing us of committing fraud. We barely ran 3 transactions for our guests and they chose to close our account. All this was on Valentine’s day weekend when we had many customers waiting to pay the invoices we issued. You can imagine how difficult it was lost to find alternative payment methods on a Friday. Not to mention, our app was already integrated with Stripe.
We offered to submit to Stripe any kind of document to resolve the issues, including for them to contact our customers and confirm the transactions. They don’t have any phone support and they replied 5 days later with a standard email. We will not continued to work with them and other companies should be advised of their unprofessional attitude.

We’ve used Paypal for years but are looking to open a secondary processor “STRIPE”.

Stripe , so far , have been very difficult to deal with – the BigCommerce connected successfully with Stripe and their Photo ID verification was completed. We then took 2 test payments and were about to ship them when Stripe “HELD” the payments re-requesting the previous ID verification.

Why does Stripe bill customers’ cards when an account is not verified – I do not know. I’m currently waiting for Stripe to reply , at this point we are hesitant to add Stripe to our payment options because we have no way of knowing if Stripe can process payments correctly.

I googled Stripe reviews following this and alot of people are complaining about a huge spike in chargebacks because , apparently , Stripe is very open to fraud etc. Is this true? Our thoughts , if Stripe turns out to process correctly , was to do a small deposit refund for all Stripe transactions and have the figure confirmed before shipping any Stripe transactions. Paypal have the seller protection which is of course a huge advantage.

Does anyone have any experience with Stripe working correctly and any advice , pros , cons , etc?

The payment processor “PIN” – Pin payments? – Have offered us a secondary facility but we are currently more interested in pursuing what Stripe have to offer – despite their 7 day settlement timeframe. This 7 day timeframe is actually quite helpful in our case because :

1. It gives us time to investigate for fradulent transactions
2. It gives us time to process the small refund to confirm the card holder is the one making the payment.
3. Allows enough time to refund any suspicious payment without the payment being settled first.

http://www.audioshop.co/

Leave a comment

Use the form below to leave a comment: