Skip to main content

A reusable Django app for creating, logging and verifying purchases.

Project description

A reusable Django app for creating, logging and verifying purchases.

Quick start

  1. Install Django Purchase Core & Dependencies:

    >>> pip install django-purchase-core
    
  2. Add “purchase”, “rest_framework’, and “rangefilter” to your INSTALLED_APPS setting like this:

INSTALLED_APPS = [
    ...,
    'rest_framework',
    'purchase',
    'rangefilter',
    ...,
]
  1. Add the following to app_config.urls:

from django.conf.urls import url, include

urlpatterns = [
    ...,
    path("api/", include("purchase.urls")),
    ...,
]
  1. Run Django Commands:

    >>> python manage.py makemigrations
    >>> python manage.py migrate
    
  2. Configure configuration and credentials for your game in the admin panel.

Add progress level update processing

  1. To work with subscription you first need to set authorization and user model:

    • setup “PURCHASE_USER_ATTACHED” in you settings.py to True (not provided equals False, when it False no signal will be called, user model wont be used)

    ...
    PURCHASE_USER_ATTACHED = True
    ...
    • configure user model (in your settings.py)

    USER_MODEL = YourUserModel
    • configure auth and permission classes for DRF (in your settings.py)

    REST_FRAMEWORK = {
        "DEFAULT_PERMISSION_CLASSES": [
            "rest_framework.permissions.IsAuthenticated"
        ],
        "DEFAULT_AUTHENTICATION_CLASSES": [
            "path.to.your.auth.class.or.base"
        ],
    }
    • to handle completed purchase setup receiver to update progress, which will receive “instance”

    from django.dispatch import receiver
    
    from purchase.signals import purchase_completed
    
    @receiver(purchase_completed)
    def purchase_completed(sender, **kwargs):
        purchase = kwargs["instance"]
        user = purchase.user  # User completed purchase
        purchase_id = purchase.purchase_id  # Your product ID, as it presented in store
        ...
  2. To work with subscription you first need to set authorization and user model:

    • configure user model, auth and permission classes for DRF (in your settings.py, as for purchase with user)

    ...
    USER_MODEL = YourUserModel
    ...
    
    ...
    REST_FRAMEWORK = {
        ...
        "DEFAULT_PERMISSION_CLASSES": [
            "rest_framework.permissions.IsAuthenticated"
        ],
        ...
        "DEFAULT_AUTHENTICATION_CLASSES": [
            "path.to.your.auth.class.or.base"
        ],
        ...
    }
    ...
    • setup receiver for signal, which will receive “instance” as Subscription model instance

    from django.dispatch import receiver
    
    from purchase.signals import subscription_completed
    
    @receiver(subscription_completed)
    def subscription_completed(sender, **kwargs):
        subscription = kwargs["instance"]
        user = subscription.user  # User completed subscription
        subscription_id = subscription.product_id  # your subscription ID, as it presented in store
        ...

Project details


Download files

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

Source Distribution

django-purchase-core-0.3.62.tar.gz (21.3 kB view hashes)

Uploaded Source

Built Distribution

django_purchase_core-0.3.62-py3-none-any.whl (37.0 kB view hashes)

Uploaded Python 3

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