[](https://www.python.org/downloads/release/python-360/)
[](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": "[](https://www.python.org/downloads/release/python-360/)\n\n[](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"
}