Skip to main content

Django + Stripe Made Easy

Project description

https://badge.fury.io/py/dj-stripe.png https://travis-ci.org/pydanny/dj-stripe.png?branch=master https://pypip.in/d/dj-stripe/badge.png

Django + Stripe Made Easy

Documentation

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

Features

  • Subscription management

  • Subscription during registration

  • Single-unit purchases (forthcoming)

  • Works with Django 1.5, 1.4

  • Works with Python 3.3, 2.7, 2.6

  • Works with Bootstrap 3

  • Built-in South migrations

  • Dead-Easy installation

  • Leverages in the best of the 3rd party Django package ecosystem.

  • djstripe namespace so you can have more than one payments related app.

  • Documented (Making good progress)

  • Tested (Making good progress)

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 +=(
    "djstripe",
)

Add the context processor to your TEMPLATE_CONTEXT_PROCESSORS:

TEMPLATE_CONTEXT_PROCESSORS +=(
    'djstripe.context_processors.djstripe_settings',
)

Add your stripe keys:

STRIPE_PUBLIC_KEY = os.environ.get("STRIPE_PUBLIC_KEY", "<your publishable test key>")
STRIPE_SECRET_KEY = os.environ.get("STRIPE_SECRET_KEY", "<your secret test 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 syncdb

python manage.py migrate  # if you are using South

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.0.0/css/bootstrap.min.css">

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

<!-- Latest JQuery -->
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>

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

Start up the webserver:

Similar Projects

  • https://github.com/agiliq/merchant - A single charge payment processing system that also includes many other Gateways. Really nice but doesn’t out-of-the-box handle the use case of subscription payments.

  • https://github.com/eldarion/django-stripe-payments - The project that inspired dj-stripe. dj-stripe differs in many ways, including:

    • dj-stripe adds Python 3.3 support (it also does 2.7).

    • Uses the more specific ‘djstripe’ namespace instead of ‘payments’.

    • All requires packages are installed when dj-stripe is installed.

    • Entirely based on Class-Based Views, so you can extend it to suit your particular needs.

  • django-zebra - One of the first stripe payment systems for Django.

History

0.2.6 (2013-08-20)

  • Changed name of division tag to djdiv.

  • Added safe_setting.py module to handle edge cases when working with custom user models.

  • Added cookbook page in the documentation.

0.2.5 (2013-08-18)

  • Fixed bug in initial checkout

  • You can’t purchase the same plan that you currently have.

0.2.4 (2013-08-18)

  • Recursive package finding.

0.2.3 (2013-08-16)

  • Fix packaging so all submodules are loaded

0.2.2 (2013-08-15)

  • Added Registration + Subscription form

0.2.1 (2013-08-12)

  • Fixed a bug on CurrentSubscription tests

  • Improved usage documentation

  • Added to migration from other tools documentation

0.2.0 (2013-08-12)

  • Cancellation of plans now works.

  • Upgrades and downgrades of plans now work.

  • Changing of cards now works.

  • Added breadcrumbs to improve navigation.

  • Improved installation instructions.

  • Consolidation of test instructions.

  • Minor improvement to django-stripe-payments documentation

  • Added coverage.py to test process.

  • Added south migrations.

  • Fixed the subscription_payment_required function-based view decorator.

  • Removed unnecessary django-crispy-forms

0.1.7 (2013-08-08)

  • Middleware excepts all of the djstripe namespaced URLs. This way people can pay.

0.1.6 (2013-08-08)

  • Fixed a couple template paths

  • Fixed the manifest so we include html, images.

0.1.5 (2013-08-08)

  • Fixed the manifest so we include html, css, js, images.

0.1.4 (2013-08-08)

  • Change PaymentRequiredMixin to SubscriptionPaymentRequiredMixin

  • Add subscription_payment_required function-based view decorator

  • Added SubscriptionPaymentRedirectMiddleware

  • Much nicer accounts view display

  • Much improved subscription form display

  • Payment plans can have decimals

  • Payment plans can have custom images

0.1.3 (2013-08-7)

  • Added account view

  • Added Customer.get_or_create method

  • Added djstripe_sync_customers management command

  • sync file for all code that keeps things in sync with stripe

  • Use client-side JavaScript to get history data asynchronously

  • More user friendly action views

0.1.2 (2013-08-6)

  • Admin working

  • Better publish statement

  • Fix dependencies

0.1.1 (2013-08-6)

  • Ported internals from django-stripe-payments

  • Began writing the views

  • Travis-CI

  • All tests passing on Python 2.7 and 3.3

  • All tests passing on Django 1.4 and 1.5

  • Began model cleanup

  • Better form

  • Provide better response from management commands

0.1.0 (2013-08-5)

  • First release on PyPI.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dj-stripe-0.2.6.tar.gz (37.4 kB view details)

Uploaded Source

File details

Details for the file dj-stripe-0.2.6.tar.gz.

File metadata

  • Download URL: dj-stripe-0.2.6.tar.gz
  • Upload date:
  • Size: 37.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for dj-stripe-0.2.6.tar.gz
Algorithm Hash digest
SHA256 0f5d5934ffce3ddc6c0babd68f6ee8cf6558d616450191037fd43b9cece4f831
MD5 2db41ebc5db8cd57571f3a3715f559b8
BLAKE2b-256 40985dff9a9e4b79d2bea49560df6134aa0ff88cf05d49bbe73f2dcc955f5e35

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page