RoR-e

If you haven't seen The 15 minute E-Commerce Site CLICK HERE


I'm currently looking for Contract jobs, Contact Me if you are interested. Dave.

Stripe vs. ActiveMerchant David Henner Nov 14

7 comments Latest by Steven Sokulski

I've been playing around with stripe for the past month and I have been pretty impressed. It is so easy to use and the documentation is great. That being said there are downsides to stripe compared to ActiveMerchant.

  1. It does not support an authorize / capture workflow.
  2. You can only store one credit card per user.

When you first start using Stripe it appears the authorize / capture workflow will work just fine. If the customer enters their Credit Card every time, this is the case. What happens is stripe will give you a token for a charge amount. Then when you go to ship the item, you can do the capture of the payment.

Once you store the customer's Credit Card the authorize/capture workflow no longer works. Instead you charge the Credit Card at the time of the purchase. The upside is that you don't need to worry about expiration dates and possible double charges temporarily on the card. However if you find out the item purchased was never in stock you will have to return the money to the card. Additionally the "Stored Card" workflow is different than the "Manually Entered Card" workflow. I'm not a big fan of two separate workflows.

My issue also had to do with accounting. Double entry accounting methods are more accurate in an authorize / capture workflow. I won't go into the details but a lot of things needed to change in the app I used stripe.

Also only being allowed to store one Credit Card is a bit of an issue. In reality 95% of users will only store one Credit Card. If they need to change the card it is easy enough just by updating the customer's profile. I felt this was a minor enough of an issue that I didn't need to worry about it.

That being said Stripe has been amazingly easy to setup. The API is great and if you are dealing with a subscription based service stripe is a no-brainer. For a while I thought stripe was a Merchant/Gateway killer. I still believe gateways need to take notice because Stripe is a game changer. That being said, until they fully support auth/Capture there is a place for all the Gateways out there.

Now I just wish the banks could go away. =)

I'd love to hear feedback about ror_ecommerce moving to be 100% stripe over ActiveMerchant.

Thanks for reading.

7 comments so far

Dan 14 Nov 11

Another thing that wasn't quite obvious to me is that PCI compliance only cares about the transmission and storage of CC numbers, which Stripe does very well. PCI says nothing however, of how customer info should be stored. Which means it's up to each developer to decide how they should store those Stripe::Customer#id's Dan

Chad 20 Nov 11

The title of this post is a little misleading. ActiveMerchant supports the use of Stripe (check the GitHub page), so you don't have to choose between the two. You can still use ActiveMerchant with Stripe as the payment gateway.

DRH 21 Nov 11

Chad, Yes and no. Even with the AM support you still need Stripe.js. Also if you use AM you still need to understand that it does not support authorize/capture. But yes you can use AM. I found the stripe API so good, AM was a bit of a burden to use with stripe.

Will 27 Nov 11

#1 may be a legitimate issue, but for #2 Just map multiple customer tokens to a single customer id in your database.

DRH 28 Nov 11

Will, I thought of that as a work around but it is a work around. The UI stripe gives you is great. You lose some of the advantages of that UI by mapping multiple customer tokens to a single customer. Still, good point.

Phil Misiowiec 02 Dec 11

Also take a look at Samurai (https://samurai.feefighters.com/developers/ruby), which we recently implemented in a client app. They have js version as well: https://samurai.feefighters.com/developers/samurai-js

Steven Sokulski 18 Mar 12

Stripe is definitely geared more towards developers than end users like PayPal is. You'll find a lot more control when integrating Stripe into a custom application, which would make multiple card numbers for a single user trivial.

Comments are closed