Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

elefanto-webkassa

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

elefanto-webkassa

  • 0.4.5
  • PyPI
  • Socket score

Maintainers
1

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.

FAQs


Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc