Inspired from the official Using Checkout and Sinatra guide, this sample app shows you how to integrate Stripe tokenization feature with Kill Bill subscriptions APIs.
Ruby 2.1+ or JRuby 1.7.20+ is recommended. If you don’t have a Ruby installation yet, use RVM:
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
\curl -sSL https://get.rvm.io | bash -s stable --ruby
After following the post-installation instructions, you should have access to the ruby and gem executables.
Install the dependencies by running in this folder:
gem install bundler
bundle install
This also assumes:
- Kill Bill is already setup
- The default tenant (bob/lazar) has been created
- The default tenant has a
Sports
product, with a trial phase - The Stripe plugin is installed and configured
To run the app:
PUBLISHABLE_KEY=<YOUR_PUBLISHABLE_STRIPE_KEY> ruby app.rb
or if you are using Docker:
KB_URL='http://192.168.99.100:8080' PUBLISHABLE_KEY=<YOUR_PUBLISHABLE_STRIPE_KEY> ruby app.rb
Then go to http://localhost:4567/ where you should see both the Stripe Checkout button and the Stripe Elements button highlighting two integration methods.
Enter dummy data (4242 4242 4242 4242 as the credit card number, any three digit CVC and any expiry date in the future work) and complete one of the two checkout processes.
This will:
- Tokenize the card in Stripe
- Create a new Kill Bill account
- Add a default payment method on this account associated with this token (a customer object is also created in Stripe, so the token can be re-used)
- Create a new subscription for the sports car monthly plan (with a $10 30-days trial)
- Charge the token for $10