spree-account-recurring

Spree extension to manage recurring payments/subscriptions using Stripe Payment Gateway

Last updated on: November 25 at 05:25 PM

source code bug tracker request upgrade
Opensource
43 43 61
2 / 0
owner:  vinsol-spree-contrib

Spree Account Recurring Code Climate Build Status

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:

Deploy

Try Spree Account Recurring for Spree 3-4 with direct deployment on Heroku:

Deploy

Try Spree Account Recurring for Spree 3-1 with direct deployment on Heroku:

Deploy

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.
  • 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

Youtube Video Tutorial

Contributing

  1. Fork the repo.
  2. Clone your repo.
  3. Run bundle install.
  4. Run bundle exec rake test_app to create the test application in spec/test_app.
  5. Make your changes.
  6. Ensure specs pass by running bundle exec rspec spec.
  7. Submit your pull request.

Credits

vinsol.com: Ruby on Rails, iOS and Android developers

Copyright (c) 2014 vinsol.com, released under the New MIT License

comments

No comments yet

video
Add article
compatible spree versions
tags spree versions
master >= 3.2.0, < 4.0.0
v1.0.5 ~> 2.1
v1.0.6 ~> 2.1
v1.0.7 ~> 2.1
v1.1.3 ~> 2.2
v1.1.4 ~> 2.2
v1.1.5 ~> 2.2
v1.2.0 ~> 2.3
v1.2.1 ~> 2.3
v1.3.0 ~> 2.4
v1.3.1 ~> 2.4
v2.0.0 ~> 3.0.0
1.0.0 ~> 2.1
1.0.1 ~> 2.1
1.0.2 ~> 2.1
1.0.3 ~> 2.1
1.1.0 ~> 2.2
1.1.1 ~> 2.2
authors
Priyank Gupta