Skip to end of metadata
Go to start of metadata

ОПИСАНИЕ ИНТЕРФЕЙСА

СЕРВИСА MERCHANT.INTELLECTMONEY

(ПРОТОКОЛ WEBMONEY)

1. Основные термины

Продавец — участник IntellectMoney, принимающий на свой бизнес-счет денежные средства (оплату) от других участников системы с помощью сервиса Merchant.IntellectMoney. Предполагается, что Продавец принимает оплату за товары или услуги, предоставляемые им через Интернет, и, следовательно, имеет собственный веб-сайт.
Покупатель — пользователь, желающий оплачивать услуги или товары, предлагаемые Продавцом через Интернет.
Счет к оплате (СКО) — счет в системе IntellectMoney, который выставляется при переходе пользователя с сайта Продавца на Merchant.IntellectMoney. СКО представляет собой уникальную 10-значную цифровую комбинацию, начинающуюся с цифры «3». СКО имеет ограниченный срок действия (до 6 месяцев с момента создания) и сумму покупки. СКО может формироваться в двух валютах: валюта RUB используется для работы системы, валюта TST предназначена для отладки и тестирования модулей подключения к Merchant.IntellectMoney.
Оплата СКО — платежные операции по внесению денежных средств Покупателем на СКО. СКО может быть оплачен несколькими платежами и разными способами (например, частично через терминал, частично — со счета банковской карты). Если после зачисления платежа на СКО не собралась полная сумма, то СКО считается частично оплаченным. Такой СКО может быть аннулирован Покупателем в личном кабинете IntellectMoney или на сайте Merchant.IntellectMoney. При этом все средства, зачисленные на СКО, перечисляются на счет Покупателя в IntellectMoney. Если Покупатель не зарегистрирован в IntellectMoney, то средства перечисляются на адрес электронной почты, указанный при выставлении СКО. Воспользоваться ими можно будет после регистрации в IntellectMoney с данным адресом электронной почты. Если после оплаты пользователем СКО итоговая сумма превышает сумму СКО, IntellectMoney создает два платежа: итоговый платеж на сумму СКО, по которому денежные средства за вычетом комиссии зачисляются на счет Продавца, и сдачу на сумму переплаты, которая перечисляется на счет Покупателя в IntellectMoney. После создания итогового платежа СКО считается оплаченным. Если Покупатель совершит еще один платеж (и более) на данный СКО, полученные деньги будут считаться сдачей и перечисляться на счет Покупателя в IntellectMoney.
Срок действия СКО — установленный Продавцом срок действия СКО, в течение которого его может оплатить Покупатель. Продавец может установить срок действия СКО самостоятельно или оставить значение по умолчанию (6 месяцев с момента создания). В момент окончания срока действия СКО все зачисленные на него деньги перечисляются на счет Покупателя в IntellectMoney. Если СКО был заморожен, то все зачисленные на него деньги за вычетом комиссии IntellectMoney переводятся на счет Продавца.
Заморозка банковских платежей (Холдирование) — режим настройки СКО, который используется для оплаты СКО с банковских карт. В соответствии с этим режимом при оплате СКО деньги блокируются на счете банковской карты Покупателя на срок до 7 дней. После поступления денежных средств Продавец может позволить завершить оплату СКО, и тогда денежные средства будут разблокированы и перечислены на его счет, или отменить СКО, после чего заблокированная сумма на банковской карте будет разблокирована. При этом если частично СКО был оплачен другими способами (например, через терминал), эти деньги будут рассматриваться как сдача и перечисляться на счет Покупателя в IntellectMoney. В момент окончания срока действия СКО, если Продавец не примет решение по его отмене, поступившие денежные средства будут зачислены на его счет автоматически.

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


Система IntellectMoney предоставляет Интернет-магазину возможность выставлять СКО Покупателям для их оплаты различными способами: банковской картой, денежным переводом, терминальным или банковским платежом, а также со счета в IntellectMoney. Продавец может выбрать и реализовать один из двух протоколов взаимодействия с IntellectMoney:

  • IntellectMoney (за основу взят протокол RBKMoney с некоторыми изменениями);
  • WebMoney.

Покупатель формирует заказ на сайте магазина, выбирает способ оплаты через IntellectMoney и переходит на сайт Merchant.IntellectMoney, где Покупателю выставляется СКО на основе данных, полученных от Продавца. 

2.1. Тестирование подключения

Для тестирования интерфейса Merchant.IntellectMoney в системе предусмотрена тестовая валюта TST. При регистрации магазина создается специальный тестовый счет с деньгами. Для проведения тестирования необходимо номер тестового счета. При переходе с сайта магазина необходимо указать тестовую валюту.
Если тип валюты, передаваемый в форме, и тип валюты магазина не будут совпадать, IntellectMoney не будет показывать Покупателю ошибки. О таких ошибках IntellectMoney будет высылать Продавцу уведомления на адрес электронной почты, указанный в настройках протокола «E-mail для уведомлений».
При выставлении СКО необходимо указать адрес электронной почты Продавца, который используется для входа в систему. Сформированный СКО появится в личном кабинете Продавца.
На странице информации о СКО в блоке «Оплатить счет за клиента» можно будет оплатить СКО, используя деньги на тестовом счете.
При тестировании подключения, также может быть полезно включение параметра «Режим отладки».

2.2. Доставка уведомлений

При оплате СКО система IntellectMoney в соответствии с протоколом взаимодействия с Продавцом высылает последнему соответствующие уведомления. В случае если уведомление не удалось доставить в течение 4 дней с момента его создания, IntellectMoney будет сформировано письмо с отчетом об этой ошибке и выслано на почтовый адрес Продавца, указанный в настройках протокола «E-mail для уведомлений».
Данное письмо будет содержать ссылку, при переходе по которой системой будет повторно отправлен запрос.

3. Протокол WebMoney

3.1. Настройка магазина

Продавцу необходимо:

  • войти в личный кабинет;
  • перейти на вкладку «Магазины» https://www.intellectmoney.ru/ru/enter/ps_organization_shop/;
  • создать магазин или выбрать магазин, который будет настраиваться, кликнув по ссылке «Настройки»;
  • на странице настроек перейти на вкладку «Прием платежей»;
  • выбрать в протоколах «WebMoney»;
  • в параметре «E-mail для уведомлений» указать адрес электронной почты, на который будут приходить уведомления о выписанных и оплаченных СКО, отчеты об ошибках;
  • включить (при необходимости) параметр «Принимать только уникальные ID покупки», который будет проверять, является ли параметр LMI_PAYMENT_NO уникальным для магазина;
  • включить (при необходимости) параметр «Back URL», который предоставляет Покупателю при оплате оффлайнового способа оплаты СКО возможность возврата в магазин по адресу, указанному в этом параметре.
  • включить (при необходимости) на время разработки модуля, реализующего протокол, параметр «Режим отладки». Позволяет разработчику получать информацию об ошибках в расширенном варианте, с предлагаемыми вариантами их решения. После переключения магазина в боевой режим, параметр следует отключить. 

3.2. Описание протокола

Если вы уже разрабатывали прием платежей WebMoney через Web Merchant Interface, то для подключения вашего магазина к сервису Merchant.IntellectMoney достаточно настроить его параметры и внести незначительные правки в HTML-коды. Отличия от оригинального протокола Webmoney выделены таким образом.

3.3. Формы HTML

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

  • форма запроса платежа — генерируется веб-сайтом магазина для формирования запроса на проведение платежа в сервисе Merchant.IntellectMoney и передачи его через веб-браузер Покупателя;
  • форма предварительного запроса — генерируется сервисом Merchant.IntellectMoney для передачи параметров предварительного запроса на выполнение платежа на веб-сайт Продавца, если установлен флаг «Отправлять предварительный запрос перед оплатой на Result URL». Если флаг не установлен, запрос не производится. Запрос передается без использования веб-браузера Покупателя;
  • форма оповещения о платеже — генерируется сервисом Merchant.IntellectMoney для передачи оповещения о платеже на веб-сайт магазина. Оповещение передается без использования веб-браузера Покупателя.
    Примеры формы доступны на странице:
    https://www.intellectmoney.ru/ru/enter/docs/documentation/

 

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

Эта форма передает запрос с веб-сайта магазина в сервис Merchant.IntellectMoney через веб-браузер Покупателя. Она имеет следующие атрибуты и поля:

Таблица № 1. Поля, передаваемые в форме запроса платежа

Отличия от оригинального протокола Webmoney выделены таким образом.

Название

HTMLFieldName

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

Описание

Идентификатор магазина

LMI_PAYEE_PURSE

Да

Целое число — идентификатор магазина в сервисе Merchant.IntellectMoney. Назначается автоматически сервисом при создании нового магазина. Состоит из 6 цифр, начинается с «4». Узнать идентификатор магазина можно в настройках магазина во вкладке «Общие». Например: 432169

Сумма платежа в выбранной валюте магазина

LMI_PAYMENT_AMOUNT

Да

Сумма платежа, которую Продавец желает получить от Покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой. Точность суммы задается до копейки. Например 10.10 или 21.21 правильны форматы, а 123,231 не верный формат, потому что разделитель указан виде «,» и точность суммы больше чем копейка.

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

LMI_PAYMENT_DESC

Да

Описание товара или услуги. Формируется Продавцом. Максимальная длина — 255 символов. Может содержать любые символы.

Внутренний номер счета магазина

LMI_PAYMENT_NO

Нет

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

Замена Result URL

LMI_RESULT_URL

НЕТ

Это поле позволяет Продавцу временно изменить параметр Result URL, установленный на странице настроек сервиса Merchant.IntellectMoney.
Если в настройках магазина (Вкладка «Прием платежей», протокол «WebMoney») установлен флаг «Позволять использовать URL, передаваемые в форме», то передаваемое значение заменяет значение параметра Result URL, установленное в настройках на сайте Merchant.IntellectMoney. В противном случае всегда используется значение, установленное в настройках на сайте Merchant.IntellectMoney.
Формат этого поля должен строго соответствовать значению параметра Result URL. Максимальная длинна — 512 символов.

Замена Success URL

LMI_SUCCESS_URL

Нет

Это поле позволяет Продавцу временно изменить параметр Success URL, установленный им на странице настроек сайта Merchant.IntellectMoney.
Если в настройках установлен флаг «Позволять использовать URL, передаваемые в форме», то передаваемое значение заменяет значение параметра Success URL, установленное в настройках на сайте Merchant.IntellectMoney. В противном случае всегда используется значение, установленное в настройках на сайте Merchant.IntellectMoney.
Формат этого поля должен строго соответствовать значению параметра Success URL Максимальная длинна — 512 символов.

Замена метода вызова Success URL

LMI_SUCCESS_METHOD

Нет

Это поле позволяет Продавцу временно изменить параметр «Метод вызова Success URL», установленный им на странице настроек сайта Merchant.IntellectMoney.
Если в настройках установлен флаг «Позволять использовать URL передаваемые в форме», то передаваемое в форме значение заменяет значение параметра «Метод вызова Success URL», установленное в настройках на сайте Merchant.IntellectMoney. В противном случае всегда используется значение, установленное в настройках на сайте Merchant.IntellectMoney.
Это поле должно принимать значение «0», «1» или «2», что соответствует значениям параметра «Метод вызова Success URL» — GET, POST или LINK

Замена Fail URL

LMI_FAIL_URL

Нет

Это поле позволяет Продавцу временно изменить параметр Fail URL, установленный им на странице настроек сайта Merchant.IntellectMoney.
Если в настройках установлен флаг «Позволять использовать URL, передаваемые в форме», то передаваемое в форме значение заменяет значение параметра Fail URL, установленное в настройках на сайте Merchant.IntellectMoney. В противном случае всегда используется значение, установленное в настройках на сайте Merchant.IntellectMoney.
Формат этого поля должен строго соответствовать значению параметра Fail URL Максимальная длинна — 512 символов.

Замена метода вызова Fail URL

LMI_FAIL_METHOD

Нет

Это поле позволяет Продавцу временно изменить параметр «Метод вызова Fail URL», установленный им на странице настроек сайта Merchant.IntellectMoney.
Если в настройках установлен флаг «Позволять использовать URL передаваемые в форме», то передаваемое в форме значение заменяет значение параметра «Метод вызова Fail URL», установленное в настройках на сайте Merchant.IntellectMoney. В противном случае всегда используется значение, установленное в настройках на сайте Merchant.IntellectMoney.
Это поле должно принимать значение «0», «1» или «2», что соответствует значениям параметра «Метод вызова Fail URL» — GET, POST или LINK.

Адрес возврата на сайт продавца в случае создания счета.

LMI_BACK_URL

Нет

Этот параметр позволяет Продавцу дать возможность перейти Покупателю обратно на сайт Продавца при выписывании СКО. Максимальная длинна — 512 символов.

Срок действия СКО

LMI_EXPIRE_DATE

Нет

Дата действия СКО, формат даты yyyy-MM-dd hh:MM:ss

Флаг тестового режима

LMI_SIM_MODE

Нет

При получении значения «1» имитирует отмену платежа

Емайл покупателя

EMAIL

Нет

E-mail Покупателя, на который высылаются уведомления о платежах и зачисляется сдача. Максимальная длинна — 255 символов.

Холдирование
денежных средств

HOLDMODE

Нет

Если передать этот параметр = 1, то денежные средства не зачисляться автоматически на счет магазина, а холдируются на счете клиента
на период LMI_EXPIRE_DATE
Максимальное время холдирование 119 часов (4 дня 23 часа)

Способы оплаты для пользователя – переход сразу на страницу ввода реквизитов

PREFERENCE

Нет

Способы оплаты, которые будут доступны для выбора при оплате покупки. В случае указания одного параметра пользователь будет перенаправлен на страницу ввода реквизитов. (при задании параметра  bankCard и указании email пользователя,  пользователь перейдет сразу к вводу номера банковской карты, при этом счёт уже будет создан. В случае, если не указан email ,то пользователь будет перенаправлен на страницу ввода email)

Возможные значения (при выборе нескольких они разделяются запятой):

Оплата со счета IntellectMoney – inner;

Банковская карта Visa/MasterCard – bankCard;

Дополнительный виды оплаты доступны по ссылке

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

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

Нет

Другие поля формы, которые обрабатываются сервисом Merchant.IntellectMoney автоматически и передаются на веб-сайт магазина после выполнения платежа

Пример 1

Форма запроса платежа
<html> 
	<head> 
 	... 
	</head> 
	<body> 
 	... 
	 	<form method="POST" action="https://Merchant.IntellectMoney.ru/"> 
			<input type="hidden" name="LMI_PAYEE_PURSE" value="432165"> 
 			<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="100.00"> 
 			<input type="hidden" name="LMI_PAYMENT_DESC" value="описание покупки"> 
 			<input type="hidden" name="LMI_PAYMENT_NO" value="1234"> 
 			<input type="hidden" name="EMAIL" value="techsupport@intellectmoney.ru"> 
 			<input type="hidden" name="FIELD_1" value="VALUE_1"> 
 			<input type="hidden" name="FIELD_2" value="VALUE_2"> 
 			... 
 			<input type="hidden" name="FIELD_N" value="VALUE_N"> 
 			... 
 		</form> 
 	... 
 	</body> 
</html>


3.3.2. Форма предварительного запроса

Эта форма передает сайту магазина параметры выполняемого платежа непосредственно перед его выполнением, если установлен флаг «Передавать параметры в предварительном запросе» в настройках магазина.

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

  • Action: Result URL
  • Method: POST или GET в соответствии с настройками магазина
  • Fields: поля, передаваемые в форме, описаны в Таблице № 2. 

Таблица № 2. Поля, передаваемые в форме предварительного запроса

Название

HTMLFieldName

Описание

Индикатор предварительного запроса

LMI_PREREQUEST

Для предварительного запроса равен «1»

Идентификатор магазина

LMI_PAYEE_PURSE

Целое число — идентификатор магазина в сервисе Merchant.IntellectMoney. Назначается автоматически сервисом при создании нового магазина. Состоит из 6 цифр, начинается с «4». Узнать идентификатор магазина можно в настройках магазина во вкладке «Общие». Например: 432169

Сумма платежа в валюте магазина

LMI_PAYMENT_AMOUNT

Сумма платежа, которую Продавец желает получить от Покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой. Точность суммы задается до копейки. Например 10.10 или 21.21 правильны форматы, а 123,231 не верный формат, разделитель указан виде «,» и точность суммы больше чем копейка.

Внутренний номер счета магазина

LMI_PAYMENT_NO

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

Флаг тестового режима

LMI_MODE

Если СКО выписывается в тестовой валюте, устанавливается значение «1», если в рублях — «0»

WMId покупателя

LMI_PAYER_PURSE

Задается номер счета Покупателя, начинается с «1» и содержит 10 цифр, например 1777740707

Счет покупателя

LMI_PAYER_WM

Задается номер счета Покупателя, начинается с «1» и содержит 10 цифр, например 1777740707

E-mail покупателя

EMAIL

E-mail Покупателя, на который высылаются уведомления об оплате и возможных ошибках


Если флаг передачи параметров установлен, веб-сайт Продавца должен вернуть строку YES в ответе, чтобы сервис Merchant.IntellectMoney мог продолжить выполнение платежа. Если веб-сайт Продавца вернет что-либо другое, платеж выполнен не будет, а ответ будет показан Покупателю в сообщении об ошибке.

Пример 2

Форма предварительного запроса
<html> 
	<head> 
	... 
	</head> 
	<body> 
	... 
		<form method="POST" action="<Result URL>"> 
			<input type="hidden" name="LMI_PREREQUEST" value="1"> 
			<input type="hidden" name="LMI_PAYEE_PURSE" value="432165"> 
			<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="100.00"> 
			<input type="hidden" name="LMI_PAYER_PURSE" value="1777740707"> 
			<input type="hidden" name="LMI_PAYER_WM" value="1777740707"> 
			<input type="hidden" name="LMI_PAYMENT_NO" value="1234"> 
			<input type="hidden" name="LMI_MODE" value="0"> 
			<input type="hidden" name="EMAIL" value="techsupport@intellectmoney.ru"> 
		</form> 
	... 
	</body> 
</html>


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

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

  • Action: Result URL
  • Method: POST или GET в соответствии с настройками магазина
  • Fields: поля, передаваемые в форме, описаны в Таблице № 3. 

3.4. Таблица № 3. Поля, передаваемые в форме оповещения о платеже

Отличия от оригинального протокола Webmoney выделены таким образом.

Название

HTMLFieldName

Описание

Идентификатор магазина

LMI_PAYEE_PURSE

Целое число — идентификатор магазина в сервисе Merchant.IntellectMoney. Назначается автоматически сервисом при создании нового магазина. Состоит из 6 цифр, начинается с «4». Узнать идентификатор магазина можно в настройках магазина во вкладке «Общие». Например: 432169

Исходная сумма платежаLMI_PAYMENT_ORIGINAL_AMOUNTИсходная сумма платежа. Разделитель дробной части “.“(точка), точность до копейки (2 знака после разделителя). Не изменяется в процессе оплаты.

Сумма платежа в валюте магазина

LMI_PAYMENT_AMOUNT

Сумма платежа, которую Продавец желает получить от Покупателя. Сумма должна быть больше нуля, дробная часть отделяется точкой. Точность суммы задается до копейки. Например 10.10 или 21.21 правильны форматы, а 123,231 не верный формат, разделитель указан виде «,» и точность суммы больше чем копейка.
В процессе оплаты может измениться1

Счет Покупателя

LMI_PAYER_PURSE

Задается номер счета Покупателя, начинается с «1» и содержит 10 цифр, например 1777740707

Счет Покупателя

LMI_PAYER_WM

Задается номер счета Покупателя, начинается с «1» и содержит 10 цифр, например 1777740707

Внутренний номер счета магазина

LMI_PAYMENT_NO

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

Внутренний номер счета к оплате в системе IntellectMoney

LMI_SYS_TRANS_NO

Номер СКО, начинается 3 и содержит 10 символов. Например 3450285472.

Внутренний номер платежа в системе IntellectMoney

LMI_SYS_INVS_NO

Номер СКО, начинается 3 и содержит 10 символов. Например 3450285472.

Флаг тестового режима

LMI_MODE

Если СКО выписывается в тестовой валюте, устанавливается значение «1», если в рублях — «0»

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

LMI_SYS_TRANS_DATE

Дата и время зачисления СКО в системе IntellectMoney в формате: yyyyMMdd HH:mm:ss. Например 20100124 23:01:59

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

LMI_HASH

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

Ключ магазина Merchant Key

LMI_SECRET_KEY

Значение Merchant Key, известное только Продавцу и сервису Merchant.IntellectMoney. Это поле будет пустым, если параметр Result URL не обеспечивает секретность, или если не установлен флаг «Отправлять ключ магазина»

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

LMI_PAY_METHOD

Способ оплаты счета. Перечень соответствия значения параметра способу оплаты можно посмотреть здесь.

ShortPan пластиковой карты2

LMI_SHORTPAN

Короткий номер пластиковой карты (первая и четыре последние цифры пластиковой карты), которой был оплачен счет.

Страна2

LMI_COUNTRY

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

Банк эмитент2

LMI_BANK

Банк, выпустивший пластиковую карту.2

IP адрес2

LMI_IP_ADDRESS

IP адрес пользователя, совершившего оплату счета.2

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

Определяются магазином

Все поля, переданные с веб-сайта магазина в форме запроса платежа


1 Сумма СКО может быть изменена в процессе оплаты в двух случаях:

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

Например. Был выставлен холдированный СКО на сумму 15 рублей. Покупатель оплатил СКО через пластиковую карту. На счете пластиковой карты покупателя блокируется сумма равная 15 рублям. После этого сумму СКО уменьшают до 10 рублей. В таком случае на счете у покупателя происходит частичное расхолдирование. Сумма равная 5 рублям разблокируется у покупателя, а сумма 10 рублей будет по-прежнему заблокирована до момента зачисления или отмены СКО.

  • Когда СКО частично оплачен. В таком случает можно уменьшить сумму СКО для того, чтобы СКО стал полностью оплаченным.

Например. Был выставлен СКО на сумму 15 рублей. Покупатель оплатил данный СКО на сумму 10 рублей. СКО находиться в состоянии “частично оплачен “. После этого сумму СКО уменьшают до 10 рублей. В таком случае СКО переходит в состояние “полностью оплачен“ и денежные средства зачисляются на счет магазина.

2 Данный параметр передается в запросе если способ оплаты Эквайринг и включены соответствующие настройки у магазина

В ответ на оповещение о платеже сайт магазина должен ответить «200» статусом запроса и текстом «YES».
Внимание! Сайт магазина обязательно должен предусмотреть проверку информации, присланной в форме оповещения о платеже, в соответствии с рекомендациями по работе алгоритма формирования и проверки контрольной подписи.

Пример 3

Форма оповещения о платеже
<html> 
	<head> 
 	... 
 	</head> 
 	<body> 
 	... 
 		<form method="POST" action="<Result URL>">
 			<input type="hidden" name="LMI_PAYMENT_AMOUNT" value="100.00"> 
 			<input type="hidden" name="LMI_PAYMENT_NO" value="1234"> 
 			<input type="hidden" name="LMI_PAYEE_PURSE" value="432165"> 
 			<input type="hidden" name="LMI_MODE" value="0"> 
 			<input type="hidden" name="LMI_SYS_INVS_NO" value="32850012967"> 
 			<input type="hidden" name="LMI_SYS_TRANS_NO" value="32850012967"> 
 			<input type="hidden" name="LMI_PAYER_PURSE" value="1777740707"> 
 			<input type="hidden" name="LMI_PAYER_WM" value="1777740707"> 
 			<input type="hidden" name="LMI_SYS_TRANS_DATE" value="20100518 22:42:32"> 
 			<input type="hidden" name="LMI_HASH" value="F3276D6A7B458343400503E4C9E0D65F"> 
 			<input type="hidden" name="LMI_ LMI_SECRET_KEY" value="111111"> 
			... 
 			<input type="hidden" name="FIELD_1" value="VALUE_1"> 
 			<input type="hidden" name="FIELD_2" value="VALUE_2"> 
 			... 
 		</form> 
 	... 
	</body>
</html>


3.5. Проверка информации

При выполнении платежа сервис Merchant.IntellectMoney высылает оповещение о платеже через форму оповещения о платеже на Result URL, указанный Продавцом в настройках магазина. Мы рекомендуем проверить следующие данные, полученные через эту форму:

  • источник: действительно ли данные переданы от сервиса Merchant.IntellectMoney;
  • целостность: не исказились ли данные в процессе передачи;
  • сумма платежа;
  • ID магазина.

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

Как указано в соответствующей таблице, значение параметра Merchant Key должно быть известно только сервису Merchant.IntellectMoney и Продавцу. Исходя из этого, Merchant Key может использоваться для аутентификации источника, приславшего данные о платеже. Продавец может провести аутентификацию несколькими методами в зависимости от того, обеспечивает Result URL секретность или нет.
Если Result URL обеспечивает секретность и не переопределяется, то Продавец может произвести аутентификацию источника данных двумя способами:

  • без проверки контрольной подписи: необходимо установить флаг «Высылать Secret Key на Result URL (при HTTPS)». В этом случае сервис Merchant.IntellectMoney будет высылать Merchant Key на веб-сервер Продавца в поле LMI_SECRET_KEY в форме оповещения о платеже. Продавец должен проверять его каждый раз, когда получает оповещение о выполнении платежа;
  • с проверкой контрольной подписи: контрольная подпись формируется сервисом Merchant.IntellectMoney с учетом значения параметра Merchant Key и передается в поле LMI_HASH.

Проверка подписи является более трудоемким методом, но он не требует передачи Merchant Key через Интернет.
Если Result URL не обеспечивает секретность (не используется HTTPS), независимо от установленного флага «Высылать Secret Key на Result URL (при HTTPS)» сервис Merchant.IntellectMoney не высылает Merchant Key. Поэтому для аутентификации источника оповещения о платеже Продавец должен проверять контрольную подпись.

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

Высылая оповещение о проведении платежа, сервис Merchant.IntellectMoney передает реквизиты платежа и контрольную подпись, позволяющую проверять неизменность передаваемых данных. Продавец может выполнить проверку целостности несколькими методами в зависимости от того, обеспечивает Result URL секретность или нет:
Если Result URL обеспечивает секретность, Продавец может не проверять контрольную подпись, т. к. используемый протокол SSL обеспечивает безопасность и целостность передаваемых данных.
Если Result URL не обеспечивает секретность, сервис Merchant.IntellectMoney рекомендует проверять целостность данных, используя контрольную подпись.
Контрольная подпись данных о платеже позволяет Продавцу проверять как источник данных, так и целостность данных, переданных на Result URL через форму оповещения о платеже.
При формировании контрольной подписи сервис Merchant.IntellectMoney «склеивает» значения полей, передаваемых формой оповещения о платеже, в одну строку в следующем порядке (разделителей при склейки нет):

  • ID магазина (LMI_PAYEE_PURSE);
  • сумма платежа (LMI_PAYMENT_AMOUNT);
  • внутренний номер покупки Продавца (LMI_PAYMENT_NO);
  • флаг тестового режима (LMI_MODE);
  • внутренний номер счета в системе IntellectMoney (LMI_SYS_INVS_NO);
  • внутренний номер платежа в системе IntellectMoney (LMI_SYS_TRANS_NO);
  • дата и время выполнения платежа (LMI_SYS_TRANS_DATE);
  • Merchant Key (LMI_SECRET_KEY);
  • счет Покупателя в системе IntellectMoney (LMI_PAYER_PURSE);
  • счет Покупателя в системе IntellectMoney (LMI_PAYER_WM).
  • статус холдированных средств в системе IntellectMoney (LMI_PREREQUEST)

(параметр LMI_PREREQUEST передается только если средства холдированы)

Пример

  • ID магазина (LMI_PAYEE_PURSE = 432169);
  • сумма платежа (LMI_PAYMENT_AMOUNT = 11.10);
  • внутренний номер покупки Продавца (LMI_PAYMENT_NO = order1_123);
  • флаг тестового режима (LMI_MODE = 1);
  • внутренний номер счета в системе IntellectMoney (LMI_SYS_INVS_NO = 3450285472);
  • внутренний номер платежа в системе IntellectMoney (LMI_SYS_TRANS_NO = 3450285472);
  • дата и время выполнения платежа (LMI_SYS_TRANS_DATE = 20100124 23:01:59);
  • Merchant Key (LMI_SECRET_KEY = 111);
  • счет Покупателя в системе IntellectMoney (LMI_PAYER_PURSE = 1777740707);
  • счет Покупателя в системе IntellectMoney (LMI_PAYER_WM = 1777740707 ).
  • статус холдированных средств в системе IntellectMoney (LMI_PREREQUEST=6)

Строка для хэширования будет выглядеть так:
43216911.10order1_12313450285472345028547220100124 23:01:59111177774070717777407076
Последовательность из 32 шестнадцатеричных цифр формируется в соответствии с широко распространенным алгоритмом Message Digest 5 (MD5), разработанным Ron Rivest из MIT Laboratory for Computer Science и RSA Data Security, Inc. Алгоритм был размещен в Интернете в апреле 1992 года (RFC 1321).
Для проверки контрольной подписи Продавец на своем сайте должен:

  • сформировать строку путем «склеивания» значений параметров, полученных через форму оповещения о платеже, в том же порядке, что и при формировании контрольной подписи в сервисе Merchant.IntellectMoney (см. выше). Помните, что при формировании подписи используется Merchant Key;
  • Кодировака подписываемой строки должна быть win 1251
  • вычислить MD5 полученной строки;
  • сравнить полученное значение со значением параметра LMI_HASH, полученным через форму оповещения о платеже. Помните, что контрольная подпись LMI_HASH передается в верхнем регистре (заглавными буквами).

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

3.5.3. Проверка суммы платежа

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

3.5.4. Проверка ID магазина

Несмотря на то, что Покупатель не может изменить ID магазина, для которого совершается платеж, Продавцу рекомендуется контролировать информацию об ID магазина, которая передается через параметр LMI_PAYEE_PURSE, особенно при использовании нескольких магазинов при работе с IntellectMoney.
Помните, что уведомление об успешной оплате может прийти на Result URL уже после перехода Покупателя на страницу Success URL, т. к. не все виды платежей выполняются мгновенно! Это отличие от WebMoney Merchant необходимо учитывать при разработке скрипта Success URL.

4. Программные интерфейсы

Разработан и доступен для проверок магазина XML-интерфейс, который предназначен для использования в программах сторонних разработчиков.
В данном разделе представлены интерфейсы системы, основанные на обращениях (запросах) к специальному Web-серверу системы по протоколу https (SSL 128 бит) в формате XML
Все интерфейсы имеют адрес вида https://api.intellectmoney.ru/webmoney/.
Для аутентификации в запросе передается хеш, сформированный программным путем. Сформированная подпись передается в параметре <md5>…</md5>. Либо передается в открытом виде секретный ключ в параметре <secret_key>…</secret_key>.
Вне зависимости от типа используемой аутентификации, формат запросов одинаков и отличается только способом формирования и передачи подписи запроса. Ниже приведены примеры структуры запросов:
Структура запроса:

Структура запроса:
<merchant.request> 
	<reqn></reqn> - номер запроса 
 	<wmid></wmid> 
 	<lmi_payee_purse></lmi_payee_purse> 
 	<lmi_payment_no></lmi_payment_no> 
 	<sign></sign> 
 	<md5></md5> 
 	<secret_key></secret_key> 
 	<тип_запроса> 
 	... - параметры запроса 
 	</тип_запроса> 
</merchant.request>


Формат ответа системы не зависит от способа аутентификации запроса. Ниже приведен пример структуры ответа сервера:

<merchant.response> 
 	<reqn></reqn> - номер запроса 
 	<wmid></wmid> - WM идентификатор подписавшего запрос 
 	<sign></sign> - подпись запроса 
 	<тип_запроса> 
 	... - параметры запроса 
 	</тип_запроса> 
</merchant.response>

4.1. Интерфейс получение деталей операции через http://api.intellectmoney.ru

Этот интерфейс доступен только клиентам, использующим сервис merchant.intellectmoney.ru
Интерфейс позволяет автоматически по номеру платежа (lmi_payment_no в терминах сервиса merchant) получить информацию о состоянии платежа, был ли совершен платеж или нет, и если был совершен, то получить детали платежа. Интерфейс имеет простую аутентификацию, что позволяет его достаточно легко и безопасно интегрировать и использовать для поиска платежей. Аутентификация производится подсчетом MD5 или передача secret_key по https.
URL для передачи запроса –  https://api.intellectmoney.ru/webmoney/

Метод – POST


Формат запроса:
<merchant.request> 
	<wmid></wmid> 
 	<reqn></reqn> 
 	<lmi_payee_purse></lmi_payee_purse> 
 	<lmi_payment_no></lmi_payment_no> 
 	<sign></sign> 
 	<md5></md5> 
 	<secret_key></secret_key> 
</merchant.request>

Параметры запроса:

wmid

Идентификаторполучателя

Неиспользуется. Параметроставлендлясовместимости.

lmi_payee_purse

Кошелек получателя платежа

Id магазина (EshopId) из настроек магазина на странице

https://www.intellectmoney.ru/ru/enter/ps_organization_shop/ - редактирование магазина.

lmi_payment_no

номер платежа

Номер платежа, который был сформирован сервисом магазина, сайтом, службой, интернет-магазином и т.п. и передан сервису merchant.intellectmoney.ru в форме платежа в скрытом поле ввода lmi_payment_no.

sign

Подпись запроса

Не используется. Параметр оставлен для совместимости.

md5

Подпись запроса

Подпись производится методом MD5 и формируется из параметров: wmid & lmi_payee_purse & lmi_payment_no & secret_key. В случае если используется данный вариант аутентификации запроса, параметры sign и secret_key должны остаться пустыми или быть опущены. Обратите внимание, что при формировании строки к которой применяется алгоритм md5 в качестве secret_key используется значение секретного слова из настроек магазина на странице

https://www.intellectmoney.ru/ru/enter/ps_organization_shop/ - редактирование магазина, закладка «Прием платежей», при этом в самом запросе необходимо передавать ТОЛЬКО результат работы алгоритма в параметре MD5, параметр secret_key должен остаться не указанным или пустым!!!

secret_key

секретное слово

В данном параметре передается значение секретного слова из настроек магазина на странице

https://www.intellectmoney.ru/ru/enter/ps_organization_shop/ - редактирование магазина, закладка «Прием платежей», параметр Secret Key. Обратите внимание, что при использование данного метода, проверка аутентичности соединения по https (валидности и принадлежности корневого сертификата серевера https://api.intellectmoney.ru/ и т.п.) во избежание подмены DNS и т.п. остается на совести отправителя запроса. В случае если используется данный вариант аутентификации запроса, параметры sign и md5 должны остаться пустыми или быть опущены.

Формат ответа:

<?xml version="1.0" ?> 
<merchant.response> 
	<reqn>44847</reqn> 
 	<retval>0</retval> 
 	<retdesc /> 
 	<operation wmtransid="0" wminvoiceid="3865124219"> 
 	<amount> 300,00</amount> 
 	<operdate>2010-05-21T07:17:42.797</operdate> 
 	<purpose>Счет за покупку "Biglion: Скидка 75% на все меню в кафе Артишок (заплатите 150 руб. вместо 600 руб.)" в магазине "Biglion.ru"</purpose> 
 	<pursefrom>IM1488412566</pursefrom> 
 	<wmidfrom>1488412566</wmidfrom> 
 	<capitallerflag>0</capitallerflag> 
 	<enumflag>0</enumflag> 
	<IPAddress /> 
	<telepat_phone /> 
 	<paymer_number>12240</paymer_number> 
 	<paymer_email>Aniri27@mail.ru</paymer_email> 
 	<cashier_number /> 
 	<cashier_date /> 
 	<cashier_amount /> 
 	</operation> 
 </merchant.response>

Параметры ответа:


wmtransid

номер операции

Не используется. Параметр оставлен для совместимости. Всегда 0 (ноль).

wminvoiceid

номер счета

Уникальный номер счета СКО в системе IntellectMoney

amount

сумма

сумма переведенная в данной транзакции продавцу

operdate

дата операции

Серверная дата операции в системе IntellectMoney в формате

purpose

примечание

Назначение платежа, переданное сервису IntellectMoney в поле ввода lmi_payment_desc

pursefrom

кошелек плательщика

Кошелек плательщика. Обратите внимание, что при платеже через терминалы или банкоматы, в качестве кошелька плательщика будет передан кошелек соответствующего шлюза или сервиса.

wmidfrom

ID плательщика

идентификатор, которому принадлежит pursefrom

capitallerflag

параметр платежа

Не используется. Параметр оставлен для совместимости. Всегда 0 (ноль).

enumflag

параметр платежа

Не используется. Параметр оставлен для совместимости. Всегда 0 (ноль).

IPAddress

параметр платежа

Не используется. Параметр оставлен для совместимости.

telepat_phone

параметр платежа

Не используется. Параметр оставлен для совместимости.

paymer_number

параметр платежа

Номер покупки плательщика в системе IntellectMoney

paymer_email

параметр платежа

Email плательщика, указанный им при совершении платежа

cashier_number

параметр платежа

Не используется. Параметр оставлен для совместимости.

cashier_date

параметр платежа

Не используется. Параметр оставлен для совместимости.

cashier_amount

параметр платежа

Не используется. Параметр оставлен для совместимости.

retval

код выполнения

0 – запрос выполнен успешно, другие значения означают, что при запросе произошла ошибка

retdesc

расшифровка кода выполнения


Об оплате счета можно судить по тегам retval и amount. Если счет оплачен, тег operation присутствует и значение amount равно сумме счета. В противном случае тег operation отсутствует.

4.2. Интерфейс рассылки ежедневного реестра платежей СКО

Ежедневно формируется реестр платежей по операциям с использованием сервиса Merchant.IntellectMoney. Это документ, содержащий информацию об операциях, совершаемых с использованием сервиса Merchant.IntellectMoney за определенный период времени, и предоставляется в электронной форме.

Первично файл формируется за весь период использования сервисом merchant. Далее файл формируется за период предыдущей выгрузки реестра до текущего дня.

Файл отправляется по электронной почте, указанной на странице настроек магазина в личном кабинете организации. Поле «E-mail для уведомлений». Файл прикрепляется к письму и также дублируется в теле сообщения. Файл реестра разделен метками

=BEGINREGISTRY= - начало реестра
=ENDREGISTRY= - конец реестра

Формат выгрузки реестра представлен в приложении таблица №4

Таблица № 4 Формат выгрузки данных ежедневного реестра платежей

IMPurchaseId

Номер покупки в системе IntellectMoney merchant

CreationDate

Дата создания покупки

Amount

Сумма

Comment

Комментарии к счету

IMInvoiceId

Номер счета созданного СКО в системе IntellectMoney merchant

EshopPurchaseId

Номер счета покупки в соответсвии с системой учета магазина.


Все параметры разделены ';' (точка с запятой).
Каждый платеж разделен одной строкой.
Пример выгрузки реестра:

=BEGIN REGISTRY=
5663;3001056901;20.04.2010 07:28;590.00;Счет за покупку "Biglion: Скидка 88% на 3 часа игры в боулинг в Спортлайн Клубе (345 руб. вместо 2880 руб.)" в магазине "Biglion.ru";3001056901
6608;3000428969;28.04.2010 08:48;100.00;Счет за покупку "Biglion: Скидка 80% в китайской чайной Аркадия Новикова "Макао-кафе" (заплатите 100 руб. вместо 500 руб.)" в магазине "Biglion.ru";3000428969
8862;3000738570;17.05.2010 10:23;150.00;Счет за покупку "Biglion: Скидка 75% на все меню в кальян баре Shisha Lounge Bar (заплатите 150 руб. вместо 600 руб.)" в магазине "Biglion.ru";3000738570
=END REGISTRY=