API

Инструкция подключения к API v1

Чтобы начать принимать платежи через Payplug.in, вам необходимо разместить простую HTML форму на вашем сайте, с которого вы планируете получать платежи. Форма будет передавать данные (параметры) на сервер Payplug.in. После того, как форма будет заполнена правильно и отправлена на сервер Payplug.in, клиент перейдет к странице оплаты, где он может осуществить платеж.

Настройки:

  • amount - цена товара
  • description – описание товара
  • operation_id - id заказа (дополнительная информация для магазина)
  • user_name – имя пользователя (необязательный параметр)
  • user_email – email пользователя (необязательный параметр)
  • user_phone – телефон пользователя (необязательный параметр)
<form action="https://*your-domain*.payplug.in/gateways/api/v1"
	 method="POST" accept-charset="utf-8">
 <input type="hidden" name="amount" value="2.50" />
 <input type="hidden" name="description" value="ticket#12345" />
 <input type="hidden" name="operation_id"  value="12345" />
 <input type="submit" value="BUY" />
</form>

Инструкция подключения к API v2

API соединения v2 - двусторонняя связь с магазином через Payplug.in

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

<form action="https://*your-domain*.payplug.in/gateways/api/v2" method="POST"
	 accept-charset="utf-8">
 <input type="hidden" name="parameters_xml" value="PHJlcXVlc3Q+PG9w9p......." />
 <input type="hidden" name="signature" value="LWxk4fJY1ZaR9XNR4LQXN1mAb4E=" />
 <input type="submit" value="BUY" />
</form>
  • parameters_xml - parameters_xml (Шаг 2).
  • signature  - сигнатура (Шаг 4).
  • user_name – имя пользователя (необязательный параметр)
  • user_email – email пользователя (необязательный параметр)
  • user_phone – телефон пользователя (необязательный параметр)

Шаг 2. Создание XML для поля parameters_xml.

Для поля parameters_xml вам необходимо создать следующий XML.

<request>
       <operation_id>12345</operation_id>
       <amount>2.50</amount>
       <description>ticket#12345</description>
</request>

Значение тегов:

  • operation_id - id заказа (дополнительная информация для магазина)
  • amount - цена товара
  • description – описание товара

Шаг 3. Упаковка XML

Операция упаковки XML. Пример кода:

Java: String parameters_xml=Base64.encode(xml.getBytes("UTF-8"));
Perl: $parameters_xml=encode_base64($xml, '');
PHP: $parameters_xml=base64_encode($xml); 

Шаг 4. Создание сигнатуры.

Данные для создание сигнатура: неупакованный XML + ключ. Пример кода:

Java: String signature=base64.encode(sha1 ( (xml+ key).getBytes("UTF-8") ));
PHP: $signature=base64_encode(sha1($xml.$key,1));
Perl: $signature=encode_base64(sha1($xml.$key), ''); 

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

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

<form action="https://*your-domain*.payplug.in/gateways/api/v2" method="POST"
	 accept-charset="utf-8">
 <input type="hidden" name="parameters_xml" value="PHJlcXVlc3Q+PG9w9p......." />
 <input type="hidden" name="signature" value="LWxk4fJY1ZaR9XNR4LQXN1mAb4E=" />
 <input type="submit" value="BUY" />
</form>

Шаг 6. Получение ответа от сервера Payplug.in

После оплаты, наш ответ придет на адрес serverUrl

Шаг 7. Работа с ответом от сервера Payplug.in

Параметры ответа:

  • parameters_xml - зашифрованный XML
  • signature  - сигнатура

Параметры parameters_xml и signature будут в зашифрованном виде. Для расшифровки parameters_xml вы должны выполнить следующую процедуру. Пример кода:

Java: String xml_decoded = new String(Base64.decode(parameters_xml), "UTF8");
Perl: $xml_decoded=decode_base64($parameters_xml);
PHP: $xml_decoded=base64_decode($parameters_xml);

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

<response>
      <operation_id>12345</operation_id>"
      <amount>2.50</amount>"
      <description>ticket#12345</description>"
      <status>success</status>
      <payment_id>31</payment_id>
</response>

Значение тегов:

  • operation_id - id заказа, полученные от интернет-магазина
  • amount - цена товара
  • description – описание товара
  • status – статус операции
  • payment_id – id операции в payplug.in
* Примечание. Статус может принимать значение "pending", "success" или "failure"

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

Чтобы проверить правдивость ответов, вам необходимо создать сигнатуру. Пример кода:

Java: String signature=base64.encode(sha1 ( xml_decoded+ key));
PHP: $signature=base64_encode(sha1($xml_decoded.$key,1));
Perl: $signature=encode_base64(sha1($xml_decoded.$key));

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