liqpay-async


Nameliqpay-async JSON
Version 0.0.1 PyPI version JSON
download
home_pagehttps://github.com/SpaceIgor/liqpay-async
SummaryLiqPay Async Python3 SDK
upload_time2024-08-23 12:34:41
maintainerNone
docs_urlNone
authorNone
requires_pythonNone
licenseNone
keywords
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/release/python-360/)

[![SDK-Python3](https://www.liqpay.ua/logo_liqpay_main.svg)](https://www.liqpay.ua/documentation/api/home)

* Web: https://www.liqpay.ua/
* Source: https://github.com/SpaceIgor/liqpay-async
* Documentation: https://www.liqpay.ua/documentation/en/
* Keywords: liqpay, privat24, privatbank, python, internet acquiring, P2P payments, two-step payments


What python version is supported?
============
- Python 3.4+

Get Started
============
1. Sign up in https://www.liqpay.ua/en/authorization.
2. Create a company.
3. In company settings, on API tab, get **Public key** and **Private key**: https://www.liqpay.ua/doc
4. Done.

Installation
============
From pip
```pip install liqpay-async```

Working with LiqPay Callback locally
============
If you need debugging API Callback on local environment use https://localtunnel.github.io/www/

How it uses?
============

Example 1: Pin token card to user
-------

**Backend**
Get url on SDK 

Request url: https://www.liqpay.ua/api/3/checkout

```python
from liqpay_async import LiqPay

liqpay_manager = LiqPay(public_key, private_key)
response = await liqpay_manager.post( 
        return_url=True,
        data={
            "action": "hold",
            "version": "3",
            "amount": "1",
            "currency": "UAH",  # or any currency
            "description": "Pin card",
            "language": "uk|en"     # liqpay have only ("uk", "en)
            "order_id": f"{id_user from token} {str(uuid.uuid4())}",    # id_user from token need for pin card to user
            "server_url": f"{YOUR_HOST}{URL}",  # for callback response
            "recurringbytoken": "1",    # for get token in response callback
        },
    )
    
    # check on bad response
    if response["status"] in (0, 1):
        # when response status 0 or 1 from response dict u can get key 'err_code' - https://www.liqpay.ua/doc/api/errors
        raise
    
# OK response - {"url: url, status: STATUS_MAPPING}
# return url on SDK

# When u sent card credentials in checkout SDK LiqPay. U get response on the url(server_url) from request dict
#Example:

from fastapi import Request, Body

LIQPAY_DOMAIN = "liq_pay domain"

async def pin_card(
        request: Request,
        liq_pay: YourModel = Body(...),
):
    origin = request.headers.get("origin")
    if not origin or origin != LIQPAY_DOMAIN:   # for security
        raise 
    
    data = liq_pay.order_id.split()

    await liqpay_manager.post(
                data={
                    "action": "refund",     # refund money
                    "version": "3",
                    "order_id": liq_pay.order_id,
                }
            )

    # and save data from callback

    # data[0] - its id user from order_id
    # card_token, sender_card_mask2, sender_card_type

```

Example 2: For other operation by token card
-------

**Backend**

Request url: https://www.liqpay.ua/api/request

```python
from liqpay_async import LiqPay

liqpay_manager = LiqPay(public_key, private_key)

# https://www.liqpay.ua/doc/api/internet_acquiring/checkout?tab=1
response = await liqpay_manager.post( 
        data={
            "action": "your action",
            "version": "3",
            "amount": "1",
            "currency": "UAH",  # or any currency
            "description": "Your desc",
            "language": "uk|en"     # liqpay have only ("uk", "en)
            "order_id": "str(uuid.uuid4())",
            "card_token": your_card_token
        },
    )
    
# OK response - {status: STATUS_MAPPING and others)


```

Example 3: Errors
-------

**Backend**

```python

# if response aiothhp error -> response {"status": 0}


```

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/SpaceIgor/liqpay-async",
    "name": "liqpay-async",
    "maintainer": null,
    "docs_url": null,
    "requires_python": null,
    "maintainer_email": null,
    "keywords": null,
    "author": null,
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/65/1f/533a8ffc4763e718e679cd93356b9ad79e200f79ed6763e194cda4871f93/liqpay-async-0.0.1.tar.gz",
    "platform": null,
    "description": "[![Python 3.6+](https://img.shields.io/badge/python-3.6+-blue.svg)](https://www.python.org/downloads/release/python-360/)\n\n[![SDK-Python3](https://www.liqpay.ua/logo_liqpay_main.svg)](https://www.liqpay.ua/documentation/api/home)\n\n* Web: https://www.liqpay.ua/\n* Source: https://github.com/SpaceIgor/liqpay-async\n* Documentation: https://www.liqpay.ua/documentation/en/\n* Keywords: liqpay, privat24, privatbank, python, internet acquiring, P2P payments, two-step payments\n\n\nWhat python version is supported?\n============\n- Python 3.4+\n\nGet Started\n============\n1. Sign up in https://www.liqpay.ua/en/authorization.\n2. Create a company.\n3. In company settings, on API tab, get **Public key** and **Private key**: https://www.liqpay.ua/doc\n4. Done.\n\nInstallation\n============\nFrom pip\n```pip install liqpay-async```\n\nWorking with LiqPay Callback locally\n============\nIf you need debugging API Callback on local environment use https://localtunnel.github.io/www/\n\nHow it uses?\n============\n\nExample 1: Pin token card to user\n-------\n\n**Backend**\nGet url on SDK \n\nRequest url: https://www.liqpay.ua/api/3/checkout\n\n```python\nfrom liqpay_async import LiqPay\n\nliqpay_manager = LiqPay(public_key, private_key)\nresponse = await liqpay_manager.post( \n        return_url=True,\n        data={\n            \"action\": \"hold\",\n            \"version\": \"3\",\n            \"amount\": \"1\",\n            \"currency\": \"UAH\",  # or any currency\n            \"description\": \"Pin card\",\n            \"language\": \"uk|en\"     # liqpay have only (\"uk\", \"en)\n            \"order_id\": f\"{id_user from token} {str(uuid.uuid4())}\",    # id_user from token need for pin card to user\n            \"server_url\": f\"{YOUR_HOST}{URL}\",  # for callback response\n            \"recurringbytoken\": \"1\",    # for get token in response callback\n        },\n    )\n    \n    # check on bad response\n    if response[\"status\"] in (0, 1):\n        # when response status 0 or 1 from response dict u can get key 'err_code' - https://www.liqpay.ua/doc/api/errors\n        raise\n    \n# OK response - {\"url: url, status: STATUS_MAPPING}\n# return url on SDK\n\n# When u sent card credentials in checkout SDK LiqPay. U get response on the url(server_url) from request dict\n#Example:\n\nfrom fastapi import Request, Body\n\nLIQPAY_DOMAIN = \"liq_pay domain\"\n\nasync def pin_card(\n        request: Request,\n        liq_pay: YourModel = Body(...),\n):\n    origin = request.headers.get(\"origin\")\n    if not origin or origin != LIQPAY_DOMAIN:   # for security\n        raise \n    \n    data = liq_pay.order_id.split()\n\n    await liqpay_manager.post(\n                data={\n                    \"action\": \"refund\",     # refund money\n                    \"version\": \"3\",\n                    \"order_id\": liq_pay.order_id,\n                }\n            )\n\n    # and save data from callback\n\n    # data[0] - its id user from order_id\n    # card_token, sender_card_mask2, sender_card_type\n\n```\n\nExample 2: For other operation by token card\n-------\n\n**Backend**\n\nRequest url: https://www.liqpay.ua/api/request\n\n```python\nfrom liqpay_async import LiqPay\n\nliqpay_manager = LiqPay(public_key, private_key)\n\n# https://www.liqpay.ua/doc/api/internet_acquiring/checkout?tab=1\nresponse = await liqpay_manager.post( \n        data={\n            \"action\": \"your action\",\n            \"version\": \"3\",\n            \"amount\": \"1\",\n            \"currency\": \"UAH\",  # or any currency\n            \"description\": \"Your desc\",\n            \"language\": \"uk|en\"     # liqpay have only (\"uk\", \"en)\n            \"order_id\": \"str(uuid.uuid4())\",\n            \"card_token\": your_card_token\n        },\n    )\n    \n# OK response - {status: STATUS_MAPPING and others)\n\n\n```\n\nExample 3: Errors\n-------\n\n**Backend**\n\n```python\n\n# if response aiothhp error -> response {\"status\": 0}\n\n\n```\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "LiqPay Async Python3 SDK",
    "version": "0.0.1",
    "project_urls": {
        "Homepage": "https://github.com/SpaceIgor/liqpay-async"
    },
    "split_keywords": [],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "651f533a8ffc4763e718e679cd93356b9ad79e200f79ed6763e194cda4871f93",
                "md5": "65ef3f65815e163e614a3dbd8903304f",
                "sha256": "85dada930ce3ad26a45f43e9fa2fd1b2d3bf7e84feb4641dbe7948f1e8306081"
            },
            "downloads": -1,
            "filename": "liqpay-async-0.0.1.tar.gz",
            "has_sig": false,
            "md5_digest": "65ef3f65815e163e614a3dbd8903304f",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 3358,
            "upload_time": "2024-08-23T12:34:41",
            "upload_time_iso_8601": "2024-08-23T12:34:41.026984Z",
            "url": "https://files.pythonhosted.org/packages/65/1f/533a8ffc4763e718e679cd93356b9ad79e200f79ed6763e194cda4871f93/liqpay-async-0.0.1.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-08-23 12:34:41",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "SpaceIgor",
    "github_project": "liqpay-async",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": false,
    "lcname": "liqpay-async"
}
        
Elapsed time: 0.31402s