Only people who have paid can sign-up for application…?
I built an authentication system for my app following these Railscasts:
People are not going to be able to use the app if they don't have an account. It's finally working fine and dandy, just the way I want it to.
Now I'm wondering how exactly to go about restricting sign-ups only to people who have paid. To be honest I'm pretty clueless about the billing aspect of things.
The most basic solution is to use Paypal, and redirect users to the sign-up page after they've paid. I would actually prefer to use Paypal, and don't mind if they have to go outside the site to put in payment details.
But that method has a huge hole: customers could decide to cancel their Paypal subscription and just sign up for an account using the raw signup page. Or even worse, share it with everyone.
I know about RailsKit for SaaS but the price is a little scary (not to mention having to pay $1,000 if I want to use it on multiple sites) so I'd much rather go for an opensource/lower-cost solution if possible.
You can get notification when user paid through paypal. Save it and then set a flag in session.
So when user submit the signup form, make sure the flag in session exists and what's more, make sure the account info such as email has already paid.
Another choice is that opening signup form but only allow the paid accounts use the app by adding a before_filter.
Over the past year or two there have been several new payment solutions launch that may be perfect for you.
For one of my sites I use http://www.chargify.com who will sit in-between your site and payment gateway. Althrough there is an extra cost with having this additional service you will benefit from their great support team and all the additional features that they have, e.g. statements, coupons, dealing with expired cards etc...
There are a few other companies doing similar things to chargify such as reccurly.com saasy.com etc...
If you are after a base application that integrates with these services (a bit like RailsKit), check out chargify's consultant page http://chargify.com/consultants/ where a few people have provided solutions.
Just something else for you to consider.
Came across this: http://railscasts.com/episodes/289-paypal-recurring-billing -- after watching the 24 minute (!) video, Ryan Bates comes to the rescue once again. The "subscription" table can easily be a "users" table with authentication. I'll spend the next couple of days trying to implement this. It's only for Pro users, but if you have this problem I think it's worth spending the $9 to get your hands on it.