Публичный
Платежный виджет
Виджет для приема платежей на web странице сайта
Схема работы платежного виджета:

Подключение
- Создайте компанию в LiqPay по ссылке:
После регистрации для Вашей компании автоматически будут созданы уникальные ключи доступа к API:
public_key - уникальный идентификатор Вашей компании в системе LiqPay
private_key - секретный ключ доступа к API - Согласно технической документации интегрируйте виджет.
Формирование запроса к API при самостоятельной интеграции:
Пример JS виджета:
<div id="liqpay_checkout"></div> <script> window.LiqPayCheckoutCallback = function() { LiqPayCheckout.init({ data: "eyAidmVyc2lvbiIgOiAzLCAicHVibGljX2tleSIgOiAieW91cl9wdWJsaWNfa2V5IiwgImFjdGlv" + "biIgOiAicGF5IiwgImFtb3VudCIgOiAxLCAiY3VycmVuY3kiIDogIlVTRCIsICJkZXNjcmlwdGlv" + "biIgOiAiZGVzY3JpcHRpb24gdGV4dCIsICJvcmRlcl9pZCIgOiAib3JkZXJfaWRfMSIgfQ==", signature: "QvJD5u9Fg55PCx/Hdz6lzWtYwcI=", embedTo: "#liqpay_checkout", language: "ru", 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>
Параметры платежного виджета
data | Required | String | json строка с параметрами APIs закодированная функцией base64_encode( json_string ), где base64_encode - возвращает строку, закодированную методом base64 |
signature | Required | String | Уникальная подпись каждого запроса base64_encode( sha1( private_key + data + private_key) ), где sha1 - возвращается хэш в виде бинарной строки из 20 символов. |
embedTo | Optional | String | Элемент на HTML-странице в котором будет отображен виджет |
mode | Optional | String | Режим отображения виджета на сайте. Возможные значения: embed - встроенное окно, popup - всплывающее окно на Вашем сайте. |
language | Optional | String | Язык отображения виджета ru, uk, en. |
Пример использования 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' } );
Параметры для формирования 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 | Параметр в котором передаются способы оплаты, которые будут отображены на чекауте. Возможные значения card - оплата картой, liqpay - через кабинет liqpay, privat24 - через кабинет приват24, masterpass - через кабинет masterpass, moment_part - рассрочка, cash - наличными, invoice - счет на e-mail, qr - сканирование qr-кода. Если параметр не передан, то применяются настройки магазина, вкладка Checkout. |
result_url | Optional | String | URL в Вашем магазине на который покупатель будет переадресован после завершения покупки. Максимальная длина 510 символов. |
sandbox | Optional | String | Включает тестовый режим. Средства с карты плательщика не списываются. Для включения тестового режима необходимо передать значение 1. Все тестовые платежи будут иметь статус sandbox - успешный тестовый платеж. |
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 символов. |