Skip to content

jsalva/pinax-stripe

 
 

Repository files navigation

Pinax Stripe

This app was formerly called django-stripe-payments and has been renamed to avoid namespace collisions and to have more consistency with Pinax.


Refactor and Update Plans

November 22, 2015

Phew! 10 days and almost 100 commits later and milestone is as far as I know code complete. The only remaining tasks are:

  • writing documentation - lots has changes, drastically, time to throw out the current docs and write a comprehensive set from scratch
  • review current test coverage and improve on it if the gaps that are open look critical
  • package up the templates I've been testing with in a new release of pianx-theme-bootstrap (see PTB Issue #104)
  • put together a demo starter project (this one i might hold off until after 2.0 ships)

November 12, 2015

A long time ago we started a 2.0 Milestone then when got really busy with other areas of Pinax, our day jobs, and life. Today, we getting back into the swing of things starting with merging of the long-overdue-updates branch.

These items will be made into issues in the 2.0 Milestone.

  • address namespace issue with payments - Issue #169
  • full Python 3 compatibility (DSP should support every Python that Django supports) - Issue #170
  • make sure custom user model support is fully in place - Issue #172
  • support Django 1.7, 1.8, 1.9 (currently master) - Issue #171
  • refactor out payments/settings.py to payments/conf.py to support django-appconf or do something with payments/apps.py - Issue #179
  • add hooksets for key points of extensibility - Issue #180
  • convert ajax views to CBVs - Issue #181
  • add migrations - Issue #164
  • update for latest / greatest API compatibility - Issue #178
  • add new webhooks - Issue #182

Subsequent (shorter) milestones involve adding support for the following Stripe services:


Pinax

Pinax is an open-source platform built on the Django Web Framework. It is an ecosystem of reusable Django apps, themes, and starter project templates. This collection can be found at http://pinaxproject.com.

This app was developed as part of the Pinax ecosystem but is just a Django app and can be used independently of other Pinax apps.

pinax-stripe

pinax-stripe is a payments Django app for Stripe.

This app allows you to process one off charges as well as signup users for recurring subscriptions managed by Stripe.

Some suggested integration steps:

  1. Overload the templates provided to use your inheritance tree (for bases etc) and block names.
  2. Point your stripe account at the webhook address in the payments urls.
  3. Add the static media snippet from here (or else nothing will actually talk to stripe): * http://django-stripe-payments.readthedocs.org/en/latest/installation.html#configuration-modifications-to-settings-py
  4. Set up SSL if you have not already.
  5. Define some plans (see docs).
  6. Run syncdb to generate the necessary tables, then init_plans and init_customers.

Development

pinax-stripe supports a variety of Python and Django versions. It's best if you test each one of these before committing. Our Travis CI Integration will test these when you push but knowing before you commit prevents from having to do a lot of extra commits to get the build to pass.

Environment Setup

In order to easily test on all these Pythons and run the exact same thing that Travis CI will execute you'll want to setup pyenv and install the Python versions outlined in tox.ini.

If you are on the Mac, it's recommended you use brew. After installing brew run:

$ brew install pyenv pyenv-virtualenv pyenv-virtualenvwrapper

Then:

$ CFLAGS="-I$(xcrun --show-sdk-path)/usr/include -I$(brew --prefix openssl)/include" \
LDFLAGS="-L$(brew --prefix openssl)/lib" \
pyenv install 2.7.10 3.2.6 3.3.6 3.4.3 3.5.0

$ pyenv virtualenv 2.7.10 test-2.7.10
$ pyenv virtualenv 3.2.6 test-3.2.6
$ pyenv virtualenv 3.3.6 test-3.3.6
$ pyenv virtualenv 3.4.3 test-3.4.3
$ pyenv virtualenv 3.5.0 test-3.5.0
$ pyenv global 2.7.10 test-2.7.10 test-3.2.6 test-3.2.6 test-3.3.6 test-3.4.3 test-3.5.0

$ pip install detox

To run test suite:

Make sure you are not inside a virtualenv and then:

$ detox

This will execute the testing matrix in parallel as defined in the tox.ini.

API

In order to make this app more maintainable and scale with all the services that Stripe is offering, we have refactored this internal API away from being just model methods into a service layer in pinax.stripe.actions.

Internally, things like views, management commands, and receivers, all flow through the public API defined in the pinax.stripe.actions modules. These modules interact with both the Stripe API as well as pinax-stripe's internal models. To interface with the models, they work through a set of proxy models found in pinax.stripe.proxies. Methods on this proxy models are for internal use only and provide a clean separation from the actual models.

Charges

Customers

Events

Invoices

Refunds

Sources

Subscriptions

Syncs

Documentation

Documentation for django-stripe-payments can be found at http://django-stripe-payments.readthedocs.org The Pinax documentation is available at http://pinaxproject.com/pinax/.

Code of Conduct

In order to foster a kind, inclusive, and harassment-free community, the Pinax Project has a code of conduct, which can be found here http://pinaxproject.com/pinax/code_of_conduct/.

Pinax Project Blog and Twitter

For updates and news regarding the Pinax Project, please follow us on Twitter at @pinaxproject and check out our blog http://blog.pinaxproject.com.

About

a payments Django app for Stripe

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%