Callback 3.0 public
Уведомление о смене статуса платежа server->server
После смены статуса платежа, если был указан параметр server_url, на Ваше API будет отправлен POST запрос с двумя параметрами data и signature , где:
data - результат функции base64_encode( $json_string )
signature - результат функции base64_encode( sha1( $private_key . $data . $private_key, 1 ) )
Response
| Param | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| err_code | String | Код ошибки. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| err_description | String | Описание ошибки. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| version | Number | Версия API. Текущее значение - 3 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| result | String | Результат выполнения запроса ok или error. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bot_name | String | Имя бота кошелька LiqPay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bot_in_contacts | Bollean | Этот параметр указывает добавил ли уже клиент бота кошелька LiqPay себе в контакты или его нужно попросить добавить бота. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| status | String |
Статус платежа. Возможные значения:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| type | String | Тип платежа. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| qr_code | String | QR-код по которому клиент может произвести оплату | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bitcoin_amount | Number | Сумма в BTC | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bitcoin_addr | String | Кошелек Bitcoin на который клиент должен перевести bitcoin_amount | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bitcoin_addr | String | Кошелек Bitcoin который необходимо пополнить | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| bitcoin_rate | String | Курс Bitcoin | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| err_erc | String | Код ошибки. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| redirect_to | String | Ссылка на которую необходимо перенаправить клиента для прохождения 3DS верификации. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| token | String | Token платежа. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| card_token | String | Token карты оправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| payment_id | Number | Id платежа в системе LiqPay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| id | Number | Id платежа в системе LiqPay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public_key | String | Публичный ключ магазина | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| acq_id | Number | ID еквайера | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| order_id | String | Order_id платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| liqpay_order_id | String | Order_id платежа в системе Liqpay | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| description | String | Комментарий к платежу | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_phone | String | Телефон оправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_card_mask2 | String | Карта отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_card | String | Карта отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_card_bank | String | Банк отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_card_country | String | Страна карты отправителя. Цифровой ISO 3166-1 код | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_user_ip | String | IP адрес отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_card_type | String | Тип карты отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| paytype | String | Способ оплаты | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ip | String | IP адрес отправителя | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| info | String | Дополнительная информация о платеже | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| customer | String | Уникальный идентификатор пользователя на сайте мерчанта. Максимальная длина 100 символов. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| amount | Number | Сумма платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| currency | String | Валюта платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_commission | Number | Комиссия с отправителя в валюте платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| receiver_commission | Number | Комиссия с получателя в валюте платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| agent_commission | Number | Комиссия агента в валюте платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| amount_debit | Number | Сумма транзакции debit в валюте currency_debit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| amount_credit | Number | Сумма транзакции credit в валюте currency_credit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commission_debit | Number | Комиссия с отправителя в валюте currency_debit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| commission_credit | Number | Комиссия с получателя в валюте currency_credit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| currency_debit | String | Валюта транзакции debit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| currency_credit | String | Валюта транзакции credit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| sender_bonus | Number | Бонус отправителя в валюте платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| amount_bonus | Number | Бонус отправителя в валюте платежа debit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| refund_amount | Number | Сумма возврата | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| completion_date | String | Дата списания средств | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| authcode_debit | String | Код авторизации по транзакции debit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| authcode_credit | String | Код авторизации по транзакции credit | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rrn_debit | String | Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Retrieval Reference number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| rrn_credit | String | Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Retrieval Reference number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| arrn_debit | String | Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Acquirer's Reference Number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| arrn_credit | String | Уникальный номер транзакции в системе авторизации и расчетов обслуживающего банка Acquirer's Reference Number | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| verifycode | String | Код верификации | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| action | String | Тип операции. Возможные значения: pay - платеж, hold - блокировка средств на счету отправителя, paysplit - разбивка суммы, subscribe - регулярный платеж, paydonate - пожертвование | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| is_3ds | Boolean |
Возможные значения: true - транзакция прошла с 3DS проверки, false - транзакция прошла без 3DS проверкой |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ecommerce_auth_code_debit | String | Код авторизации | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| trans_type | String | Тип транзакции. Возможные значения r - reverse, hc - hold_compl, pr - purchase, rf - refund | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| create_date | String | Дата создания платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| end_date | String | Дата завершения/изменения платежа | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mpi_req_pareq | String | Параметр, необходимый для аутентификации отправителя на странице ACS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mpi_req_md | String | Параметр, необходимый для аутентификации отправителя на странице ACS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mpi_req_url | String | адрес страницы банка-эмитента карты (ACS страница), на которую нужно перенаправить клиента для прохождения 3D-Secure | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| mpi_status | String |
N - карта не участвует, перенаправление клиента для прохождения 3D-Secure не требуется,
U - не удалось проверить карту на участие, перенаправление клиента для прохождения 3D-Secure не требуется, Y - карта поддерживает сервис 3D-Secure и в параметре mpi_req_url будет присутствовать адрес страницы банка-эмитента, куда нужно будет передать методом POST параметры mpi_req_pareq и mpi_req_md в следующей форме:
<form name="MPIform" action='${mpi_req_url}' method="POST">
<input type="hidden" name="PaReq" value='${mpi_req_pareq}'>
<input type="hidden" name="MD" value='${mpi_req_md}'>
<input type="hidden" name="TermUrl" value='${TermUrl}'>
</form>
где TermUrl – адрес страницы, на которую эмитент вернет ответ с параметрами PaRes и MD. Для проведения платежа с уже пройденным 3DS при создании платежа необходимо передать параметры mpi_pares и mpi_md, со значениями PaRes и MD, которые были получены от ACS банка эмитента.
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| public_key | String | Публичный ключ мерчанта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| private_key | String | Приватный ключ мерчанта | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| data | String | Данные | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| product_url | String | Адрес страницы с товаром. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| product_category | String | Категория товара. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| product_name | String | Название товара. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| product_description | String | Описание товара. | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Проверка Callback сигнатуры
#!/bin/bash
PUBLIC_KEY='your_public_key'
PRIVATE_KEY='your_private_key'
POST_DATA='base64_post_string'
POST_SIGNATURE='tp+ZLmKm1/E83dIzUpx5ljcttP4='
# SIGNATURE is base64 encode result from sha1 binary hash from concatenate string ${PRIVATE_KEY}${POST_DATA}${PRIVATE_KEY}
SIGNATURE=$(echo -n "${PRIVATE_KEY}${POST_DATA}${PRIVATE_KEY}" | openssl dgst -binary -sha1 | base64)
if [ "x${POST_SIGNATURE}" == "x${SIGNATURE}" ]
then
echo "ok"
else
echo "invalid signature: ${POST_SIGNATURE} != ${SIGNATURE}"
fi
# POST_DATA in this example
# base64_post_string
# SIGNATURE in this example
# tp+ZLmKm1/E83dIzUpx5ljcttP4=
$sign = base64_encode( sha1( $private_key . $data . $private_key , 1 ));
LiqPay liqpay = new LiqPay(PUBLIC_KEY, PRIVATE_KEY); String sign = liqpay.str_to_sign( PRIVATE_KEY + $data + PRIVATE_KEY ); System.out.println(sign);
"> liqpay = LiqPay(PUBLIC_KEY, PRIVATE_KEY) sign = liqpay.str_to_sign( PRIVATE_KEY + $data + PRIVATE_KEY )
liqpay = Liqpay::Liqpay.new( :public_key => 'public_key', :private_key => 'private_key' ) sign = liqpay.str_to_sign( PRIVATE_KEY + $data + PRIVATE_KEY )
Sign = liqpay:str_to_sign( <<PRIVATE_KEY/binary, Data/binary, PRIVATE_KEY/binary>> ).
var LiqPay = require('liqpay');
var liqpay = new LiqPay(public_key, private_key);
var sign = liqpay->str_to_sign(
PRIVATE_KEY +
data +
PRIVATE_KEY
);
my $liqpay = Liqpay->new($public_key,$private_key); my $sign = $liqpay->str_to_sign( PRIVATE_KEY + $data + PRIVATE_KEY );