Recurring billing with Rails - what are my options? - ruby-on-rails-3

Before jumping in I'd like to know what all of my options are, and, if possible their pros and cons.
The two I know of are using ActiveMerchant, or the paypal_recurring gem, but will they satisfy these requirements?
Ability to accommodate monthly and annual billing
Ability to suspend, cancel accounts etc
Deal with out-of-date card details or failed payments
The to-do list for the paypal_recurring gem includes 'adding support for IPN' - how will not having this impact functionality?
I know there is the railskit SaaS but I'd rather code something myself as the railskit is still on 3.2.1.
I know there are services like cheddergedder/chargify etc, but do they tie you in? Are they US only? Are they worth considering - or are they usually just aimed at non-developers?
Thanks in advance.

I just finished going through this, so I'll try to shed some light on your options. I ended up using Paypal Express Checkout for all recurring purchases through Paypal. We had a custom-rolled recurring billing setup that charges a customer's credit card monthly through Authnet, but had to switch because we needed an international solution, and Paypal was one of the only ones that supported the currencies we needed, and wasn't entirely a nightmare to code.
You can use ActiveMerchant for recurring billing with this plugin, though keep in mind that it is not officially a part of ActiveMerchant, and therefore is subject to break if ActiveMerchant changes how it handles certain things. Because of that, I ended up using the paypal-recurring to handle communication through Paypal, and then rolled my own IPN parser, with help from Railscasts. Another link that helped me a lot was this, though all the :txn_type values ended up being different.
With regards to that last link, here are the 4 :txn_types that I specifically watch out for:
express_checkout - first postback.
recurring_payment_profile_created - sent on first postback when the user first subscribes.
recurring_payment_profile_cancel - sent if user cancels subscription from Paypal's site.
recurring_payment - Money has been transferred to your account. This is what I wait for before I renew their subscription on a monthly. This post also comes with payment_status, which needs to be completed.
The other stuff you mentioned, like handling failed payments and out-of-date cards, is handled through your Paypal account.
Just a word of warning - the only reason I ended up using Paypal is because it is universally recognized and trusted, and it accepted international currencies. There is an enormous amount of documentation on their site, and most of it is redundant, confusing, and entirely too long. My recommendation is to make sure you really want/need to deal with recurring payments, as they are difficult to implement correctly and can be more trouble than they're worth.

I'm currently looking at Ryan Bates example of Stripe. They are a California based company that uses/offers the features you have listed.
www.stripe.com
They only charge when you receive money. I think that they are 3% plus $0.30 per successful transaction. Much better than some other companies that have a monthly minimum. Right now you have to have a bank in the USA to use their services as a merchant. However, anyone can use your site with out of the country credit cards.

The SaaS Kit is now tested with Rails 3.2.2. :) It doesn't support IPN yet, but it's on to the todo list. With all the info here in one spot, I suppose I have no excuse not to get it done. :)

Related

Good Practices for Auction E-Commerce - Should I store Credit Cards Details?

I am sorry if this wasn't a good place to ask a question like this, but since I always got help from Stackoverflow I though I could get some answer to my problem.
So here is the thing, I am building a e-commerce website like many famous websites over there, where you can make bid offers for items on the market.
The thing I want to be sure is that when someone place a bid for some item, they can not turn back on their word, because if they get accepted the money should be withdrawn from their bank accounts, do you get what I mean?
Because I want the merchant to be safe if they accept a offer they want the money, and they don't want to look for another legit offer.
So how can I accomplish this?
Should I ask the credit card details when they make the bid offer and only make the withdraw operation from their accounts if the their offer was accepted by the merchant? [using some automated trigger on my database of course]
If this is not the best practice to accomplish this, which is the one??
I am really new into payment methods and I just started doing my search for Payment Gateways (maybe they offer me this functionality... I don't know?!)
You should never store credit card details, and have the details is not really any guarantee of getting paid since the card could just be canceled.
What you are probably looking for is for Authorization and delayed capture (depending on the timeline you are looking at). Different payment processors have different time requirements around how long you can hold an authorization. In general you would make a request with the API to Authorize the charges (kind of like a 'hold' on your credit card) and then later you would either cancel or Capture, where the funds would be transferred. See more info about the process and Square's API here: https://docs.connect.squareup.com/articles/delayed-capture-transactions/

Personal Money Movement API

I'm trying to create a simple personal project: I want to give myself bounties for completing tasks that often fester on my todo list. If I complete a task, for example, $5 should automatically move out of my savings account into a discretionary spending debit card.
Are there any APIs or banks that have those APIs that could let me do that? All of the paypal APIs seem to charge a fee, which would be kind of silly if the money is simply moving between accounts. Any suggestions?
Most banks/organisations will charge I suspect as a vast amount of money made by these organisations is from transfer charges. I cannot think of free api that would let you do it.
However you could consider using another commercial organisation, say like Amazon, and perhaps use it's APIs to supply purchase with gift cards automatically? I'm not saying Amazon is free, I'm just using it as an example.
It's not quite what you want but may be acceptable.
it may not be pretty, but you can use curl to do transactions over https, provided your online bank uses standard html forms in some way, but it typicaly takes 3 processes
1. Login to get a token (user name and password will be required)
2. Use token to get a cookie (in some cases 1 and 2 are reversed)
3. use curl to post the form data for your transaction
There are some good pointers on using curl in similar ways here:
http://curl.haxx.se/docs/httpscripting.html

How can I do monthly subscription credit card billing?

I've written a subscription based web app that I want to charge (by credit card) a monthly fee. There are 3 different plans and once they sign up, they should be billed that amount, automatically, every month until they cancel. Is there an easy way to set this up (some sort of online service maybe?).
You can use Paypal's merchant service to provide reoccurring charges for a subscription.
Pretty easy to implement, they provide plenty of examples and even a sandbox to get you up and running.
There are now some service providers that take care of your billing and subscription needs. You use their API and they handle billing and subscriptions for you. Their services work with payment systems like PayPal and Authorize.Net.
Take a look at the following sites:
Chargify
Spreedly
Cheddargetter
I would suggest not using Paypal or Authorize's recurring payments directly. Their APIs are brutal, and the functionality is very rudimentary. It may work fine for when you're just starting out, but if you ever want to change anything down the line, you'll be in trouble.
I work for CheddarGetter, so I'm biased, but you should check us out.
Our competitors are not as robust or flexible, but they are definitely better than using Paypal or Authorize.net directly.

Anyone run recurring payments in their website? Preferably; Paypal API

I'm wrapping up my startup and will need to implement Paypal API into my sign up page.
Does anyone use recurring payments via Paypal API integrated into their billing? Better yet, guide me to a trustable developer with experience or will I have to use Elance?
I need it to go to a welcome/get started screen in their logged in account once they hit the 'create account' button after filling out billing info. I was also wondering, can you leave the CSC (3 digit security code) field out with integration, because it makes things very hard for recurring payments. I'd like to stick with Paypal, as I have been very satisfied with them for a few years now; I already checked out Chargify, authorize.net, etc.
I'd love to see someone with something like this set up already to take a look at and ask a few questions.
On the paypal website are some code samples for developers. I don't know if there are any for recurring payments but one-time payments code snippets you will find. Very easy to set up.
I have a donate-button and it works fine without much trouble.

Multi-vendor shopping cart software

I'm looking into building a web app that allows multiple e-commerce stores to coexist on the same installation and lets allows each individual vendor manage their own products, pricing, sales reports, etc. I know that there have been a number of previous questions on the Stack regarding the best shopping cart software, but this is a bit of an unusual twist and I couldn't find it answered elsewhere.
Obviously, open source is better from a pricing standpoint, but I've got no problem with spending money on a quality product that meets my needs. The ideal package would allow each store to be uniquely skinned, would minimize the amount of time that it takes to get a new store up and running, and would include payment gateway and shipping integration.
I've run across a few things in my scouring of the web, but haven't found "the one" yet--I know that osCommerce sort of supports what I'm trying to do, but I'm looking for something designed with this functionality in mind. Any ideas?
Thanks!
Justin
I am at present looking into the same thing. After looking at all the different cart on the market I have settled on PHP Mall 2. I have had demos of X-Cart Pro, iscripts multicart and a few others.
There were only 2 that were any good at handling payments direct from buyer to seller without any added costs of have a mod done for that. They were PHP Mall 2 and iScripts Multi cart. iScripts Multicart didn't really have alot happening in the backend, and vendor shops were really just an about us page with their products showing.
I settled for PHP Mall 2 becuase each vendor can have their own website as such and can customise it to the way they want it. They can choose from a number of templates for their shop.
The part I really like about it is the payments system, there are a number of payment gateways out of the box and the vendor can choose which ever he/she wants. (because not everyone use paypal right!). Its also a fair bit cheaper than all the others and provides alot more from a site admin and seller admin side of things.
I was tasked with looking into a multi vendor cart for a project that was canceled. Before it got canceled, I felt that the below were strong contenders. This is not a comprehensive list but it's somewhere to start. The requirement for multi vendor was paramount, so the listed have varying amounts of CMS/blogging etc; so they are not necessarily apples to apples.
I did get to try out magento community and using information found here http://www.magentocommerce.com/boards/viewthread/145/ got what I felt was the correct experience for multi store/vendor for my purposes. Mileage may vary depending on requirements. It's a beast though and for some reason comparison doesn't indicate the multi vendor capabilities. My impression was that Magento was definitely for the technically minded, with a very high degree of configurability available. It's a meta system for sure. The average joe business owner wouldn't stand a chance with it. However, it might be a perfect for resellers.
http://www.x-cart.com/mall_solution.html
http://www.php-shop-system.com/products/iq-cart-for-joomla-our-new-cart-component-for-joomla.html
http://www.magentocommerce.com/product/compare
I am also in search of a multi-store solution. Magento Commerce is too expensive. OpenCart now supports multi-shop but only a single user can manage the stores. I would have preferred setting up multiple stores and have different users manage each store.
I've also been undertaking research within this area and discovered the following options;
For joomla = http://www.ijoobi.com, IXXO
For Magento = http://www.unirgy.com, MVDE
There is also an interesting product called MultiCart from iScripts, and the X-Cart Pro from Qualiteam.