RailsApps / rails-stripe-membership-saas

An example Rails 4.2 app with Stripe and the Payola gem for a membership or subscription site.

Home Page:http://railsapps.github.io/rails-stripe-membership-saas

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Requiring Credit Card on Trial Expiration

unkrich opened this issue · comments

Hi - is there an easy way to not require credit card upon account creation and then require the user to enter their credit card data when the trial period has ended for the account?

If anyone can point me in the correct direction, it would be greatly appreciated.

So the current code probably doesn't make this easy, and looking at how stripe handles this situation is that if you put a customer on a subscription that requires a payment at the end of the trial period, it will just error out until they setup a payment source. You could just let this happen meaning the customer will go to dunning and they could receive free days until they attach (or don't attach) a source. You could also optionally just terminate the subscription if they haven't provided a payment source at the end of the trial period (handle the invoice.created event and terminate their subscription immediately if they haven't provided a payment source).

Another option, which may be simpler in other ways, is to create a plan on Stripe that is $0.00 and have it be the duration of your trial. Then add a column to users that indicates whether or not they have been on the trialing plan, and ask them to provide a payment source at the end of that trial period (or any time along) and just when the trial subscription ends, either set them up to automatically start on a paid plan OR nothing (since they might not have provided a payment method).

And of course the most simple option would be just to handle an "activated_trial_at" on your user yourself, and handle the "still_on_trial?" by checking the today vs the column. Then just have a page that they enter their payment source, and if the user has a payment source, and in an hourly task or something checking if the user is still on the trial period or not, move them to the subscription plan automatically at the end. Otherwise, they can just sign up as usual.

There's lots of possibilities.