Русский English Українська
 

Инструкция по установке Liq&Buy; 1.2

Внеси изменения в протокол Liq&Buy; 1.2, узнай рейтинг товара. NEW!

Buy / 3472 Buys

Интерфейс для разработчиков, API LiqPay

Перед стартом:

Пароль мерчанта(merchant_sig) это уникальная запись мерчанта, которая выдается во время регистрации вашего магазина в нашей системе.

Свой merchant_id(номер мерчанта) и merchant_sig(подпись{пароль} мерчанта) можно посмотреть в разделе Настройки магазина после авторизации.

Шаг 1: Создание формы

У вас на сайте должна находиться форма с полями operation_xml и signature(данные поля должны быть написаны с маленькой буквы) пример формы:

Пример на языке PHP

Шаг 2: Создание XML для поля operation_xml

Для поля operation_xml вам необходимо составить XML следующего вида (который будет отправляться к нам на сервер в закодированном виде) пример кода на PHP:

    Примечание, по тегам
  • merchant_id - id мерчанта
  • result_url - страница на которую вернется клиент
  • server_url - страница на которую прийдет ответ от сервера
  • order_id - id заказа
  • amount - стоимость
  • currency - Валюта
  • description - Описание
  • default_phone - телефон введённый на форме оплаты по умолчанию
  • pay_way - способ которым оплатит покупатель(с карты, с телефона, наличными (card, liqpay, delayed)), допускается перечисление параметров в любом порядке, через запятую
  • goods_id - id товара, используется только для счетчика покупок данного товара (необязательный, только цифры)
  • exp_time - время в течении которого данный товар можно оплатить в терминале самообслуживания в часах (по умолчанию - 36 часов)NEW!

*Примечание: Во всех полях XML не должена присутствовать кирилица, или ваш запрос не будет обработан.

Шаг 3: Создание подписи signature

Генерируем подпись покупателя в поле signature, данная подпись имеет вид: подпись(пароль) мерчанта + неупакованный XML - операции + подпись(пароль) мерчанта

Примеры кода:

PHP: $sign=base64_encode(sha1($merc_sign.$xml.$merc_sign,1));
Perl: $sign=encode_base64(sha1($merc_sign.$xml.$merc_sign));

Шаг 4: Запаковка XML

После чего запаковываем XML операции, пример кода:

Perl: $xml_encoded=encode_base64($xml);
PHP: $xml_encoded=base64_encode($xml);

Шаг 5: Отправка запроса

После этих процедур необходимо отправить данные через форму, пример кода:

Шаг 6: Получение ответа от нашего сервера

После отправки данных, наш ответ прийдет вам на на url указанный в <server_url/>server_url</server_url/> который вы указали в XML. Вызова этого url не происходит, идет просто отправка на него данных.

Шаг 7: Работа с ответом

Наш ответ прийдет к вам в закодированном виде, методом POST в переменных operation_xml и signature (по аналогии с запросом). Чтоб раскодировать operation_xml вам необходимо проделать следующую процедуру, пример:

Perl: $xml_decoded=decode_base64($xml);
PHP: $xml_decoded=base64_decode($xml);

После распаковки вы получите XML следующего вида:

    Примечание, по тегам
  • merchant_id - id мерчанта
  • order_id - id заказа
  • amount - стоимость
  • currency - Валюта
  • description - Описание
  • status - статус транзакции
  • code - код ошибки (если есть ошибка)
  • transaction_id - id транзакции в системе LiqPay
  • pay_way - способ которым оплатит покупатель(если не указывать то он сам выбирает, с карты или с телефона(liqpay, card))
  • sender_phone - телефон оплативший заказ
  • goods_id - id товара в счетчике покупок (если был передан) NEW!
  • pays_count - число завершенных покупок данного товара (если был передан goods_id) NEW!
    *Примеры статусов
  • status="success" - покупка совершена
  • status="failure" - покупка отклонена
  • status="wait_secure" - платеж находится на проверке

Проверка происходит когда человек первый раз оплачивает своей картой в системе, система пока молодая так что status="wait_secure" будет происходить часто. Если вы не пользуетесь автоматикой, то вы должны дождаться когда транзакция пройдет проверку и вам поступят деньги от нее, это видно в аккаунте системы.

Шаг 8: Проверка подлинности

Вам необходимо удостовериться в действительности полученной информации. Вы должны из полученного XML составить подпись как в поле signature и сравнить с той которая пришла в ответе от нас. Пример кода:

PHP: $sign=base64_encode(sha1($merc_sig.$xml(полученный).$merc_sig,1));
Perl: $sign=encode_base64(sha1($merc_sig.$xml(полученный).$merc_sig));

После чего провести сравнение полученной нашей подписи и той подписи которая получилась у вас. Если они совпали, значит этому ответу можно доверять, если нет то данный ответ должен быть отброшен.