Skip to content

dj-stripe automatically syncs your Stripe Data to your local database as pre-implemented Django Models allowing you to use the Django ORM, in your code, to work with the data making it easier and faster.

License

Notifications You must be signed in to change notification settings

abe-101/dj-stripe

Repository files navigation

dj-stripe

Django + Stripe Made Easy

Badges

https://img.shields.io/travis/kavdev/dj-stripe/1.0.0.svg?style=flat-square https://img.shields.io/codecov/c/github/kavdev/dj-stripe/1.0.0.svg?style=flat-square https://img.shields.io/requires/github/kavdev/dj-stripe.svg?style=flat-square https://img.shields.io/codacy/3c99e13eda1c4dea9f993b362e4ea816.svg?style=flat-square https://img.shields.io/pypi/v/dj-stripe.svg?style=flat-square https://img.shields.io/pypi/dw/dj-stripe.svg?style=flat-square https://img.shields.io/github/issues/kavdev/dj-stripe.svg?style=flat-square https://img.shields.io/github/license/kavdev/dj-stripe.svg?style=flat-square

Documentation

The full documentation is at http://dj-stripe.rtfd.org.

Features

  • Subscription management
  • Designed for easy implementation of post-registration subscription forms
  • Single-unit purchases
  • Works with Django >= 1.10
  • Works with Python 3.5, 3.4, 2.7
  • Works with Bootstrap 3
  • Built-in migrations
  • Dead-Easy installation
  • Leverages the best of the 3rd party Django package ecosystem
  • djstripe namespace so you can have more than one payments related app
  • Documented
  • Tested
  • Current API version (2012-11-07), in progress of being updated

Constraints

  1. For stripe.com only
  2. Only use or support well-maintained third-party libraries
  3. For modern Python and Django

Quickstart

Install dj-stripe:

pip install dj-stripe

Add djstripe to your INSTALLED_APPS:

INSTALLED_APPS =(
    ...
    "django.contrib.sites"
    ...
    "djstripe",
    ...
)

Add your stripe keys:

STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "<your publishable key>")
STRIPE_SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "<your secret key>")

Add some payment plans:

DJSTRIPE_PLANS = {
    "monthly": {
        "stripe_plan_id": "pro-monthly",
        "name": "Web App Pro ($24.99/month)",
        "description": "The monthly subscription plan to WebApp",
        "price": 2499,  # $24.99
        "currency": "usd",
        "interval": "month"
    },
    "yearly": {
        "stripe_plan_id": "pro-yearly",
        "name": "Web App Pro ($199/year)",
        "description": "The annual subscription plan to WebApp",
        "price": 19900,  # $199.00
        "currency": "usd",
        "interval": "year"
    }
}

Add to the urls.py:

url(r'^payments/', include('djstripe.urls', namespace="djstripe")),

Run the commands:

python manage.py migrate

python manage.py djstripe_init_customers

python manage.py djstripe_init_plans

If you haven't already, add JQuery and the Bootstrap 3.0.0+ JS and CSS to your base template:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">

<!-- Optional theme -->
<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap-theme.min.css">

<!-- Latest JQuery (IE9+) -->
<script src="//code.jquery.com/jquery-2.1.4.min.js"></script>

<!-- Latest compiled and minified JavaScript -->
<script src="//netdna.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>

Also, if you don't have it already, add a javascript block to your base.html file:

{% block javascript %}{% endblock %}

Running the Tests

Assuming the tests are run against PostgreSQL:

createdb djstripe
pip install -r tests/requirements.txt
tox

Follows Best Practices

This project follows best practices as espoused in Two Scoops of Django: Best Practices for Django 1.8.

Similar Projects

About

dj-stripe automatically syncs your Stripe Data to your local database as pre-implemented Django Models allowing you to use the Django ORM, in your code, to work with the data making it easier and faster.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 98.6%
  • HTML 1.4%