RBK Money

Описание интерфейса сервиса приема платежей через систему RBK Money.

Описание интерфейса сервиса приема платежей через систему RBK Money.

ПАРАМЕТРЫ ПРИЕМА ПЛАТЕЖЕЙ

Помимо регистрации в системе RBK Money, для приема платежей через систему продавец должен настроить ряд параметров, регулирующих порядок приема платежей и оповещения продавца об изменении состояния платежа.
Для каждого сайта, на который продавец принимает платежи, в системе хранится свой набор значений.
Полный перечень параметров и их назначение приведено ниже:

Название параметра

Формат

Описание

Название сайта

255 символов

Название сайта осуществляющего прием платежей.

Адрес сайта

255 символов

URL сайта осуществляющего прием платежей.

Описание сайта

-

Описание сайта осуществляющего прием платежей.

URL Оповещение о платеже

255 символов

URL (на веб-сайте продавца), на который система RBK Money посылает HTTP POST оповещение о совершении платежа с его реквизитами. Если продавец не определил этот URL, он не будет оповещаться системой о совершенных платежах.

URL должен начинаться с префикса “http://” или “https://”.

Секретный ключ

32 символа

Строка символов, добавляемая к реквизитам платежа, высылаемым продавцу вместе с оповещением. Эта строка используется для повышения надежности идентификации высылаемого оповещения. Содержание строки известно только системе RBK Money и продавцу!

Способы оплаты

-

Способы оплаты которые будет использовать сайт продавца.

ФОРМЫ HTML

Для передачи информации между веб-сайтом продавца и системой RBK Money используютcя HTML-формы:

НЕ нашли? Не то? Что вы ищете?

·  Форма запроса платежа - генерируется веб-сайтом продавца для формирования запроса на проведение платежа в системе RBK Money и передачи его через веб-браузер покупателя.

·  Форма оповещения о платеже - генерируется системой RBK Money для передачи оповещения о платеже на веб-сайт продавца. Оповещение передается без использования веб-браузера покупателя.

Форма запроса платежа

Эта форма передает запрос с веб-сайта продавца в системой RBK Money через веб-браузер покупателя. Она должна иметь следующие атрибуты и поля:

Action - https://rbkmoney. ru/acceptpurchase. aspx

Method - POST

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название

HTML Field Name

Обязательный?

Описание

Номер сайта продавца

eshopId

Да

Номер сайта продавца, на который покупатель должен совершить платеж.

Внутренний номер покупки продавца

orderId

Нет

В этом поле продавец задает номер покупки в соответствии со своей системой учета. Несмотря на то, что параметр не является обязательным, мы рекомендуем всегда задавать его. Желательно использовать уникальный номер для каждого платежа, что позволит быстро получить относящуюся к нему информацию через систему RBK Money.

Назначение платежа

serviceName

Нет

Описание товара или услуги. Формируется продавцом.
Максимальная длина - 255 символов.

Сумма платежа

recipientAmount

Да

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

Валюта платежа

recipientCurrency

Да

Валюта платежа (USD, RUR, EUR, UAH)

Email покупателя

user_email

Нет

Email покупателя, указанный на сайте продавца

Версия протокола

version

Нет

Версия протокола(1 или 2), по умолчанию равно 1.

Режим приема оплаты

direct

Нет

По умолчанию покупки создаются в стандартном режиме (значение false). В этом режиме платеж магазину зачисляется только после того, как на счет поступит достаточно средств, то есть сумма равная сумме покупки. В режиме прямого приема платежей (значение true) в магазин зачисляются все платежи зачисленные на счет, и сумма покупки не имеет значения.

Способ оплаты

preference

Нет

Способ оплаты, который будет выбран при оплате покупки, минуя экран выбора.

Возможные значения:

Оплата с кошелька Rbk Money – inner или rbkmoney

Банковская карта Visa/MasterCard — bankcard

Электронные платежные системы - exchangers

Платёжные терминалы - terminals

Предоплаченная карта RBK Money - prepaidcard

Почта России - postrus

Салоны связи - mobilestores

Системы денежных переводов - transfers

Интернет банкинг – ibank

Банковский платёж - sberbank

Связной - svyaznoy

Евросеть – euroset

Contact - contact

МТС - mts

Кассы Уралсиб - uralsib

HandyBank - handybank

Океан Банк - ocean

Интернет-банк Уралсиб – ibankuralsib

Адрес удачного платежа

successUrl

Нет

Адрес на который будет перенаправлен пользователь в случае успешной оплаты

Адрес отменённого платежа

failUrl

Нет

Адрес на который будет перенаправлен пользователь в случае отмены оплаты

Дополнительные параметры продавца

Определяется продавцом

Нет

Все поля формы, имеющие в названии префикса "userField_N"(где N порядковый номер), обрабатываются системой RBK Money автоматически и передаются на сайт продавца.(Кодировка utf-8)

Пример

Фрагмент "Формы запроса платежа"

<html>

<head>

...

</head>

<body>

...

<form action="https://rbkmoney. ru/acceptpurchase. aspx" name="pay" method="POST">

<input type="hidden" name="eshopId" value="12">

<input type="hidden" name="orderId" value="1234">

<input type="hidden" name="serviceName" value="Книга">

<input type="hidden" name="recipientAmount" value="12.30">

<input type="hidden" name="recipientCurrency" value="RUR">

<input type="hidden" name="successUrl" value="http:///success. html">

<input type="hidden" name="failUrl" value=" http:///fail. html ">

<input type="hidden" name="userField_1" value="value_1">

<input type="hidden" name="userField_2" value="value_2">

...

...

<input type="submit" name="button" value=" оплатить ">

</form>

..

</body>

</html>

Форма оповещения о платеже

Эта форма оповещения о платеже, отправляемая продавцу при изменении статуса платежа. Она имеет следующие атрибуты и поля (Все значения отправляемые системой RBK Money будут транслированы):

Action - URL Оповещение о платеже

Method - POST

Fields - поля, передаваемые в форме, описаны в таблице ниже:

Название

HTML Field Name

Описание

Номер сайта продавца

eshopId

Id магазина продавца, на который покупатель совершает платеж.

Номер покупки в системе RBK Money

paymentId

В этом поле передается номер покупки в системе RBK Money.

Пример: 2007022292

Внутренний номер покупки продавца

orderId

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

Номер кошелька магазина

eshopAccount

Номер кошелька магазина в системе RBK Money. Является уникальным в системе RBK Money.

Назначение платежа

serviceName

В этом поле передается назначение платежа в соответствии с системой учета продавца, полученного системой с веб-сайта продавца.

Сумма платежа

recipientAmount

Сумма, которую получает продавец. Дробная часть отделяется точкой.

Дробная часть всегда содержит 2 цифры. Пример: 10.00

Валюта платежа

recipientCurrency

Валюта платежа (USD, RUR, EUR, UAH)

Статус платежа

paymentStatus

Статус платежа может иметь следующие значения :

3 - Платеж принят на обработку

5 - Платеж зачислен

Имя покупателя

userName

Имя покупателя выписавшего счет в системе RBK Money

Email покупателя

userEmail

Email покупателя выписавшего счет в системе RBK Money

Дата и время выполнения платежа

paymentData

Дата и время реального прохождения платежа в системе RBK Money в формате
"YYYY-MM-DD HH:MM:SS".

Секретный ключ

secretKey

Значение Секретный ключ, известное только продавцу и системе RBK Money.
Это поле будет пустым, если параметр "URL Оповещение о платеже" не обеспечивает секретность.

Контрольная подпись

hash

Контрольная подпись оповещения о выполнении платежа, которая используется для проверки целостности полученной информации и однозначной идентификации отправителя.
Алгоритм формирования описан в разделе "Контрольная подпись данных о платеже".

Параметры продавца

Определяется продавцом

Все поля, переданные с веб-сайта продавца в "Форме запроса платежа", имеющие префикс " userField_N".(где N порядковый номер)

Пример.

Фрагмент " Формы оповещения о платеже "

<html>

<head>

...

</head>

<body>

...

<form method="POST" action=" URL Оповещение о платеже ">

<input type="hidden" name="eshopId" value="12">

<input type="hidden" name="paymentId" value="2007022292">

<input type="hidden" name="orderId" value="1234">

<input type="hidden" name="eshopAccount" value="RU123456789">

<input type="hidden" name="serviceName" value="Kniga">

<input type="hidden" name="recipientAmount" value="12.30">

<input type="hidden" name="recipientCurrency" value="RUR">

<input type="hidden" name="paymentStatus" value="5">

<input type="hidden" name="userName" value="Petrov Alexander">

<input type="hidden" name="userEmail" value="*****@***ru">

<input type="hidden" name="paymentData" value="2003-09-17 13:12:03">

<input type="hidden" name="secretKey" value="myKey">

<input type="hidden" name="hash" value="f849a1c57c66b372ec4a3a2e04d2feba">

<input type="hidden" name="userField_1" value="value_1">

<input type="hidden" name="userField_2" value="value_2">

...

...

</form>

..

</body>

</html>

ПРОВЕРКА ИНФОРМАЦИИ О ПЛАТЕЖЕ

При выполнении платежа система RBK Money высылает оповещение о платеже через "Форму оповещения о платеже" на URL Оповещение о платеже, указанный продавцом.

Если используется версия протокола по умолчанию (version=1), то сообщение считается доставленным, если страница обрабатывающая уведомление, вернет код состояния HTTP 200 (ОК). Если используется версия 2 (version=2), то в ответ на оповещение о платеже вы должны вернуть 'OK', иначе оповещение о выполненном платеже будет повторяться.

Мы рекомендуем вам проверить данные, полученные через "Форму оповещения о платеже":

1.  Проверить, действительно ли данные переданы от системы RBK Money (Проверка источника данных)

2.  Проверить, не исказились ли данные в процессе передачи (Проверка целостности данных)

3.  Проверить сумму платежа

4.  Проверить номер сайта продавца

Проверка источника данных

Как указывалось выше, значение параметра "Секретный ключ" должно быть известно только системе RBK Money и продавцу. Исходя из этого, Секретный ключ может использоваться для аутентификации источника, приславшего данные о платеже. Продавец, может провести аутентификацию несколькими методами в зависимости от того, обеспечивает URL Оповещение о платеже секретность или нет:

·  URL Оповещение о платеже обеспечивает секретность В этом случае продавец может не проверять контрольную подпись, так как используемый протокол SSL обеспечивает безопасность и целостность передаваемых данных.

·  URL Оповещение о платеже не обеспечивает секретность В этом случае система RBK Money рекомендует проверять целостность данных, используя контрольную подпись.

Проверка целостности данных

Высылая оповещение о проведение платежа, система RBK Money передает реквизиты платежа и контрольную подпись, позволяющую проверять неизменность передаваемых данных. Продавец может выполнить проверку целостности несколькими методами в зависимости от того обеспечивает URL Оповещение о платеже секретность или нет:

·  URL Оповещение о платеже обеспечивает секретность В этом случае продавец может не проверять контрольную подпись, так как используемый протокол SSL обеспечивает безопасность и целостность передаваемых данных.

·  URL Оповещение о платеже не обеспечивает секретность В этом случае система RBK Money рекомендует проверять целостность данных, используя контрольную подпись.

Контрольная подпись данных о платеже

Контрольная подпись данных о платеже позволяет продавцу проверять как источник данных, так и целостность данных, переданных на URL Оповещение о платеже через " Форму оповещения о платеже ".
При формировании контрольной подписи система RBK Money "склеивает" значения полей разделяя их “::”, передаваемых "Форма оповещения о платеже", в одну строку в следующем порядке:

1.  Номер сайта продавца (eshopId);

2.  Номер счета продавца (orderId);

3.  Описание покупки (serviceName);

4.  Номер счета в системе RBK Money (eshopAccount);

5.  Сумма платежа (recipientAmount);

6.  Валюта платежа (recipientCurrency);

7.  Статус платежа (paymentStatus);

8.  Имя покупателя (userName);

9.  Email покупателя (userEmail);

10.  Дата и время выполнения платежа (paymentData);

11.  Секретный ключ (secretKey) (Передается, если URL Оповещение о платеже обеспечивает секретность);

Пример :

12::1234::Kniga::RU123456789::12.30::RUR::5::Petrov Alexander::*****@***ru::2007-10-28 14:22:35::myKey

Если orderId не был передан магазином, то строка имеет вид

12::::Kniga::RU123456789::12.30::RUR::5::Petrov Alexander::*****@***ru::2007-10-28 14:22:35::myKey

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

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

Проверка контрольной подписи на сайте продавца по следующему алгоритму:

·  MD5

1.  Сформируйте строку путем "склеивания" значений параметров, полученных через "Форму оповещения о платеже", в том же порядке, что и при формировании контрольной подписи разделяя их “::” в системе RBK Money (см. выше).
Помните, что при формировании подписи используется Секретный ключ.

2.  Вычислите MD5 полученной строки.

3.  Сравните полученное значение с значением параметра "hash", полученного через "Форму оповещения о платеже".

Если сформированная подпись совпадает с полученной через "Форму оповещения о платеже", данные не изменены, и источник данных действительно система RBK Money.

Проверка суммы и валюты платежа

Несмотря на то, что покупатель не может изменить сумму платежа, продавцу рекомендуется контролировать информацию о сумме и валюте платежа, передаваемую через параметры "recipientAmount" и "recipientCurrency".

Проверка номера сайта продавца

Несмотря на то, что покупатель не может изменить номер сайта, на который совершается платеж, продавцу рекомендуется контролировать информацию о номере сайта, которая передается через параметр "eshopId", особенно при использовании нескольких сайтов для приема платежей через систему RBK Money.

Переход на экран выбора способа оплаты без ввода email пользователя

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