API для платежных терминалов: відмінності між версіями

Матеріал з NoDeny
Перейти до навігації Перейти до пошуку
Немає опису редагування
Немає опису редагування
Рядок 14: Рядок 14:


Это можно использовать для тестирования доступности и работоспособности API
Это можно использовать для тестирования доступности и работоспособности API
==Подписывание данных==
Вместе с данными, терминал должен прислать в параметре signature строку, которая вычисляется по следующей формуле:
1) необходимо отсортировать по именам все посылаемые параметры и объединить символом '|' (вертикальная чарта)
2) к полученной строке добавить символ '|' и пароль к API NoDeny
3) получить mdp5 хеш для полученной строки
Например, терминал посылает на  API следующие данные:
<pre>
command = info
account = 5982
<pre>
После сортировки и конкатенации получаем строку: '''account|5982|command|info'''
После добавления к полученной строке '''|пароль_от_api''' получаем '''account|5982|command|info|пароль_от_api'''
Далее применяем алгоритм md5 и получаем результат: '''3eb6d78df0be8d54e170b15d596c7706'''
Пример на языке perl:
<pre>
$signature = Digest::MD5->new->add($string.'|'.$api_password)->hexdigest;
</pre>
Итоговый запрос будет следующим:
<source lang="bash">
https://app.nodeny-plus.com.ua/cgi-bin/api.pl?command=info&account=5982&signature=3eb6d78df0be8d54e170b15d596c7706
</source>





Версія за 14:46, 9 серпня 2016

Общая информация

API запросы выполняются по http(s)-протоколу, в ответ приходит json. В ключе error - код ошибки (0 - отсутствие ошибки)

Тестировать API можно с консоли, например:

curl 'https://app.nodeny-plus.com.ua/cgi-bin/api.pl'

Опрос урла без каких-либо параметров должен возвращать result = 0:

   {"error":0}

Это можно использовать для тестирования доступности и работоспособности API

Подписывание данных

Вместе с данными, терминал должен прислать в параметре signature строку, которая вычисляется по следующей формуле: 1) необходимо отсортировать по именам все посылаемые параметры и объединить символом '|' (вертикальная чарта) 2) к полученной строке добавить символ '|' и пароль к API NoDeny 3) получить mdp5 хеш для полученной строки

Например, терминал посылает на API следующие данные:

command = info
account = 5982
<pre>

После сортировки и конкатенации получаем строку: '''account|5982|command|info'''

После добавления к полученной строке '''|пароль_от_api''' получаем '''account|5982|command|info|пароль_от_api'''

Далее применяем алгоритм md5 и получаем результат: '''3eb6d78df0be8d54e170b15d596c7706'''

Пример на языке perl:

<pre>
$signature = Digest::MD5->new->add($string.'|'.$api_password)->hexdigest;

Итоговый запрос будет следующим:

https://app.nodeny-plus.com.ua/cgi-bin/api.pl?command=info&account=5982&signature=3eb6d78df0be8d54e170b15d596c7706


Коды ошибок
1 Проблема на стороне NoDeny. Возможно следует повторить запрос через время
2 API NoDeny отключено
10 Со стороны терминала присланы некорректные данные. Если терминал пошлет эти же самые данные - будет возвращена ошибка
11 Аккаунт в NoDeny не найден
12 Не задана команда
13 Неверно задана денежная сумма
14 Неверный order id