Asyncio LiqPay SDK for Python
Project description
- Version: 1.0.0
- Web: https://www.liqpay.ua/
- Download: https://pypi.org/project/aioliqpay
- Source: https://github.com/toxazhl/aioliqpay
- Documentation: https://www.liqpay.ua/documentation/en/
- Keywords: aioliqpay, liqpay, privat24, privatbank, python, internet acquiring, P2P payments, two-step payments, asyncio
What python version is supported?
- Python 3.6, 3.7, 3.8, 3.9, 3.10
Get Started
- Sign up in https://www.liqpay.ua/en/authorization.
- Create a company.
- In company settings, on API tab, get Public key and Private key.
- Done.
Installation
From pip
pip install aioliqpay
Working with LiqPay Callback locally
If you need debugging API Callback on local environment use https://localtunnel.github.io/www/
How it use?
Example 1: Basic
Backend Get payment button (html response)
liqpay = LiqPay(public_key, private_key)
html = liqpay.cnb_form(
action='pay',
amount=1,
currency='UAH',
description='description text',
order_id='order_id_1',
language='ua'
)
Get plain checkout url:
liqpay = LiqPay(public_key, private_key)
html = liqpay.checkout_url({
action='auth',
amount=1,
currency='UAH',
description='description text',
order_id='order_id_1',
language='ua',
recurringbytoken=1'
})
# Response:
str: https://www.liqpay.ua/api/3/checkout/?data=<decoded data>&signature=<decoded signature>
Frontend
Variable html
will contain next html form
<form method="POST" action="https://www.liqpay.ua/api/3/checkout" accept-charset="utf-8">
<input type="hidden" name="data" value="eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv
biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv
biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ=="/>
<input type="hidden" name="signature" value="QvJD5u9Fg55PCx/Hdz6lzWtYwcI="/>
<input type="image"
src="//static.liqpay.ua/buttons/p1ru.radius.png"/>
</form>
Example 2: Integrate Payment widget to Django
Payment widget documentation
https://www.liqpay.ua/documentation/en/api/aquiring/widget/
Backend
views.py
from aioliqpay import LiqPay
from django.views.generic import TemplateView
from django.shortcuts import render
from django.http import HttpResponse
class PayView(TemplateView):
template_name = 'billing/pay.html'
def get(self, request, *args, **kwargs):
liqpay = LiqPay(settings.LIQPAY_PUBLIC_KEY, settings.LIQPAY_PRIVATE_KEY)
params = {
'action': 'pay',
'amount': 100,
'currency': 'USD',
'description': 'Payment for clothes',
'order_id': 'order_id_1',
'sandbox': 0, # sandbox mode, set to 1 to enable it
'server_url': 'https://test.com/billing/pay-callback/', # url to callback view
}
signature = liqpay.cnb_signature(params)
data = liqpay.cnb_data(**params)
return render(request, self.template_name, {'signature': signature, 'data': data})
@method_decorator(csrf_exempt, name='dispatch')
class PayCallbackView(View):
def post(self, request, *args, **kwargs):
liqpay = LiqPay(settings.LIQPAY_PUBLIC_KEY, settings.LIQPAY_PRIVATE_KEY)
data = request.POST.get('data')
signature = request.POST.get('signature')
sign = liqpay.str_to_sign(settings.LIQPAY_PRIVATE_KEY + data + settings.LIQPAY_PRIVATE_KEY)
if sign == signature:
print('callback is valid')
response = liqpay.decode_data_from_str(data)
print('callback data', response)
return HttpResponse()
urls.py
from django.conf.urls import url
from billing.views import PayView, PayCallbackView
urlpatterns = [
url(r'^pay/$', PayView.as_view(), name='pay_view'),
url(r'^pay-callback/$', PayCallbackView.as_view(), name='pay_callback'),
]
Frontend
<div id="liqpay_checkout"></div>
<script>
window.LiqPayCheckoutCallback = function() {
LiqPayCheckout.init({
data: "{{ data }}",
signature: "{{ signature }}",
embedTo: "#liqpay_checkout",
mode: "embed" // embed || popup,
}).on("liqpay.callback", function(data){
console.log(data.status);
console.log(data);
}).on("liqpay.ready", function(data){
// ready
}).on("liqpay.close", function(data){
// close
});
};
</script>
<script src="//static.liqpay.ua/libjs/checkout.js" async></script>
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
aioliqpay-1.0.0.tar.gz
(5.4 kB
view details)
Built Distribution
File details
Details for the file aioliqpay-1.0.0.tar.gz
.
File metadata
- Download URL: aioliqpay-1.0.0.tar.gz
- Upload date:
- Size: 5.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23758a9cd3dee15e0b3cb383d687ffb5830864539d04da3ed1d6637848f6c738 |
|
MD5 | efe97d984a49b4345d37b065ee0857a8 |
|
BLAKE2b-256 | 57f8e5c76e316591770a4a4563e31daebee45b3133007f12871507c2c460a0b9 |
File details
Details for the file aioliqpay-1.0.0-py3-none-any.whl
.
File metadata
- Download URL: aioliqpay-1.0.0-py3-none-any.whl
- Upload date:
- Size: 5.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.4
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b9b0e8a7e7f894072fa3a1ee8a570a8424c198aa8482957bec6c306206e6df57 |
|
MD5 | f81547d9043544c6dbff0e72b4583827 |
|
BLAKE2b-256 | 079649ad1d63d033acc0277431a5dc1d012838ea3998e9badfacc7700e567990 |