Описание взаимодействия

Автоматический прием оплаты

  В данном разделе представлена информация для разработчиков программного обеспечения, в том числе описания протоколов поставщиков услуг, электронных магазинов (мерчант), пунктов обмена, стандарта обмена данными альтернативного программного обеспечения с серверами Allmoney.



Регистрация и настройка электронного магазина
Переадресация пользователя на мерчант для осуществления платежа
Получение результатов оплаты
Возврат на сайт магазина после завершения операции

Регистрация и настройка электронного магазина


Операция приема платежей на сайте возможна только для зарегистрированных в системе электронных магазинов.

Зарегистрировать электронный магазин вы можете в пункте меню: "Настройки мерчанта -> Новый магазин"

В числе прочих сведений при регистрации электронного магазина пользователь должен указать следующие данные:

  •  
skeys - секретный ключ, используется для проверки целостности и достоверности передаваемых данных магазином (при получении результатов платежа);
  •  
url_result - адрес, на который поступают результаты оплаты;
  •  
url_success - адрес страницы, которая открывается после завершения платежа;
  •  
url_fail - адрес страницы, которая открывается при НЕ успешном платеже (отказ от оплаты);


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

Переадресация пользователя на платежный шлюз вебкассы "Allmoney"


Для переадресации пользователя на платежный шлюз вебкассы "Allmoney" необходимо передать на URL https://www.allmoney.com.ua/wk/webkassa.php следующие данные:

  •  
keyt_shop - номер счета получателя. Данный счет определяет, в какой валюте необходимо совершить платеж. При этом пользователь может совершить платеж со своего счета в любой валюте, средства будут автоматически сконвертированы в валюту получателя; длинное целое, 15 цифр;
  •  
num_shop - номер электронного магазина, выданный при регистрации; целое число;
  •  
sum - сумма получателя в валюте счета получателя; дробное число, точность два знака, разделитель - точка;
  •  
ext_transact - номер внешней транзакции. Всегда должен быть уникальным для данного магазина; длинное целое, до 19 цифр;
  •  
comment - комментарий, отображаемый плательщику; строка до 255 символов;

Внимание! Недопустимым является присутствие в комментарии символа ' < одинарная_кавычка > или " < двойная_кавычка >
 
  •  
неограниченное количество других параметров, которые будут переданы на скрипт результата платежа (result_url), отчете об ошибке (fail_url) или страницу успешного платежа (success_url).


Метод передачи данных может быть POST или GET.

Пример формы для размещения на странице:

<FORM method="post" action="https://www.allmoney.com.ua/wk/webkassa.php">
<input type=hidden name="keyt_shop" value="810000000000001">
<input type=hidden name="num_shop" value="316">
<input type=hidden name="sum" value="10">
<input type=hidden name="ext_transact" value="316368200711221430">
<input type=hidden name="comment" value="Оплата товара">
<input type=submit value="Оплатить">
</FORM>

 

Получение результатов оплаты


После совершения платежа результаты оплаты отправляются на скрипт, указанный при регистрации магазина (result_url).

Отправляются следующие данные:

  •  
ext_transact - номер внешней транзакции, переданный магазином при отправке на мерчант;
  •  
sum - сумма платежа; должна быть равна сумме, переданной магазином, в противном случае настоятельно рекомендуется результат не принимать и сообщить в службу безопасности платежной системы Allmoney с указанием параметров платежа;
  •  
comment - комментарий, переданный магазином при отправке на мерчант;
  •  
num_shop - номер магазина;
  •  
keyt_shop - счет получателя (магазина);
  •  
sign - подпись сообщения сервера платежной системы;
  •  
transact - номер транзакции сервера Allmoney; в случае ошибки равен нулю; всегда уникальное число, в целях безопасности рекомендуется проверять на уникальность;
  •  
status - статус платежа; значения, не равные 2, обозначают ошибку; значение, равное 2 - не всегда успех, а только когда result = 0;
  •  
status_text - текстовая расшифровка статуса;
  •  
result - результат обработки (код ошибки); в случае успеха равен 0, иначе - ошибка;
  •  
result_text - текстовая расшифровка результата;
  •  
+ дополнительные параметры в любом количестве, переданные магазином при посылке на мерчант.


Сигнатура вычисляется путем склейки передаваемых параметров и хеширования их методом hmac с использованием секретного ключа. Количество и порядок склейки параметров строго определены:

transact + status + result + ext_transact + num_shop + keyt_shop + sum + comment

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

Описание метода HMAC

Возврат на сайт магазина после завершения операции


В случае, если плательщик отказывается от оплаты либо операция завершена с ошибкой, платежная система предлагает ему перейти на страницу, указанную в параметре fail_url, если же операция завершена успешно, то осуществляется переход на страницу success_url.

 

Пример реализации


Скачать скрипты примера реализации протокола мерчанта на языке PHP

 

Ваше благополучие зависит от ваших собственных решений.
Рокфеллер Джон Дэвисон