Spree extension to manage recurring payments/subscriptions using Stripe Payment Gateway.
All plans and subscription scenarios are been managed as per Stripe Docs
Demo
Try Spree Account Recurring for Spree master with direct deployment on Heroku:
Try Spree Account Recurring for Spree 3-4 with direct deployment on Heroku:
Try Spree Account Recurring for Spree 3-1 with direct deployment on Heroku:
Installation
Install spree_account_recurring
by adding the following to your Gemfile
:
# Spree >= 3.2
gem 'spree_account_recurring', github: 'vinsol-spree-contrib/spree-account-recurring', branch: 'master'
# Spree 3.1.x
gem 'spree_account_recurring', github: 'vinsol-spree-contrib/spree-account-recurring', branch: '3-1-stable'
# Spree 3.0.x
gem 'spree_account_recurring', '~> 2.0'
# Spree 2.4.x
gem 'spree_account_recurring', '~> 1.3'
For older version of Spree
# Spree 2.3.x
gem 'spree_account_recurring', '~> 1.2'
# Spree 2.2.x
gem 'spree_account_recurring', '~> 1.1'
# Spree 2.1.x
gem 'spree_account_recurring', '~> 1.0'
Bundle your dependencies and run the installation generator:
bundle
bundle exec rails g spree_account_recurring:install
Usage
This gem is used to create plans, which can be subscribed by a user, and it will charge the user automatically through Stripe. Currently, we are supporting one active subscription per user at one time.
At Admin end this will add a configuration tab as "Recurring".
-
Creating a Recurring Provider:
- Create a recurring using
Spree::Recurring::StripeRecurring
Provider and save - Add secret key and public key provided by stripe to this recurring.
- Create a recurring using
-
Creating Plans for Recurring Provider:
- Go to "Manage Plans" from Recurring edit page.
- Create a plan by specifying respective details. This will create the same plan on your stripe account.
- Only name can be updated for a plan.
One Recurring Provider can have multiple plans.
At Front end you can view all plans here: http://your.domain.name/plans
-
Subscribe a plan:
- Click subscribe for any plan.
- Fill in credit card details and submit.
- This will create a customer in Stripe for user and subscribe that user respective to plan.
-
Unsubscribe a plan:
- In plans page subscribed plan will be listed and from there user can unsubscribe from plan.
At Admin, all subscriptions can be seen under "Reports" -> "Subscriptions".
Stripe Webhook
Create a webhook at stripe with url http://your.domain.name/recurring_hooks/handler
which will receive below mentioned stripe event hooks.
Events:
customer.subscription.created
customer.subscription.updated
invoice.payment_succeeded
charge.succeeded
These events can be viewed at admin in "Reports" -> "Subscription Events"
Testing
Be sure to bundle your dependencies and then create a dummy test app for the specs to run against.
bundle
bundle exec rake test_app
bundle exec rspec spec
When testing your applications integration with this extension you may use it's factories. Simply add this require statement to your spec_helper:
require 'spree_account_recurring/factories'
See It In Action
Contributing
- Fork the repo.
- Clone your repo.
- Run
bundle install
. - Run
bundle exec rake test_app
to create the test application inspec/test_app
. - Make your changes.
- Ensure specs pass by running
bundle exec rspec spec
. - Submit your pull request.
Credits
Copyright (c) 2014 vinsol.com, released under the New MIT License