Активная контекстная реклама и раскрутка сайтов
На главную   О сервисе  |  Автоматические интерфейсы  |  Проверки  
Автоматический интерфейс

Интерфейс используется для автоматической работы магазинов и бирж. С его помощью можно в автоматическом режиме выставлять и удалять счета, переводить кредиты, проверять статус трансакций.

Интерфейс соблюдает требования безопасности, принятые в Uniq-IP. Для выставления и проверки счетов применяется логин и пароль в системе, а для прямого перевода кредитов ещё и ключевой файл. При этом ни пароль, ни ключевой файл в запросах не передаются, а для идентификации применяется цифровая подпись. Для работы с автоматическим интерфейсом нужно дать заявку администратору.

1. Термины и определения

Трансакция — процесс, который может включать следующие этапы: выставление счёта, подтверждение перевода, или прямой перевод кредитов (UNIQ) со счёта на счёт в сервисе Uniq-IP.

Сервер TransUNIQ — обработчик http://www.uniq-ip.com/cgi-bin/transuniq/auto.cgi на который передаются параметры запроса с сервера продавца или от клиента, а также, который передаёт результаты успешной трансакции на сервер продавца.

Сервер продавца (Продавец) — посылает запросы на сервер TransUNIQ на проведение трансакции, а также ряд других запросов, получает результат успешно проведенной трансакции, и, выдаёт после этого, товар покупателю. Обработчик запросов на этот сервер имеет конкретный адрес в сети (url_quest).

Клиент (Покупатель) — броузер, с помощью которого пользователь производит активные действия: инициирование трансакции, подтверждение перевода и получение товара.

url_ok — URL, на который переадресуется броузер покупателя в случае успешной трансакции.

* Термины: Продавец, Покупатель и Товар здесь имеют условные значения, и используются только для простоты восприятия. Так, в случае с автоматическим интерфейсом Uniq-IP <-> Биржа, в качестве продавца будет выступать сервер биржи, а в качестве товара, например, титульные знаки Webmoney.

2. Основные параметры для автоматического интерфейса
Параметр Описание Макс. число символов Допустимые символы
1 type тип запроса, служит для запросов на сервер TransUNIQ bill, bill_form, del, verify, trans
2 logFrom логин продавца 12 a..z A..Z 0..9_-
3 logTo логин клиента 12 a..z A..Z 0..9_-
4 invFrom номер счёта в системе продавца 20 a..z A..Z 0..9_-
5 invTU номер счёта в системе TransUNIQ 11 целое число
6 sum сумма переводимых UNIQ 8 целое число
7 comment комментарии (назначение платежа) 150 любые символы ANSI
8 pasFrom пароль продавца в Uniq-IP 12 a..z A..Z 0..9_-
9 keyFrom ключевой файл продавца в Uniq-IP 40 a..z A..Z 0..9

Параметры "pasFrom" и "keyFrom" могут участвовать в формировании цифровой подписи, но не передаются в запросах по HTTP.

Кроме указанных в таблице, можно передавать дополнительные параметры в таком виде: имя должно начинаться с "user_", а значение может содержать любые символы ANSI (до 255 символов). Дополнительные параметры запоминаются сервером TransUNIQ и передаются на url_quest и url_ok вместе с основными параметрами. Подробнее об этом см. ниже.

3. Все типы запросов на сервер TransUNIQ
Название запроса Тип запроса,
параметр type
Способ передачи Обязательные параметры Необязательные параметры Ответ, ok Ответ, error
1 выставление счёта bill socket type, logFrom, logTo, sum, pasFrom, sign comment, invFrom ok invTU=[уникальный номер счёта в TransUNIQ] error bill
2 выставление счёта bill_form form type, logFrom, logTo, sum, pasFrom, sign comment, invFrom редирект на TransUNIQ ошибка счёта
3 удаление счёта del socket type, logFrom, logTo, sum, pasFrom, sign ok status=del error del
4 проверка статуса счёта по параметру invFrom verify socket type, logFrom, invFrom, pasFrom, sign ok status=[**] error verify
5 проверка статуса счёта по параметру invTU verify socket type, logFrom, invTU, pasFrom, sign ok status=[**] error verify
6 проверка суммы на Общем счёте verify socket type, logFrom, pasFrom, sign ok sum=[сумма, UNIQ] error verify
7 перевод UNIQ trans socket type, logFrom, logTo, sum, pasFrom, keyFrom, sign comment, invFrom ok invTU=[уникальный номер счёта в TransUNIQ] error trans
8 отмена трансакции back socket type, logFrom, invTU, pasFrom, keyFrom, sign logTo, sum, comment ok status=back error back
* параметры pasFrom, keyFrom могут участвовать в формировании цифровой подписи, но не передаются запросе по HTTP
* socket — передача данных сервер-сервер, form — передача данных клиент-сервер
[**] bill — счёт выставлен, end — трансакция по счёту завершена, del — счёта нет или он удалён

Выставление счёта

Может передаваться на сервер TransUNIQ в двух вариантах: с помощью сокета или с помощью HTML-формы. В зависимости от этого параметр "type" может принимать значения: bill или bill_form. Разницы в запросе на сервер между ними нет никакой, а вот ответ сервера разный. В первом случае возвращается уникальный номер счёта, присвоенный сервером для данной трансакции, а во втором — возвращается указание броузеру для переадресации на сайт TransUNIQ для продолжения трансакции (оплаты).

Удаление счёта

Применяется в случае с автоматическими биржами для дублирования работы пользователя. В случае подачи такого запроса счёт может быть удалён только, если трансакция ещё не окончена. Т.е., если статус данного счёта равен "bill" (запрос №5).

Проверка статуса счёта

Проверка статуса счёта нужна для дополнительной страховки трансакции, и не является обязательной. С её помощью можно получить статус данной трансакции по номеру счёта. Номер счёта может быть передан в запросе как в системе TransUNIQ (invTU), так и в системе продавца (invFrom).

Перевод UNIQ

Этот тип запроса необходим для прямого перевода кредитов со счёта на счёт, и применяется для автоматических бирж.

Отмена трансакции

Запрос применяется только для автоматических бирж для отмены лотов. Номер трансакции должен быть передан в системе TransUNIQ (invTU).

4. Формирование запроса на сервер TransUNIQ

Запрос может быть передан на сервер TransUNIQ методом POST (желательно) или GET. При формировании запроса нужно помнить, что URL-адреса изображаются в стандартной ASCII-кодировке, поэтому используемые специальные символы подлежат замене шестнадцатеричными ASCII-кодами. Это, впрочем, не относится к запросу №2 таблицы в том случае, если форма передаётся броузером (броузер всё, что необходимо перекодирует автоматически).


Пример №1. Выставление счёта
Возьмём запрос №1 из таблицы и следующие параметры:

type=bill
logFrom=Sasha
logTo=Fedya
sum=100
comment=подарок
pasFrom=Tk567

Далее нужно сформировать цифровую подпись из строки, а сама строка «склеивается» из значений параметров. Получаем строку: billSashaFedya100подарокTk567
Получаем цифровую подпись (подробнее см. ниже): sign=df348a4a0e4dd8ac4d670b041c67bd30

Поскольку значение параметра "comment" содержит специальные символы, то для передачи по HTTP мы их должны перекодировать. Новый comment=%EF%EE%E4%E0%F0%EE%EA

Далее формируем запрос методом GET:
http://www.uniq-ip.com/cgi-bin/transuniq/auto.cgi?type=bill&logFrom=Sasha&logTo=Fedya&sum=100&comment=%EF%EE%E4%E0%F0%EE%EA&sign=df348a4a0e4dd8ac4d670b041c67bd30

Внимание. При формировании строки значения параметров распологаются в порядке таблицы. Если какой-нибудь параметр отсутствует, то он просто пропускается.

Внимание. Автоматический интерфейс для логина работает только, если он разрешён администратором Uniq-IP!

5. Цифровая подпись

Цифровая подпись формируется путём «склеивания» значений основных параметров в строку, в том порядке, в котором они указаны в таблице. Если какой-нибудь из параметров отсутствует, то строка формируется без него. Из полученной таким образом строки формируется хеш-функция, которая и представляет собой цифровую подпись.

Хеш-функция — это последовательность из 32-х шестнадцатеричных цифр в соответствии с широко распространенным алгоритмом Message Digest 5 (MD5), разработанным Ron Rivest из MIT Laboratory for Computer Science и RSA Data Security, Inc. Алгоритм был опубликован в сети Интернет в апреле 1992 года (RFC 1321).


Пример №2. Проверка суммы на Общем счёте логина Sasha
Возьмём запрос №6 из таблицы и следующие параметры:

type=verify
logFrom=Sasha
pasFrom=Tk567

«Склеиваем» данные и получаем следующую строку: verifySashaTk567
Получаем из неё цифровую подпись: sign=0c9a8f29d42b9ee5138d1f3ac9932e51
Передаём запрос на сервер TransUNIQ:
http://www.uniq-ip.com/cgi-bin/transuniq/auto.cgi?type=verify&logFrom=Sasha&sign=0c9a8f29d42b9ee5138d1f3ac9932e51

Обратите внимание: pasFrom участвует только в формировании цифровой подписи, но в запросе на сервер не передаётся!


Пример №3. Перевод 100 UNIQ с логина Sasha на логин Fedya
Возьмём запрос №7 из таблицы и следующие параметры:

type=trans
logFrom=Sasha
logTo=Fedya
sum=100
comment=present
pasFrom=Tk567
keyFrom=fbb6cf1694f82af9742ac568735d94c8421c6a55 (содержимое ключевого файла у Sasha)

«Склеиваем» данные и получаем следующую строку: transSashaFedya100presentTk567fbb6cf1694f82af9742ac568735d94c8421c6a55
Получаем из неё цифровую подпись: sign=ae249aedafe8f9d1be24520409316078
Передаём запрос на сервер TransUNIQ:
http://www.uniq-ip.com/cgi-bin/transuniq/auto.cgi?type=trans&logFrom=Sasha&logTo=Fedya&sum=100&comment=present&sign=ae249aedafe8f9d1be24520409316078

Обратите внимание: pasFrom и keyFrom участвуют только в формировании цифровой подписи, но в запросе на сервер не передаются!

Потренироваться в получении цифровой подписи вам поможет эта страничка.

6. Запросы на сервер продавца (url_quest)

Название запроса Тип запроса,
параметр type
Обязательные параметры Необязательные параметры Ответ, ok Ответ, error
1 предварительный запрос bill type, logFrom, logTo, invTU, sum, pasFrom, sign comment, invFrom, user_… ok error bill (или др.)
2 оповещение об окончании трансакции end type, logFrom, logTo, invTU, sum, pasFrom, sign comment, invFrom, user_… ok error end (или др.)
3 удаление счёта del type, logFrom, logTo, invTU, sum, pasFrom, sign comment, invFrom, user_… ok error del (или др.)
* параметр pasFrom может участвовать в формировании цифровой подписи, но не передается в запросе по HTTP
* дополнительные параметры user_… в формировании цифровой подписи не участвуют

Предварительный запрос

Посылает продавцу параметры выполняемой трансакции. Желателен, но не обязателен для обработки продавцом. В случае, если запрос не обрабатывается, сервер продавца должен дать ответ: ok.

Оповещение об окончании трансакции

Передаёт продавцу параметры выполненной трансакции. Обязателен для обработки. Если ответ на этот запрос отрицательный, то сервер TransUNIQ посылает сообщение на e-mail продавца.

Удаление счёта

Применяется для дублирования работы пользователя в TransUNIQ и на сервере продавца. В случае подачи такого запроса счёт может быть удалён только, если трансакция ещё не окончена. Запрос не обязателен, но желателен для обработки, особенно для работы автоматических бирж.

Все запросы, в случае их обработки, должны проверять подлинность цифровой подписи! Цифровая подпись формируется также, как и с запросами на сервер TransUNIQ (пример №2 ), а затем сравнивается с пришедшим на url_quest параметром "sign". При этом logFrom — логин продавца в Uniq-IP, pasFrom — его пароль (таблица)

7. Переадресация клиента (url_ok)

После успешного выполнения трансакции клиент переадресовывается TransUNIQ на url_ok. При этом на url_ok передаются следующие параметры:

  • Обязательные: logFrom, logTo, invTU, sum
  • Необязательные: invFrom, comment, user_…

    Все параметры здесь носят информационный характер и проверке не подлежат. url_ok вместе с url_quest указывается при подаче заявки на активацию автоматического интерфейса.

  • Rambler's Top100 Uniq-IP © 2001-2010