Skip to main content

Django integration for API "https://bw.gitbooks.io/api-oc/content/pay.html".

Project description

Build status Code health Python versions Requirements Status Software license PyPI downloads

Simple django integration for API “Оплата Частями в Интернете”: Схема взаимодействия №1 (Создание платежа по сервису Оплата частями/Мгновенная рассрочка).

Installation

Install with pip:

$ pip install django-ok-payparts

Update INSTALLED_APPS:

INSTALLED_APPS = [
    ...
    'payparts',
    ...
]

Add payparts.urls to your project urlpatterns:

urlpatterns = [
    ...
    path('', include('payparts.urls')),
    ...
]

Make migrations:

$ python manage.py migrate

Available settings

PAYPARTS_API_PASSWORD - Password of your store.

PAYPARTS_API_STORE_ID - Your store’s ID.

PAYPARTS_API_URL - Url for creation of a payment. By default: https://payparts2.privatbank.ua/ipp/v2/.

PAYPARTS_API_REDIRECT_URL - Url to redirect after a success payment. By default: https://payparts2.privatbank.ua/ipp/v2/payment.

Usage

How to create a payment

  1. Prepare your order’s data:

data = {
    "order_id": f"order-123",
    "amount": 400.00,
    "parts_count": 2,  # optional, default value is '2'
    "merchant_type": "II",  # optional, default value is 'II'
    "products": [
        {
            "name": "Телевизор",
            "count": 2,
            "price": 100.00
        },
        {
            "name": "Микроволновка",
            "count": 1,
            "price": 200.00
        }
    ],
    # also optional fields (can be set in your cabinet):
    "response_url": "http://shop.com/response",
    "redirect_url": "http://shop.com/redirect",
}
  1. Get your redirect url:

from payparts.use_cases import GetRedirectUrlUseCase
redirect_url = GetRedirectUrlUseCase().execute(data)
  1. Redirect a user to the url.

How to process a callback

Whenever a callback is processed a signal will be sent with the result of the transaction.

There are two signals (payparts.signals):

  1. pay_parts_success_callback - if signature is valid.

  2. pay_parts_invalid_callback - if signature is not valid.

Connect the signals to actions to perform the needed operations when a successful payment is received:

from payparts.signals import pay_parts_success_callback, pay_parts_invalid_callback

from orders.models import Order


def success_callback(sender, log, request, **kwargs):
    # ensure success state
    if log.is_success:
        order = Order.objects.get(pk=log.order_id)
        order.set_success_payment_state()

pay_parts_success_callback.connect(success_callback)

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-ok-payparts-0.4.tar.gz (13.9 kB view hashes)

Uploaded Source

Built Distribution

django_ok_payparts-0.4-py3-none-any.whl (19.4 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