<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="uk">
	<id>https:///index.php?action=history&amp;feed=atom&amp;title=%D0%90PI_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%BD%D1%8B%D1%85_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2</id>
	<title>АPI для платежных терминалов - Історія редагувань</title>
	<link rel="self" type="application/atom+xml" href="https:///index.php?action=history&amp;feed=atom&amp;title=%D0%90PI_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%BD%D1%8B%D1%85_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2"/>
	<link rel="alternate" type="text/html" href=""/>
	<updated>2026-05-06T13:37:54Z</updated>
	<subtitle>Історія редагувань цієї сторінки в вікі</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id></id>
		<title>Sv: Sv перейменував сторінку з API для платежных терминалов на АPI для платежных терминалов без створення перенаправлення</title>
		<link rel="alternate" type="text/html" href=""/>
		<updated>2025-01-13T19:22:12Z</updated>

		<summary type="html">&lt;p&gt;Sv перейменував сторінку з &lt;a href=&quot;/index.php?title=API_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%BD%D1%8B%D1%85_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;API для платежных терминалов (такої сторінки не існує)&quot;&gt;API для платежных терминалов&lt;/a&gt; на &lt;a href=&quot;/index.php?title=%D0%90PI_%D0%B4%D0%BB%D1%8F_%D0%BF%D0%BB%D0%B0%D1%82%D0%B5%D0%B6%D0%BD%D1%8B%D1%85_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2&quot; title=&quot;АPI для платежных терминалов&quot;&gt;АPI для платежных терминалов&lt;/a&gt; без створення перенаправлення&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Нова сторінка&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Общая информация==&lt;br /&gt;
API запросы выполняются по http(s)-протоколу, в ответ приходит json. В ключе error -  код ошибки (0 - отсутствие ошибки)&lt;br /&gt;
&lt;br /&gt;
Тестировать API можно с консоли, например:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
curl 'https://app.nodeny-plus.com.ua/cgi-bin/api.pl'&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Опрос урла без каких-либо параметров должен возвращать result = 0:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
   {&amp;quot;error&amp;quot;:0}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это можно использовать для тестирования доступности и работоспособности API&lt;br /&gt;
&lt;br /&gt;
==Подписывание данных==&lt;br /&gt;
&lt;br /&gt;
Вместе с данными, терминал должен прислать в параметре '''signature''' строку, которая вычисляется по следующей формуле:&lt;br /&gt;
* необходимо отсортировать по именам все посылаемые параметры и объединить символом '|' (вертикальная черта): параметр|значение|параметр|значение&lt;br /&gt;
* к полученной строке добавить символ '|' и пароль к API NoDeny&lt;br /&gt;
* получить md5 хеш от полученной строки&lt;br /&gt;
&lt;br /&gt;
Например, терминал посылает на  API следующие данные:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = info&lt;br /&gt;
account = 5982&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
После сортировки и конкатенации получаем строку: '''account|5982|command|info'''&lt;br /&gt;
&lt;br /&gt;
После добавления к полученной строке '''|пароль_от_api''' получаем '''account|5982|command|info|пароль_от_api'''&lt;br /&gt;
&lt;br /&gt;
Далее применяем алгоритм md5 и получаем результат: '''3eb6d78df0be8d54e170b15d596c7706'''&lt;br /&gt;
&lt;br /&gt;
Пример на языке perl:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$signature = Digest::MD5-&amp;gt;new-&amp;gt;add($string.'|'.$api_password)-&amp;gt;hexdigest;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Пример на bash:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo -n 'account|5982|command|info|hardpassword' | md5sum&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Итоговый запрос будет следующим:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
https://app.nodeny-plus.com.ua/cgi-bin/api.pl?command=info&amp;amp;account=5982&amp;amp;signature=3eb6d78df0be8d54e170b15d596c7706 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Получение информации об абоненте==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = info&lt;br /&gt;
account = персональный платежный код абонента&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Создать платеж==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = pay&lt;br /&gt;
account = персональный платежный код абонента&lt;br /&gt;
amount = денежная сумма&lt;br /&gt;
order_id = уникальный id платежа&lt;br /&gt;
terminal = идентификатор терминала (необязательный параметр)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
amount - число с плавающей запятой, разделитель точка, 2 знака после запятой.&lt;br /&gt;
&lt;br /&gt;
При посылке запроса с тем же order_id, который был послан ранее, платеж не создается, но при этом возвращается error = 0.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Попросить NoDeny залогировать информацию==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
command = message&lt;br /&gt;
message = какой-либо текст&lt;br /&gt;
terminal = идентификатор терминала (необязательный параметр)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Это можно использовать, например, для регистрации какого-либо события не связанного с завершением пополнения счета. Скажем, клиент ввел свой логин, получил информацию, вставил поддельную купюру или забыл получить сдачу&lt;br /&gt;
&lt;br /&gt;
==Ограничения==&lt;br /&gt;
&lt;br /&gt;
* В данных запрещен символ '|' (вертикальная черта)&lt;br /&gt;
* В параметре order_id и terminal не рекомендуется использовать символ двоеточия&lt;br /&gt;
&lt;br /&gt;
==Коды ошибок==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|1&lt;br /&gt;
|Проблема на стороне NoDeny. Возможно следует повторить запрос через время &lt;br /&gt;
|-&lt;br /&gt;
|2&lt;br /&gt;
|API NoDeny отключено&lt;br /&gt;
|-&lt;br /&gt;
|10&lt;br /&gt;
|Со стороны терминала присланы некорректные данные. Если терминал пошлет эти же самые данные - будет возвращена ошибка&lt;br /&gt;
|-&lt;br /&gt;
|11&lt;br /&gt;
|Аккаунт в NoDeny не найден &lt;br /&gt;
|-&lt;br /&gt;
|12&lt;br /&gt;
|Не задана команда &lt;br /&gt;
|-&lt;br /&gt;
|13&lt;br /&gt;
|Неверно задана денежная сумма&lt;br /&gt;
|-&lt;br /&gt;
|14&lt;br /&gt;
|Неверный order id&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Sv</name></author>
	</entry>
</feed>