Django + Stripe Made Easy
Project description
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
For stripe.com only
Only use or support well-maintained third-party libraries
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:
Running the Tests
Assuming the tests are run against PostgreSQL:
createdb djstripe pip install -r requirements_text.txt coverage run --source djstripe runtests.py coverage report -m
Similar Projects
https://github.com/eldarion/django-stripe-payments - The project that dj-stripe forked. It’s an awesome project and worth checking out.
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/GoodCloud/django-zebra - One of the first stripe payment systems for Django.
History
0.3.0 (2013-11-12)
Fully tested against Django 1.6, 1.5, and 1.4
Fix boolean default issue in models (from now on they are all default to False).
Replace duplicated code with djstripe.utils.user_has_active_subscription.
0.2.9 (2013-09-06)
Cancellation added to views.
Support for kwargs on charge and invoice fetching.
def charge() now supports send_receipt flag, default to True.
Fixed templates to work with Bootstrap 3.0.0 column design.
0.2.8 (2013-09-02)
Improved usage documentation.
Corrected order of fields in StripeSubscriptionSignupForm.
Corrected transaction history template layout.
Updated models to take into account when settings.USE_TZ is disabled.
0.2.7 (2013-08-24)
Add handy rest_framework permission class.
Fixing attribution for django-stripe-payments.
Add new status to Invoice model.
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
File details
Details for the file dj-stripe-0.3.0.tar.gz
.
File metadata
- Download URL: dj-stripe-0.3.0.tar.gz
- Upload date:
- Size: 39.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6403b0a57721d01bef1acdd6649b4dfd291ab3f5d09cd7f3aea729805428b6cd |
|
MD5 | a60eed6ab10345df6f5c881aca1bc8b3 |
|
BLAKE2b-256 | ce352f17abdf6092943be357f07e0c6bd1b988f1ca5f80a93587a0258251172c |