LiqPay Python3 SDK
Project description
- Web: https://www.liqpay.ua/
- Download: https://pypi.org/project/liqpay-sdk-python3/
- Source: https://github.com/aorzh/liqpay-sdk-python3
- 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
- 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 liqpay-sdk-python3
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: Basic
Backend Get payment button (html response)
liqpay = LiqPay(public_key, private_key)
html = liqpay.cnb_form({
'action': 'pay',
'amount': '1',
'currency': 'USD',
'description': 'description text',
'order_id': 'order_id_1',
'version': '3',
'language': 'ru|uk|en'
})
Get plain checkout url:
liqpay = LiqPay(public_key, private_key)
html = liqpay.checkout_url({
'action': 'auth',
'amount': '1',
'currency': 'USD',
'description': 'description text',
'order_id': 'order_id_1',
'version': '3',
'language': 'ru|uk|en',
'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='eyJhbW91bnQiOi...='/>
<input type='hidden' name='signature' value='edUs4...='/>
<button style="border: none !important;display:inline-block !important;text-align: center !important; padding: 7px 20px !important; color: #fff !important;font-size:16px !important; font-weight: 600 !important; font-family:OpenSans, sans-serif;cursor: pointer !important;border-radius: 2px !important;background: rgba(122,183,43,1) !important;"onmouseover="this.style.opacity=0.5;" onmouseout="this.style.opacity=1;"> <img src="https://static.liqpay.ua/buttons/logo-small.png" name="btn_text" style="margin-right: 7px !important; vertical-align: middle !important;"/>
<span style="vertical-align:middle;!important">PAY 100 UAH</span>
</button>
</form>
Example 2: Integrate Payment widget to Django
Payment widget documentation
https://www.liqpay.ua/documentation/en/api/aquiring/widget/
Backend
views.py
from liqpay 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',
'version': '3',
'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
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file liqpay-sdk-python3-1.0.6.tar.gz
.
File metadata
- Download URL: liqpay-sdk-python3-1.0.6.tar.gz
- Upload date:
- Size: 5.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f3ae7821b6d06d34e799cb08b245611e13da67bfafe92517971f298973c43cb |
|
MD5 | d6c86da410ccd0869ce87d27fac0fafd |
|
BLAKE2b-256 | e1d4d19fa086e73058fa5821a1c64800f47b9fc83bb299caeffad412ad800ab1 |
File details
Details for the file liqpay_sdk_python3-1.0.6-py3-none-any.whl
.
File metadata
- Download URL: liqpay_sdk_python3-1.0.6-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00440ecb4b11eded8bf3121850cb91ae49db2ea2c4e7d1b76e727bbff1c4a7de |
|
MD5 | 86f5e9a33b8fa85a8ebd9453361e9d7f |
|
BLAKE2b-256 | cb8da2da6246875d6f740c35620a14fdb98467405d38ba9664dd7ea11990fc5c |