Metadata-Version: 1.1
Name: django-mooch
Version: 0.5.0
Summary: Simple payment for Django
Home-page: https://github.com/matthiask/django-mooch/
Author: Matthias Kestenholz
Author-email: mk@feinheit.ch
License: MIT License
Description-Content-Type: UNKNOWN
Description: ======================
        mooch - Simple payment
        ======================
        
        Steps
        =====
        
        1. Install ``django-mooch`` using pip and add ``mooch`` to your
           ``INSTALLED_APPS``.
        
        2. Add a moochers app::
        
            from collections import OrderedDict
        
            from django.conf import settings
            from django.conf.urls import include, url
        
            from mooch.banktransfer import BankTransferMoocher
            from mooch.postfinance import PostFinanceMoocher
            from mooch.stripe import StripeMoocher
        
            from myapp.models import Thing  # Inherit mooch.models.Payment
        
        
            app_name = 'mooch'  # This is the app namespace.
        
            moochers = OrderedDict((
                ('postfinance', PostFinanceMoocher(
                    model=Thing,
                    pspid='thing',
                    live=False,
                    sha1_in=settings.POSTFINANCE_SHA1_IN,
                    sha1_out=settings.POSTFINANCE_SHA1_OUT,
                    app_name=app_name,
                )),
                ('stripe', StripeMoocher(
                    model=Thing,
                    publishable_key=settings.STRIPE_PUBLISHABLE_KEY,
                    secret_key=settings.STRIPE_SECRET_KEY,
                    app_name=app_name,
                )),
                ('banktransfer', BankTransferMoocher(
                    model=Thing,
                    autocharge=True,  # Mark all payments as successful.
                    app_name=app_name,
                )),
            ]
        
            urlpatterns = [
                url(r'', moocher.urls) for moocher in moochers.values()
            ]
        
        3. Include the moochers app / URLconf somewhere in your other URLconfs.
        
        4. Add a payment page::
        
            def pay(request, id):
                instance = get_object_or_404(Thing.objects.all(), id=id)
        
                return render(request, 'pay.html', {
                    'thing': instance,
                    'moochers': [
                        moocher.payment_form(request, instance)
                        for moocher in moochers.values()
                    ],
                })
        
        5. Maybe send a confirmation mail when charges happen (an example
           template for this is actually included with the project). Please note
           that contrary to most other projects, django-mooch uses the moocher
           **instance** as sender, not the class::
        
            from mooch.mail import render_to_mail
            from mooch.signals import post_charge
        
            # The signal handler receives the moocher instance, the payment and
            # the request.
            def send_mail(sender, payment, request, **kwargs):
                render_to_mail('mooch/thanks_mail', {
                    'payment': payment,
                }, to=[payment.email]).send(fail_silently=True)
        
            # Connect the signal to our moocher instances (moochers may be used
            more than once on the same website):
            for moocher in moochers.values():
                post_charge.connect(send_mail, sender=moocher)
        
           If you want to differentiate between moochers (for example to send
           a different mail for bank transfers, because the payment has not
           actually happened yet) set the ``sender`` argument when connecting
           as follows::
        
            # Some stuff you'll have to imagine... sorry.
            post_charge.connect(thank_you_mail, moochers['postfinance'])
            post_charge.connect(thank_you_mail, moochers['stripe'])
            post_charge.connect(please_pay_mail, moochers['banktransfer'])
        
Platform: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
