Публічний
Checkout
Персоналізована платіжна сторінка - 10 методів оплати
Схема роботи checkout

Підключення
- Створіть компанію в LiqPay за посиланням:
Після реєстрації для Вашої компанії автоматично будуть створені унікальні ключі доступу до API:
public_key - унікальний ідентифікатор Вашої компанії в системі LiqPay
private_key - секретний ключ доступу до API - Відповідно до технічної документації сформуйте запит на API
Формування запиту до API при самостійній інтеграції:
Приклад використання SDK:
#!/bin/bash PUBLIC_KEY='your_public_key' PRIVATE_KEY='your_private_key' JSON="{ \"version\" : 3, \"public_key\" : \"${PUBLIC_KEY}\", \"action\" : \"pay\", \"amount\" : 1, \"currency\" : \"USD\", \"description\" : \"description text\", \"order_id\" : \"order_id_1\" }" # DATA is base64_encode result from JSON string DATA=$(echo -n ${JSON} | base64) # SIGNATURE is base64 encode result from sha1 binary hash from concatenate string ${PRIVATE_KEY}${DATA}${PRIVATE_KEY} SIGNATURE=$(echo -n "${PRIVATE_KEY}${DATA}${PRIVATE_KEY}" | openssl dgst -binary -sha1 | base64) echo "data: ${DATA}" echo "signature: ${SIGNATURE}" # DATA in this example # eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv # biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv # biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ== # SIGNATURE in this example # QvJD5u9Fg55PCx/Hdz6lzWtYwcI=
$liqpay = new LiqPay($public_key, $private_key); $html = $liqpay->cnb_form(array( 'action' => 'pay', 'amount' => '1', 'currency' => 'USD', 'description' => 'description text', 'order_id' => 'order_id_1', 'version' => '3' ));
HashMap<String, String> params = new HashMap<String, String>(); params.put("action", "pay"); params.put("amount", "1"); params.put("currency", "USD"); params.put("description", "description text"); params.put("order_id", "order_id_1"); params.put("version", "3"); LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY); String html = liqpay.cnb_form(params); System.out.println(html);
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" })
liqpay = Liqpay::Liqpay.new( :public_key => 'public_key', :private_key => 'private_key' ) html = liqpay.cnb_form({ :action => "pay", :amount => "1", :currency => "USD", :description => "description text", :order_id => "order_id_1", :version => "3" })
LiqPay = liqpay:init(PublicKey, PrivateKey), Html = liqpay:cnb_form([ {<<"action">>, <<"pay">>}, {<<"amount">>, <<"1">>}, {<<"currency">>, <<"USD">>}, {<<"description">>, <<"description text">>}, {<<"order_id">>, <<"order_id_1">>}, {<<"version">>, <<"3">>} ], LiqPay)
var LiqPay = require('liqpay'); var liqpay = new LiqPay(public_key, private_key); var html = liqpay.cnb_form({ 'action' : 'pay', 'amount' : '1', 'currency' : 'USD', 'description' : 'description text', 'order_id' : 'order_id_1', 'version' : '3' });
my $liqpay = Liqpay->new($public_key,$private_key); my $html = $liqpay->cnb_form({ 'action' => 'pay', 'amount' => '1', 'currency' => 'USD', 'description' => 'description text', 'order_id' => 'order_id_1', 'version' => '3' } );
Init("my_public_key", "my_private_key") Form(map[string]interface{}{ "action": "pay", "version": 3, "public_key": PublicKey, "amount": 1, "currency": "UAH", "description": "Test payment", "order_id": "order_id_1", } );
Приклад HTML-форми:
<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>
Параметри для формування data:
Основні
Parameter | Required | Type | Description |
---|---|---|---|
version | Required | Number | Версія API. Поточне значення - 3 |
public_key | Required | String | Публічний ключ - ідентифікатор магазину. Отримати ключ можна в налаштуваннях магазину |
action | Required | String | Тип операції. Можливі значення: pay - платіж, hold - блокування коштів на рахунку відправника, subscribe - регулярний платіж, paydonate - пожертва, auth - предавторізація картки |
amount | Required | Number | Сума платежу. Наприклад: 5, 7.34 |
currency | Required | String | Валюта платежу. Можливі значення: USD, EUR, RUB, UAH |
description | Required | String | Призначення платежу. |
order_id | Required | String | Унікальний ID покупки у Вашому магазині. Максимальна довжина 255 символів. |
expired_date | Optional | String | Час до якого клієнт може оплатити рахунок за UTC. Передається в форматі 2016-04-24 00:00:00 |
language | Optional | String | Мова клієнта ru, uk, en |
paytypes | Optional | String | Параметр в якому передаються способи оплати, які будуть відображені на чекауті. Можливі значення apay - оплата за допомогою Apple Pay, gpay - оплата за допомогою Google Pay, card - оплата карткою, liqpay - через кабінет liqpay, privat24 - через кабінет приват24, masterpass - через кабінет masterpass, moment_part - розстрочка, cash - готівкою, invoice - рахунок на e-mail, qr - сканування qr-коду. Якщо параметр не переданий, то застосовуються настройки магазину, вкладка Checkout. |
result_url | Optional | String | URL у Вашому магазині на який покупець буде переадресовано після завершення покупки. Максимальна довжина 510 символів. |
server_url | Optional | String | URL API в Вашому магазині для повідомлень про зміну статусу платежу (сервер->сервер). Максимальна довжина 510 символів. Детальніше |
verifycode | Optional | String | Можливе значення Y. Динамічний код верифікації, генерується і повертається в Callback. Так само згенерований код буде переданий в транзакції верифікації для відображення у виписці по картці клієнта. Працює для action= auth. |
Параметри розщеплення платежу
split_rules | Optional | String |
Платіж з розщепленням суми на декількох одержувачів. У цьому параметрі вказується JSON масив з правилами розщеплення платежу. При використанні параметра split_rules відбувається одне списання з клієнта і кілька зарахувань одержувачам. Еквайрингова комісія стягується з кожного магазину в масиві split_rules. Приклад JSON рядка:
[ { "public_key": "i000000001", "amount": 1, "commission_payer": "sender", "server_url": "https://server1/callback" }, { "public_key": "i000000002", "amount": 2, "commission_payer": "receiver", "server_url": "https://server2/callback" } ] |
Параметри відправника
sender_address NEW | Optional | String | Адреса відправника |
sender_city | Optional | String | Місто відправника |
sender_country_code | Optional | String | Код країни відправника. Цифровий ISO 3166-1 код |
sender_first_name | Optional | String | Ім'я відправника |
sender_last_name | Optional | String | Прізвище відправника |
sender_postal_code | Optional | String | Поштовий індекс відправника |
Параметри захищеного платежу
letter_of_credit | Optional | String | Щоб включити прийом платежів за акредитивом передайте параметр із значенням1 |
letter_of_credit_date | Optional | String | Дата закінчення терміну акредитива в наступному форматі 2015-03-31 00:00:00 по UTC. |
Параметри регулярного платежу
subscribe | Optional | String | Регулярний платіж. Можливі значення: 1 |
subscribe_date_start | Optional | String | Дата першого платежу. Час необхідно вказувати в такому форматі 2015-03-31 00:00:00 по UTC. Якщо вказана минула дата, то підписка буде активована з поточної дати отримання запиту |
subscribe_periodicity | Optional | String | Періодичність списання коштів. Можливі значення: month - раз на місяць year - раз на рік |
Параметри для оплати в 1 клік
customer | Optional | String |
Унікальний ідентифікатор клієнта на сайті мерчанта. При передачі параметра LiqPay запам'ятовує платіжні реквізити клієнта і його ідентифікатор - подальша оплата може бути проведена в 1 клік. Максимальна довжина 100 символів. (При використанні параметра для Masterpass 1 клік, в даному полі передається валідный номер телефону платника) |
recurringbytoken | Optional | String | Дозволяє генерувати card_token платника, який ви отримаєте в callback запиті на server_url. card_token дозволяє проводити платежі без введення реквізитів картки платника, використовуючи API оплати за токеном - тобто в 1 клік. Для отримання card_token необхідно передати в запиті значення: 1 |
customer_user_id | Optional | String | Ідентифікатор користувача в системі мерчанта, передається при кожній оплаті користувача (не повинен збігатися з customer, використовується для оплати за допомогою гаманця Masterpass 1 клік) |
Інші параметри
dae | Optional | String | Довгий запис Detail Addenda. Параметр dae являє собою JSON рядок, до якого застосували функцію base64. JSON може містити наступні параметри: { "airLine": "Avia", // абревіатура авіакомпанії, max 4 символів. "ticketNumber": "ACSFD12354SA", // номер квитка, max 15 символів. "passengerName": "John Doe", // ім'я пасажира, max 29 символів. "flightNumber": "742", // номер рейсу, max 5 цифр. "originCity": "DP", // код міста/аеропорту вильоту, max 5 символів. "destinationCity": "NY", // код міста/аеропорту призначення, max 5 символів. "departureDate": "100514" // дата вильоту в форматі YYMMDD, max 6 цифр. } |
info | Optional | String | Інформація для додавання даних до платежу. Наприклад: "External information for payments" |
product_category | Optional | String | Категорія товару. Максимальна довжина 25 символів. |
product_description | Optional | String | Опис товару. Максимальна довжина 500 символів. |
product_name | Optional | String | Назва товару. Максимальна довжина 100 символів. |
product_url | Optional | String | Адреса сторінки з товаром. Максимальна довжина 2000 символів. |
Буде корисно
Callback
Отримання статусу та інформації про платіж
Errors
Відомості та помилки, які повертаються у відповіді системою LiqPay