Skip to main content

No project description provided

Project description

about

Home page

integration with webkassa.kz

This package developed for Elefantoteam, for using in future projects

For contributors

NOTE: After clone this repository you should run command:

chmod ug+x.githooks/pre-commit
git config core.hooksPath .githooks

For users

setup

install via pip:

pip install elefanto-webkassa

install via poetry:

poetry add elefanto-webkassa

Configs

add it to installed apps in django settings.py:

INSTALLED_APPS = (
    ...,
    'webkassa',
)

now add this to your settings.py:

WEBKASSA_CONFIG = {
    'api_key': 'YOUR_WEBKASSA_API_KEY',
    'encryption_key': 'SOME_ECRYPTION_KEY',
    'url': 'WEBKASSA_API_URL',
}

Note you can generate encryption_key by this command in python shell

import base64
import os

base64.urlsafe_b64encode(os.urandom(32))

Usage

after configure project, you should run migrate

python manage.py migrate

then go to admin page, find Webkassa accounts in WEBKASSA app and add new account img.png

now you can use package

from webkassa.services.manager import WebKassaManager

...

data = {
    'OperationType': int,
    'Positions': [
        {
            'Count': int,
            'Price': float,
            'TaxPercent': int,
            'TaxType': int,
            'PositionName': str,
            'PositionCode': str,
            'Discount': int,
            'Markup': int,
            'SectionCode': str,
            'UnitCode': int,
            ...    
        }
    ],
    'Payments': [
        {
            'Sum': float,
            'PaymentType': int
        }
    ],
    'TicketModifiers': [
        {
            'Sum': int,
            'Text': str,
            'Type': int,
            'TaxType': int,
            'TaxPercent': int,
            'Tax': float
        }
    ],
    'Change': int,
    'RoundType': int,
    'CustomerEmail': str,
    'ExternalOrderNumber': str,
    'ExternalCheckNumber': str,
    ...
}

manager = WebKassaManager(email='<Account email>', cashbox_unique_number='<Cashbox number>')
ticket = manager.get_check(data)

ticket is instance of webkassa.models.Check, you can add it as OneToOneField on your payment model

Note ExternalOrderNumber should be pk of your payment instance, and will be unique to avoid ticket duplicates

You can find list of tickets from admin page Checks in WEBKASSA img.png

Also you can find error logs for integration. If for some reason error depends on package functionality please tell Джони ага 😜 or give him solution.

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

elefanto_webkassa-0.4.5.tar.gz (11.0 kB view hashes)

Uploaded Source

Built Distribution

elefanto_webkassa-0.4.5-py3-none-any.whl (14.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