LiqPy -- unofficial python library for LiqPay API.
Is it production ready?
Short answer: Well, yes, but actually no.
Long answer: It depends on what production readiness means for you. Implementation still lacks some LiqPay's functionality and tests coverage, but I, personally, use it in production. It gets work done in a most pythonic way I see it.
pip install liqpy
Create checkout link:
from liqpy.client import Client
client = Client(public_key=..., private_key=...)
client.checkout(
action="pay",
order_id=...,
amount=1,
currency="USD",
description="Payment Example",
server_url=...
)
Handle callback from LiqPay after checkout on your server (server_url
):
def handle_callback(data: str, signature: str):
try:
callback = client.callback(data, signature)
print(callback)
except AssertionError as e:
print("LiqPay callback verification failed.", e)
Create Python environment (optional):
python -m env env
Install requirements:
pip install -r requirements.txt -r requirements-dev.txt
Get your public_key
and private_key
from LiqPay.
Write keys to .env
file as follows:
LIQPAY_PUBLIC_KEY=${public_key}
LIQPAY_PRIVATE_KEY=${private_key}
Bind localhost port to the Internet:
ngrok http 8000
Look for the similar line in console:
Forwarding https://7kh6-111-111-111-111.ngrok-free.app -> http://localhost:8000
Add server URL to .env
file:
SERVER_URL=https://7kh6-111-111-111-111.ngrok-free.app
Start local webhook handler:
python -m tests.server
Now you can recieve callbacks after requesting LiqPay API.
from os import environ
from dotenv import load_env
from liqpay.client import Client
client = Client()
client.request(
action=...,
order_id=...,
amount=...,
server_url=environ.get("SERVER_URL")
)
See readme.ipynb
for more examples.