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 details)

Uploaded Source

Built Distribution

elefanto_webkassa-0.4.5-py3-none-any.whl (14.4 kB view details)

Uploaded Python 3

File details

Details for the file elefanto_webkassa-0.4.5.tar.gz.

File metadata

  • Download URL: elefanto_webkassa-0.4.5.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.6.1 CPython/3.11.3 Darwin/22.5.0

File hashes

Hashes for elefanto_webkassa-0.4.5.tar.gz
Algorithm Hash digest
SHA256 c0d9cee714558e396e644a168f4d04a32ec9187a6912b42fc5b0154d4751034b
MD5 1019585cd46897beb00cc0770c4d252f
BLAKE2b-256 3b1ff47e5077c1c32c0402fce8e407642e3825adbd4576d164c4a55f58dae097

See more details on using hashes here.

File details

Details for the file elefanto_webkassa-0.4.5-py3-none-any.whl.

File metadata

File hashes

Hashes for elefanto_webkassa-0.4.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5281464fd67fd022bd75e98d1603a3d7ca13540521fef79447b1580dd2b92828
MD5 ef8f18ca986851eb720aec8c3495b9d3
BLAKE2b-256 764a9ca9ce99f0028af9b4931f0d45e8fd52e57e8c5859a5b26757e01d9dfad0

See more details on using hashes here.

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