ROBOKASSA. Описание интерфейсов

Общее описание сервиса

ROBOKASSA Моментальный старт продаж для малого бизнеса. Решение всех проблем с 54-ФЗ одной кнопкой. Быстрое подключение, легкая интеграция, более 30 способов оплат в рамках единого договора, в том числе Apple Pay, SamsungPay

Продукты:

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

ROBO.MARKET - моментальный старт продаж для малого бизнеса: бесплатный инструмент приема онлайн-платежей более чем 30 способами, онлайн-касса и фискальные чеки.

РОБОЧЕКИ - бесплатный инструмент приема онлайн-платежей с выдачей фискальных чеков в полном соответствии с 54-ФЗ

Основные шаги по созданию и активации магазина

Регистрация и активация в системе ROBOKASSA

Если решение о подключении принято, начните с Регистрации. Формы сотрудничества с ROBOKASSA:

  1. Юридическое лицо, в том числе ИП, ООО, ЗАО, ОАО. А также НКО, БАНК, ФГУП, РНКО и т.д. и т.п. — любая форма юридического лица (только резиденты РФ и Казахстана).

  2. Физическое лицо, с возможностью получения платежей на электронный кошелёк QIWI-Wallet или на карту Visa и MasterCard российского банка.

Регистрация нового клиента

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

Порядок заполнения полей Необходимо указать Страна

Выберите, где регистрируетесь, Россия или Казахстан.

Форма сотрудничества

Выберите одно из значений: Юридическое лицо, Индивидуальный предприниматель, Физическое лицо.

Идентификатор клиента

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

Логин администратора

Логин  это персональный Идентификатор конкретного сотрудника, имеющего доступ к Вашему Личному кабинету клиента сервиса ROBOKASSA. По Логину система определяет роль сотрудника в компании и предоставляет доступ к той или иной информации. Вход в систему возможен по Логину в сочетании с правильным Идентификатором клиента. При создании Личного кабинета клиента по умолчанию создаётся сотрудник с ролью Администратор и соответствующими правами. По умолчанию для него предлагается Логин  admin, который Вы сразу можете изменить на любой другой по своему выбору. Роли и права доступа для остальных сотрудников  раздаются только сотрудником с установленной ролью Администратор. 

Будьте внимательны при раздаче прав уровня Администратора.
E-Mail администратора

На этот адрес будет выслана информация для входа в Личный кабинет. И этот же E-mail  будет использоваться для восстановления доступа к учётной записи Администратора в случае необходимости.

Пароль будет создан автоматически и выслан на E-Mail Администратора вместе с остальными регистрационными данными.

Авторизация и Заполнение основных регистрационных данных

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

После авторизации можно задать свой пароль для доступа в Личный кабинет (заменить автоматически сгенерированный), если у Вас есть такая необходимость. Это делается так:

Прочие регистрационные данные

Следующие шаги пока можно пропустить, и сразу перейти к созданию магазина.
Раздел Настройки

Рекомендуем Вам сразу заполнить Ваши данные и контактную информацию в разделе Настройки.

 

Обязательные поля Обязательными для заполнения являются поля: Полное имя, ФИО

ФИО сотрудника.

ФИО (в родительном падеже)

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

Должность

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

Основной E-Mail

Адрес электронной почты сотрудника.

Телефон

Номер телефона сотрудника.

Необязательные поля Остальные поля заполняются на Ваше усмотрение. Документ, подтверждающий право подписи

Документ, подтверждающий право подписи. Например: Устав, Доверенность, Договор передачи полномочий. 

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

Дополнительный E-Mail

Дополнительный адрес электронной почты.

Skype

Учётная запись Skype.

Адрес

Адрес сотрудника, например, домашний.

Комментарий

Дополнительная информация о сотруднике, которую Вы хотите сохранить.

 

Для юридического лица/Кредитной/Благотворительной/Религиозной организации

Заполните информацию о Вашей организации.

Регистрационные данные Тип собственности

Выберите нужный тип собственности из предложенного списка.

ИНН

Введите ИНН. Для ООО, ОАО, ЗАО - 10 цифр, для индивидуальных предпринимателей - 12 цифр.

КПП

Введите КПП, 9 цифр.

ОГРН/ОГРНИП

Введите ОГРН или ОГРНИП. Для ООО, ОАО, ЗАО - 12 цифр, для ИП - 15 цифр.

Дата внесения записи о регистрации в ЕГРЮЛ/ЕГРИП

Укажите дату внесения записи о регистрации юридического лица/ИП  в единый государственный реестр юридических лиц/ индивидуальных предпринимателей.

Контакты организации

Общие контакты (телефон и факс) Вашей организации и E-Mail бухгалтерии для отправки электронных документов.

Адреса Заполняются в соответствии с Вашими адресами

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

Юридический адрес

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

Фактический адрес

Фактический адрес –  место, где Ваша компания в действительности осуществляет свою профессиональную деятельность.

Почтовый адрес

Адрес, по которому Ваша компания планирует получать корреспонденцию.

Для бюджетной организации

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

Обязательные параметры Лицевой счет

Номер лицевого счета бюджетных средств.

КБК

КБК бюджетной организации.

ОКТМО

Общероссийский классификатор территорий муниципальных образований.

Контакты Данные Подписанта

Выберите действующего ответственного за подписание документов из списка или добавьте нового, нажав кнопку «Добавить».

В данный список попадают только сотрудники у которых заполнены поля: ФИО, ФИО (в род. падеже), Должность и Наименование документа, подтверждающего право подписи.
Данные для контактов

Здесь необходимо указать сотрудника Вашей организации, который будет основным контактным лицом, и к которому мы сможем обращаться по различным вопросам в процессе работы. Сотрудника можно выбрать из списка, или добавить нового, нажав кнопку «Добавить».

В данный список попадают только сотрудники у которых заполнены поля: ФИО, Основной E-mail и Телефон.
Для Индивидуального предпринимателя

Если Вы Индивидуальный предприниматель, то укажите дополнительную информацию.

 

Обязательные параметры ФИО

Укажите полное имя, ФИО.

Дата рождения

Укажите дату рождения в формате ДД.ММ.ГГ.

Место рождения

Укажите место Вашего рождения (как в паспорте).

Паспорт

Укажите серию и номер паспорта, кем и когда выдан.

Свидетельство о государственной регистрации

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

Если Ваше свидетельство оформлено по форме Р61003

Укажите дату выдачи свидетельства в случае если свидетельство оформлено по форме Р61003.

Для юридического лица - нерезидента

Заполните информацию о Вашей организации.

Обязательные параметры для нерезидентов Полное наименование в латинской транскрипции

Название компании с использованием транслитерации, если наименование компании на русском языке или на языке с нелатинскими символами.

Регистрационный номер

Регистрационный номер в стране регистрации (цифро-буквенный код длиной не более 15 символов).

Код налогоплательщика

Код налогоплательщика в стране регистрации или его аналог.

Контакты организации

Общие контакты (телефон и факс) Вашей организации для связи с нами и E-Mail бухгалтерии для отправки электронных документов.

Юридический адрес в стране регистрации

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

Данные подписанта

Выберите действующего ответственного за подписание документов из списка или добавьте нового, нажав кнопку «Добавить».

Необязательные параметры Полное наименование на русском языке

Наименование на русском языке (если имеется).

Код иностранной организации

Номер налогоплательщика, присваиваемый иностранной организации налоговым органом при постановке на налоговый учёт в Российской Федерации. Является составной частью идентификационного номера налогоплательщика (ИНН) и занимает в этой номере цифры с пятой по девятую (первые четыре заняты индексом, десятая — контрольное число).

При наличии представительства в РФ ИНН

Идентификационный номер налогоплательщика на территории РФ.

Контакты представительства

Контактные данные, по которым мы сможем обращаться по различным вопросам в процессе работы. 

Юридический адрес подразделения на территории РФ

Адрес официальной регистрации на территории РФ.

Фактический адрес подразделения на территории РФ

Фактический адрес –  место, где представительство в действительности находится на территории РФ.

Для физического лица

Укажите свой электронный кошелёк QIWI, или карту Visa и MasterCard российского банка.

Способы вывода средств В разделе: «Настройки» – «Способы вывода средств» указываются возможные способы вывода для Ваших средств и их реквизиты.

Выберите новый способ из списка или создайте новый  нажатием кнопки «Добавить способ вывода средств».

Заполните необходимые данные. Например, если выбран банковский счет:

Выберите тип счёта

Тип счёта, с которым Вы собираетесь работать: безналичный счёт в банке, QIWI-кошелек или банковская карта.

Наименование

Придумайте удобное и запоминающееся название для счёта. По этому названию Вы сможете его быстро идентифицировать среди других Ваших счетов.

БИК

БИК банка, в котором открыт Ваш расчётный счёт.

Корр. счёт

Корреспондентский счёт банка, в котором открыт Ваш расчётный счёт.

Расч. счёт

Расчётный счёт должен состоять из 20 цифр и начинаться с: 30111, 30231, 40201, 40406, 40501, 40502, 40503, 40601, 40602, 40603, 40701, 40702, 40703 или 40802.

Создание магазина

Создать первый магазин можно либо на Главной странице Вашего Личного кабинета клиента либо в разделе «Мои магазины» нажатием кнопки «Добавить новый». В дальнейшем, магазины можно создавать только в разделе «Мои магазины».  На открывшейся странице необходимо заполнить все поля, в соответствии с их назначением и требованиями.

 

Форма регистрации нового магазина Зарегистрироваться как

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

  • юридического лица или ИП для приема платежей через ROBOKASSA;
  • физического лица для приема платежей через ROBOKASSA.
После активации магазина изменение его типа  невозможно.
Наименование магазина

Это название будет видеть клиент при совершении оплаты в нашем интерфейсе. Должно быть уникальным для каждого магазина.

Название магазина должно быть коротким и содержать не более 40 символов. Если название будет слишком длинным, то на страницах оплаты, скорее всего, будет показываться URL главной страницы Вашего сайта.
Идентификатор магазина

Идентификатор магазина – обозначение магазина ТОЛЬКО для использования интерфейсом инициализации оплаты, то есть для понимания системой ROBOKASSA в адрес какого магазина будет проводиться платеж. Идентификатор может содержать латинские буквы, цифры и символы: . - _.

Не путайте Идентификатор магазина с Идентификатором клиента!
В скрипте ROBOKASSA, а также в панели управления сайтом (если Вы работаете на CMS со встроенным модулем ROBOKASSA), в качестве значения для параметра MerchantLogin, необходимо использовать именно Идентификатор магазина, а не Ваш Логин для входа в Личный кабинет клиента. Во встроенных модулях оплаты параметр MerchantLogin чаще всего обозначается как Логин, Логин магазина в ROBOKASSA или подобным образом.
Почтовый адрес

Заполняется в том случае, если ранее Вами не были заполнены данные Юридического лица, раздел Адреса.

Заполняется только для юридического лица.
URL главной страницы Вашего сайта

Буквально – адрес главной страницы Вашего сайта. Например, http://www.robokassa.ru/. Настоящий URL будет использоваться в разделе Технические настройки, который станет Вам доступен  после создания магазина.

Внимание! После активации магазина этот URL изменить будет невозможно!
Расчётный счёт магазина

Выбирается из списка расчётных счетов, если уже был задан ранее. Если счёт еще не создан, то создаётся  в разделе Настройки  Способы вывода средств нажатием на кнопку «Добавить способ вывода средств».

Ответственное лицо

Ваш сотрудник, который будет отвечать за взаимодействие с ROBOKASSA по общим вопросам, и к которому мы всегда сможем обратиться. Сотрудника можно выбрать из списка, или добавить нового, нажав кнопку «Добавить».

В данный список попадают только сотрудники у которых заполнены поля: ФИОEmail 1 и Телефон.
Тех. Поддержка

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

В данный список попадают только сотрудники у которых заполнены поля: ФИОEmail 1 и Телефон.
Раздел нашего Каталога магазинов, в котором можно будет найти Ваш магазин

Укажите раздел Каталога, в котором будет располагаться Ваш магазин. Если выбрана категория «Другие товары» или категория, не полностью раскрывающаю Вашу деятельность, пожалуйста, укажите дополнительную информацию. Например, Раздел «Другие товары», а как дополнительное описание  — «купоны на скидку». Обратите внимание, что после активации магазина, для смены раздела каталога потребуется специально сформировать запрос на изменение данных. Этот запрос будет рассмотрен нашими специалистами.

Дополнительное описание товаров (работ, услуг)

Дополнительная уточняющая информация о Ваших товарах, помогающая  покупателю найти этот Ваш товар среди остальных.

После заполнения всех данных, не забудьте нажать кнопку «Создать»! Иначе магазин не будет сохранён в Вашем Личном кабинете клиента.

Фискализация

С 15 июля 2016 года вступили в силу изменения в Федеральный закон от 22.05.2003 № 54-ФЗ, регулирующий вопросы применения контрольно- кассовой техники, а с 1 февраля 2017 они стали обязательными для большинства юридических лиц и индивидуальных предпринимателей. Данные о каждой операции по приему денежных средств должны автоматически передаваться в налоговую инспекцию посредством сети интернет. Передаются они через специальных субъектов – операторов фискальных данных, с которыми юридическое лицо или предприниматель обязаны заключить договор. Поэтому при регистрации магазина необходимо выбрать одно из решений по фискализации.

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

Технические настройки

Вы можете быстро перейти к настройкам конкретного магазина из общего списка, который виден как на главной странице, так и в разделе Мои магазины, с помощью кнопки «Настройки магазина», представленной в виде иконки (см. картинку).

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

Вносить изменения в этот раздел Вы можете в любое время, в том числе и после Активации магазина.

Форма "Технические настройки" Идентификатор магазина

Первой строкой указан Идентификатор магазина, придуманный Вами при создании магазина.

Алгоритм расчёта хэша

Определяет метод, с помощью которого будет рассчитываться значение параметра SignatureValue. Поддерживаются следующие алгоритмы расчёта хэша: MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512. Подробнее об алгоритмах хэширования можно прочитать тут.

Пароль #1

Используется интерфейсом инициализации оплаты. Длина не менее 8 символов, должен содержать хотя бы одну букву и хотя бы одну цифру.

Пароль #2

Используется интерфейсом оповещения о платежеXML-интерфейсами. Длина не менее 8 символов, должен содержать хотя бы один символ и хотя бы одну цифру. 

Пароли должны отличаться друг от друга и ни в коем случае НЕ совпадать с паролем для входа в Личный кабинет.

Из соображений безопасности сохраненные пароли не показываются на экране. Запишите/сохраните  все пароли, они потребуются Вам в дальнейшей работе по настройке скриптов.

ResultURL

На него мы будем отправлять Вам оповещение об успешных платежах в автоматическом режиме.

Без настройки этого URL, корректная работа с нашей системой не гарантируется.
Метод отсылки данных по ResultURL

Укажите, каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю  ROBOKASSA в CMS на которой Вы работаете.

Если в работе Вашего сайта (магазина) предусмотрено, что всё обрабатывается в ручном режиме и за поступлением платежей следит Ваш сотрудник, то Вы можете настроить автоматическое оповещение на электронный адрес. Для этого в полях ResultURL Вам нужно выбрать метод отсылки данных E-Mail и указать адрес электронной почты, на который Вы желаете получать уведомления.

Пример:

СМС оповещение на телефон

Необязательно для заполнения. 

Внимание! Услуга платная.
SuccessURL

На него будет перенаправлен покупатель после успешного платежа.

Метод отсылки данных по SuccessURL

Укажите, каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) данных уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю ROBOKASSA в CMS на которой Вы работаете.

Пример:

 

FailURL

На него будет перенаправлен покупатель после неуспешного платежа, отказа от оплаты.

Метод отсылки данных по FailURL

Укажите,  каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) данных уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю  ROBOKASSA в CMS на которой Вы работаете.

Пример:

Параметры проведения тестовых платежей эти настройки нужны для работы в тестовом режиме Алгоритм расчета контрольной суммы

Определяет метод, с помощью которого будет рассчитываться значение параметра SignatureValue для тестовых платежей. Поддерживаются следующие алгоритмы расчёта: MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512. Подробнее об алгоритмах хэширования можно прочитать тут.

Пароль#1

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

Пароль#2

Используется для тестирования магазина интерфейсом оповещения о платежеXML-интерфейсами. Длина не менее 8 символов, должен содержать хотя бы один символ и хотя бы одну цифру. 

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

Обращаем Ваше внимание, что если раздел Технические настройки не будет заполнен должным образом, то полноценное взаимодействие Вашего сайта (магазина) с системой ROBOKASSA будет невозможно, и Вашей заявке на активацию будет отказано.

Изменение технических настроек после активации

Данные в разделе Технические настройки можно изменять и сохранять без дополнительного подтверждения до Активации Вашего магазина. После Активации для сохранения изменений потребуется вводить Код подтверждения, который высылается на E-Mail сотрудника, вносившего эти изменения.

Код действителен в течении 20 минут, после этого все внесённые Вами изменения будут отменены.

Активация

После выполнения всех вышеописанных действий и настройки скрипта ROBOKASSA на Вашем сайте Вы можете направить нам запрос на Активацию Магазина для приёма платежей. Данный запрос отправляется из Настроек Вашего магазина (раздел Мои магазины – магазин который необходимо активировать), по кнопке «Запрос на активацию»:

Но если Вами не заполнены какие-то важные разделы, информация из которых будет использоваться в работе, то в настройках магазина будет присутствовать напоминание об этом, а кнопка «Запрос на активацию»  не будет отображаться.

При наличии такого напоминания необходимо проверить корректность заполнения данных Юридического лица и раздела Технические настройки.

Деактивировать магазин можно только по запросу в Службу Поддержки ROBOKASSA.

Готовое решение для оплаты на сайте

Robokassa предоставляет возможность поставить на свой сайт кнопку/ссылку для оплаты товара через Robokassa. Кнопка может быть как с фиксированной суммой (опция "Оплатить"), так и с произвольной суммой.

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

 

Скопируйте код и вставьте его на свой сайт.

При клике на кнопку "Оплатить" плательщик будет перенаправлен на платежную страницу Robokassa.

Виджеты и модули оплаты

Итак, Вы зарегистрировались, теперь необходимо выполнить важный шаг – установить скрипт ROBOKASSA на Вашем сайте и настроить его работу. 

Здесь Вы можете ознакомиться с готовыми модулями под различные CMS и торговые платформы. 

Официальные модули ROBOKASSA

Официальный модуль приема платежей Robokassa для Битрикс 24. Robokassa - оплата Битрикс24  

 

Официальный модуль приема платежей Robokassa для AMO CRM. Robokassa - оплата AMO CRM

 

Официальный модуль приема платежей Robokassa для InSales. Robokassa - оплата InSales

 

Официальный модуль приема платежей Robokassa для WordPress. Robokassa - оплата WordPress

 

Официальный модуль приема платежей Robokassa для OpenCart. Robokassa - оплата OpenCart

 

Официальный модуль приема платежей Robokassa для Joomla VirtueMart - оплата VirtueMart

 

Официальный модуль приема платежей Robokassa для 1С-Битрикс. Robokassa - оплата 1С-Битрикс

Виджеты и модули оплаты сторонних разработчиков

Модуль приема платежей Robokassa для Ecwid. Robokassa - оплата Ecwid

 

Модуль приема платежей Robokassa для 1С-Битрикс. Robokassa - оплата 1С-Битрикс

 

Модуль приема платежей Robokassa для HOST CMS. Robokassa - оплата HOST CMS

 

Модуль приема платежей Robokassa для DIAFAN CMS. Robokassa - оплата DIAFAN CMS

 

Модуль приема платежей Robokassa для OpenCart. Robokassa - оплата OpenCart
Модули сторонних разработчиков

 

Модуль приема платежей Robokassa для Tilda Publishing. Robokassa - оплата Tilda Publishing

 

Модуль приема платежей Robokassa для PHPShop CMS. Robokassa - оплата PHPShop CMS

 

Модуль приема платежей Robokassa для cs.cart. Robokassa - оплата cs.cart

 

Модуль приема платежей Robokassa для PERFECT CMS. Robokassa - оплата PERFECT CMS

  • Интегрирован в саму CMS 

 

Модуль приема платежей Robokassa для Drupal. Robokassa - оплата Drupal

 

Модуль приема платежей Robokassa для АвтоВебОфис. Robokassa - оплата АвтоВебОфис

 

Модуль приема платежей Robokassa для платформа для инфобизнеса Emdesell. Robokassa - оплата Emdesell

 

Модуль приема платежей Robokassa для LPGenerator. Robokassa - оплата LPGenerator

 

Модуль приема платежей Robokassa для X-CART. Robokassa - оплата X-CART

 

Модуль приема платежей Robokassa для orderino. Robokassa - оплата orderino

 

Модуль приема платежей Robokassa для FLEXCORE. Robokassa - оплата FLEXCORE

 

Модуль приема платежей Robokassa для AdVantShop .NET. Robokassa - оплата AdVantShop .NET

 

Модуль приема платежей Robokassa для lanbilling2. Robokassa - оплата lanbilling2

 

Модуль приема платежей Robokassa для Cranbee Store. Robokassa - оплата Cranbee Store

 

Модуль приема платежей Robokassa для UMI.CMS. Robokassa - оплата UMI.CMS

 

Модуль приема платежей Robokassa для READY-SCRIPT. Robokassa - оплата READY-SCRIPT

 

Модуль приема платежей Robokassa для Shop-Script. Robokassa - оплата Shop-Script

 

Модуль приема платежей Robokassa для Amiro CMS. Robokassa - оплата Amiro CMS

 

Модуль приема платежей Robokassa для GET-COURSE. Robokassa - оплата GET-COURSE

 

Модуль приема платежей Robokassa для flexbe. Robokassa - оплата flexbe

 

Модуль приема платежей Robokassa для TO BIZ.NET. Robokassa - оплата TO BIZ.NET

 

Модуль приема платежей Robokassa для E-AutoPay.com. Robokassa - оплата E-AutoPay.com

 

Модуль приема платежей Robokassa для Appthemes

 

Модуль приема платежей Robokassa для PricePlan. Robokassa - оплата PricePlan

 

Модуль приема платежей Robokassa для FastSales. Robokassa - оплата FastSales

 

Модуль приема платежей Robokassa для simpla. Robokassa - оплата simpla

 

Модуль приема платежей Robokassa для WebAsyst. Robokassa - оплата WebAsyst

Модуль приема платежей Robokassa для Bazium. Robokassa - оплата Bazium

 

Модуль приема платежей Robokassa для Гидра. Robokassa - оплата Гидра

 

Модуль приема платежей Robokassa для NNOVO. Robokassa - оплата NNOVO

 

 

Модуль приема платежей Robokassa для PrestaShop.  Robokassa - оплата PrestaShop

 

Модуль приема платежей Robokassa для Vigbo. Robokassa - оплата Vigbo

 

Модуль приема платежей Robokassa для Eshoper. Robokassa - оплата Eshoper

 

Модуль приема платежей Robokassa для BNOVO. Облачная система управления отелем, хостелом, апартаментами

 

Модуль приема платежей Robokassa для Osclass. Osclass – бесплатный скрипт доски объявлений

 

База знаний Платформы LP

 

Модуль приема платежей Robokassa для LP MOTOR. Robokassa - оплата LP MOTOR

 

Модуль приема платежей Robokassa для MOGUTA CMS. Robokassa - оплата MOGUTA CMS

 

Модуль приема платежей Robokassa для UKIT. Robokassa – UKIT

 

Модуль приема платежей Robokassa для Megagroup CMS S3

 

Модуль приема платежей Robokassa для Sellios

 

Модуль приема платежей Robokassa для 5CMS

 

Модуль приема платежей Robokassa для CMS Invision Community

 

Модуль приема платежей Robokassa для FormDesigner.ru

 

Модуль приема платежей Robokassa для Creatium. Robokassa - оплата Creatium

 

Модуль приема платежей Robokassa для AINOX. Robokassa - оплата AINOX

Демонстрационные магазины

Оплата заданной суммы

На странице сайта продавца размещается код, формирующий кнопку для перехода на оплату через ROBOKASSA. При нажатии на эту кнопку покупатель будет перенаправлен на сайт ROBOKASSA для совершения платежа на указанную продавцом сумму.

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

Корзина покупок
  Кол-во (шт.) Цена (руб.) Сумма (руб.)

Техническая документация по ROBOKASSA 1 6,00 6,00
Техническая документация по Robo.market 1 5,00 5,00

  11,00


 

Ознакомиться с примерами кода, описанием используемый параметров и их значений, Вы можете здесь

Выбрать готовый модуль под свою CMS или торговую платформу, Вы можете здесь

Оплата произвольной суммы

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

Пример подобной формы с возможностью ввода суммы находится ниже. Будьте внимательны, если Вы введете данные вашего платежного средства, то сможете провести настоящую операцию оплаты в адрес нашего демонстрационного магазина:


 

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

Выбрать готовый модуль под свою CMS или торговую платформу, Вы можете здесь.

Интерфейс оплаты

Код кассы с одной кнопкой «Оплатить»

Интерфейс ROBOKASSA, предлагающий перейти к оплате, нажав одну кнопку. 

Предварительно магазин должен сохранить у себя передаваемую информацию (номер счёта, сумма, дата формирования и дополнительные параметры, если они используются). Адрес для отправки запроса на проведение оплаты: https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js

Результатом является изображенная на иллюстрации форма:

Варианты кнопок Вы можете увидеть здесь.

Параметры запроса: MerchantLogin, OutSum, InvId, Description и SignatureValue.

База для расчёта контрольной суммы: MerchantLogin:OutSum:InvId:Пароль#1 

где: Пароль#1   это тот самый пароль, который Вы указали в Технических настройках.

Если Вы хотите передавать нам пользовательские параметры, например: Shp_login=Vasya и Shp_oplata=1, то база для расчёта контрольной суммы должна выглядеть так:

MerchantLogin:OutSum:InvId:Пароль#1:Shp_login=Vasya:Shp_oplata=1

 Пример кода (PHP), для установки на сайте, с использованием только обязательных параметров:

<? $mrh_login = "demo"; $mrh_pass1 = "password_1"; $inv_id = 0; $inv_desc = "Техническая документация по ROBOKASSA"; $out_summ = "8.96"; $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1"); print "<html><script language=JavaScript ". "src='https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js?". "MerchantLogin=$mrh_login&OutSum=$out_summ&InvoiceID=$inv_id". "&Description=$inv_desc&SignatureValue=$crc'></script></html>"; ?>

Подробное описание всех использованных параметров и их значений можно посмотреть здесь. Обратите внимание, что приведённый пример предполагает, что в Технических настройках магазина выбран алгоритм расчёта хэша MD5.

Покупатель отправляется для оплаты в платёжный интерфейс ROBOKASSA, выбирает способ оплаты и совершает платёж. После чего средства перечисляются на Ваш баланс в системе ROBOKASSA, а на зарегистрированные Вами  ResultURL мы пришлём уведомление об оплате.

Оплата произвольной суммы

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

На странице оплаты сайта продавца размещается код, выполняющий запрос на сайт ROBOKASSAROBOKASSA возвращает в качестве ответа на запрос html код формы:

Примеры кода для сайта:

<? $mrh_login = "demo"; $mrh_pass1 = "password_1"; $inv_id = 0; $inv_desc = "Техническая документация по ROBOKASSA"; $def_sum = "10"; $crc = md5("$mrh_login::$inv_id:$mrh_pass1"); print "<html><script language=JavaScript ". "src='https://auth.robokassa.ru/Merchant/PaymentForm/FormFLS.js?". "MerchantLogin=$mrh_login&DefaultSum=$def_sum&InvoiceID=$inv_id". "&Description=$inv_desc&SignatureValue=$crc'></script></html>"; ?>

Приведённый пример предполагает, что в Технических настройках магазина выбран алгоритм расчёта хэша MD5.

Параметр OutSum в этом варианте не участвует. Вместо него используется: DefaultSum  сумма, отображаемая (предлагаемая для оплаты) в форме по умолчанию. В отличие от OutSum, DefaultSum не участвует в  расчёте контрольной суммы SignatureValue.

База для расчёта контрольной суммы SignatureValue, будет выглядеть так:"$mrh_login::$inv_id:$mrh_Пароль#1".

Обратите внимание, что вместо параметра OutSum пустое место.

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

Пример кода с использованием всех параметров

Пример кода на PHP, для установки на сайте. 

<?php // регистрационная информация (Идентификатор магазина, пароль #1) // registration info (Merchant ID, password #1) $mrh_login = "demo"; $mrh_pass1 = "Password_1"; // номер заказа // number of order $inv_id = 12345; // описание заказа // order description $inv_desc = "Техническая документация по ROBOKASSA"; // сумма заказа // sum of order $out_summ = "8.96"; // тип товара // code of goods $shp_item = 1; // предлагаемая валюта платежа // default payment e-currency $in_curr = "BANKOCEAN2R"; // язык // language $culture = "ru"; // кодировка // encoding $encoding = "utf-8"; // Адрес электронной почты покупателя // E-mail $Email = "test@test.ru"; // Срок действия счёта // Expiration Date $ExpirationDate = "2029-01-16T12:00"; // Валюта счёта // OutSum Currency $OutSumCurrency = "USD"; // формирование подписи // generate signature $crc = md5("$mrh_login:$out_summ:$inv_id:$OutSumCurrency:$mrh_pass1:Shp_item=$shp_item"); // форма оплаты товара // payment form print "<html>". "<form action='https://auth.robokassa.ru/Merchant/Index.aspx' method=POST>". "<input type=hidden name=MerchantLogin value=$mrh_login>". "<input type=hidden name=OutSum value=$out_summ>". "<input type=hidden name=InvId value=$inv_id>". "<input type=hidden name=Description value='$inv_desc'>". "<input type=hidden name=SignatureValue value=$crc>". "<input type=hidden name=Shp_item value='$shp_item'>". "<input type=hidden name=IncCurrLabel value=$in_curr>". "<input type=hidden name=Culture value=$culture>". "<input type=hidden name=Email value=$Email>". "<input type=hidden name=ExpirationDate value=$ExpirationDate>". "<input type=hidden name=OutSumCurrency value=$OutSumCurrency>". "<input type=submit value='Оплатить'>". "</form></html>"; ?>

Подробное описание всех использованных параметров и их значений можно посмотреть здесьОбратите внимание, что приведённый пример предполагает, что в Технических настройках магазина выбран алгоритм расчёта хэша MD5.

Варианты кнопок и форм

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

Варианты кнопки оплаты

https://auth.robokassa.ru/Merchant/PaymentForm/FormM.js

 

https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js

 

https://auth.robokassa.ru/Merchant/PaymentForm/FormS.js

 

https://auth.robokassa.ru/Merchant/PaymentForm/FormSS.js

https://auth.robokassa.ru/Merchant/PaymentForm/FormL.js

https://auth.robokassa.ru/Merchant/PaymentForm/FormV.js

 

 

 

Варианты формы со вводом суммы

https://auth.robokassa.ru/Merchant/PaymentForm/FormFL.js

https://auth.robokassa.ru/Merchant/PaymentForm/FormFLS.js

Оповещение об оплате на ResultURL

ResultURL предназначен для получения Вашим сайтом оповещения об успешном платеже в автоматическом режиме.

В случае успешного проведения оплаты ROBOKASSA делает запрос на ResultURL (см. раздел Технические настройки) с указанием параметров OutSum, InvId и SignatureValue.

Данные всегда передаются в кодировке UTF-8.
Описание параметров OutSum

Сумма, оплаченная покупателем (та самая сумма, которую Вы прислали в ROBOKASSA на страницу оплаты).

InvId

Номер счета в магазине.

EMail

EMail, указанный покупателем в процессе оплаты.

Fee

Комиссия Robokassa за совершение операции. Комиссия удерживается согласно тарифу клиента. Таким образом из суммы, оплаченной покупателем (параметр OutSum) вычитается комиссия Robokassa, и на расчетный счет поступит сумма OutSum минус Fee.

Для клиентов, подключенных как физическое лицо параметр Fee всегда =0.

SignatureValue

Контрольная сумма - хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. 

База для расчёта контрольной суммы: OutSum:InvId:Пароль#2  если Вы не передавали пользовательские параметры, и: OutSum:InvId:Пароль#2:[Пользовательские параметры].

Например: если Вы передали нам параметры с вот такими значениями:

  • OutSum = 100.26
  • InvId = 450009
  • Shp_login = Vasya
  • Shp_oplata = 1

 то база для расчёта контрольной суммы будет выглядеть так: 100.26:450009:Пароль#2:Shp_login=Vasya:Shp_oplata=1.

Про Пароль#2 можно  можно прочитать в разделе Технические настройки.

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

Если контрольные суммы совпали, то Ваш скрипт должен ответить ROBOKASSA, чтобы мы поняли, что Ваш скрипт работает правильно и повторное уведомление с нашей стороны не требуется. Результат должен содержать  текст OK и параметр InvId. Например, для номера счёта 5 должен быть возвращён вот такой ответ: OK5.

Если контрольные суммы не совпали, то полученное оповещение некорректно, и ситуация требует разбора магазином.

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

Получена оплата:

Цена: OutSum
inv_id: InvId
Метод оплаты: PaymentMethod
[Пользовательские параметры]

С уважением,
Проект ROBOKASSA

Переадресация пользователя при успешной оплате на SuccessURL

В случае успешного исполнения платежа Покупатель сможет перейти по адресу, указанному Вами в Технических настройках, там же Вы указали метод (GET или POST).

Переход пользователя по данному адресу с корректными параметрами (правильной Контрольной суммой) означает, что оплата Вашего заказа успешно выполнена.

Однако для дополнительной защиты желательно, чтобы факт оплаты проверялся скриптом, исполняемым при переходе на ResultURL, или путем запроса XML-интерфейса получения состояния оплаты счета, и только при реальном наличии счета с номером InvId в БД магазина.

На самом деле, переход пользователя по ссылке SuccessURL – это формальность, которая нужна только для того, чтобы пользователь вернулся обратно к Вам и получил информацию о том, что он сделал всё правильно, и его заказ ждёт его там-то и там-то. Проводить подтверждение оплаты у себя по базе и все остальные действия, связанные с выдачей покупки, Вам нужно при получении уведомления на ResultURL, потому что именно на него ROBOKASSA передаёт подтверждающие данные об оплате в автоматическом режиме (т. е. в любом случае и без участия пользователя).

Параметры, передающиеся при переходе OutSum

Сумма, оплаченная покупателем (та самая, которую Вы прислали в ROBOKASSA, на страницу оплаты).

InvId

Номер счета в магазине.

SignatureValue

Контрольная сумма - хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. 

База для расчёта контрольной суммы: OutSum:InvId:Пароль#1  если Вы не передавали пользовательские параметры, и: OutSum:InvId:Пароль#1:[Пользовательские параметры].

Например: если Вы передали нам параметры с вот такими значениями:

  • OutSum = 100.26
  • InvId = 450009
  • Shp_login = Vasya
  • Shp_oplata = 1

 то база для расчёта контрольной суммы будет выглядеть так: 100.26:450009:Пароль#1:Shp_login=Vasya:Shp_oplata=1.

Про Пароль#1 можно  можно прочитать в разделе Технические настройки.

Контрольная сумма считается от значений, пришедших в запросе без каких-либо преобразований, округления и т. п. Это сделано для того, чтобы рассчитанное значение Контрольной суммы не зависело от способов округления, используемых магазином, форматов представления чисел, разделителей целой и дробной части и т. д.

Culture

Язык, использовавшийся при совершении оплаты. В соответствии с ISO 3166-1.

Пользовательские параметры

Переадресация пользователя при отказе от оплаты на FailURL

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

Необходимо для того, чтобы Продавец мог, например, разблокировать заказанный товар на складе. При отказе от оплаты, магазину на FailURL методом, выбранным при регистрации, будут переданы параметры:

Параметры, передающиеся при отказе от оплаты OutSum

Сумма, оплаченная покупателем (та самая, которую Вы прислали в ROBOKASSA, на страницу оплаты).

InvId

Номер счета в магазине.

Culture

Язык, использовавшийся при совершении оплаты. В соответствии с ISO 3166-1.

Переход пользователя по данному адресу, строго говоря, не означает окончательного отказа Покупателя от оплаты, нажав кнопку «Back» в браузере он может вернуться на страницы ROBOKASSA. Поэтому в случае блокировки товара на складе под заказ, для его разблокирования желательно проверять факт отказа от платежа запросом запроса XML-интерфейса получения состояния оплаты счета, используя в запросе номер счета InvId имеющийся в БД магазина (Продавца).

Типовые ошибки интерфейса оплаты Код ошибки: 25

"Магазин не активирован"
Ошибка возникает в двух случаях:

  1. Магазин действительно еще не активирован, а вы пытаетесь выставлять счета в "боевом" режиме;
  2. Когда в технических настройках на вашем сайте вы некорректно указали Идентификатор магазина. Найти его можно в разделе "Мои магазины" вашего ЛК, открыв нужный магазин. В закладке "Технические настройки" будет поле "Идентификатор магазина". Значение данного поля нужно скопировать и корректно прописать в настройках вашего сайта.
Код ошибки: 26

"Магазин не найден"
Ошибка возникает в том случае, когда в технических настройках на вашем сайте вы некорректно указали Идентификатор магазина. Найти его можно в разделе "Мои магазины" вашего ЛК, открыв нужный магазин. В закладке "Технические настройки" будет поле "Идентификатор магазина". Значение данного поля нужно скопировать и корректно прописать в настройках вашего сайта.

Код ошибки: 29

"Неверный параметр Signature"
Проверьте скрипт, отвечающий за инициализацию оплаты, а именно ту часть, которая формирует Signature по формуле, состоящей из переменных. Самые распространенные неточности, из-за которых может неверно считаться данный параметр:

  1. Используется некорректный Идентификатор магазина (MerchantLogin);
  2. Используется некорректный Пароль 1 (MerchantPass1);
  3. Используются дополнительные пользовательские параметры (shp_), которые добавлены в программный код кассы, но не занесены в формулу подсчета, или наоборот, в формуле подсчета они почему-то указаны, а в коде нет. Если shp_ используются, то они должны быть переданы в алфавитном порядке как в параметрах на оплату, так и в формуле подсчета Signature.
ВАЖНО: Если вы используете тестовую среду ROBOKASSA, передавая параметр IsTest=1 или включив его галочкой в настройках вашего модуля/бота, то необходимо использовать ТОЛЬКО ТЕСТОВУЮ пару технических паролей (см. закладку "Технические настройки" в Карточке магазина).
Код ошибки: 30

"Неверный параметр счёта"
Проверьте правильность передаваемых как обязательных, так и необязательных параметров счета.

Код ошибки: 31

"Неверная сумма платежа"

Ошибка возникает по причине того, что при переадресации клиента на платежную страницу сервиса ROBOKASSA для выставления счета, вы не передаете нам сумму, на которую необходимо исполнить платеж. Либо передаете сумму равную 0.

Код ошибки: 33

"Время отведённое на оплату счёта истекло"

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

Код ошибки: 34

"Услуга рекуррентных платежей не разрешена магазину"

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

Код ошибки: 35

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

Код ошибки: 40

"Повторная оплата счета с тем же номером невозможна"

В момент формирования запроса на инициализацию оплаты вы передаете нам значение параметра InvId (номер заказа/счета), которое уже использовалось вами прежде. Этот параметр должен принимать с каждой переадресацией в сервис ROBOKASSA уникальное значение. Ошибка показывает, что один из клиентов уже оплатил данный номер заказа ранее, а сейчас вы переадресуете к нам другого плательщика, выставляя ему тот же номер счета. Поправьте момент с изменением значения параметра InvId.

Код ошибки: 41

"Ошибка на старте операции"

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

Код ошибки: 42

"Тестовый номер счета не может быть использован для проведения оплаты"

Не представляется возможным использовать один и тот же номер заказа (InvId) как в тестовой, так и в боевой среде. Со временем тестовые инвойсы удаляются, но в некоторый промежуток времени подобные попытки оплаты будут отменяться.

Код ошибки: 60

"Ошибка конвертации валюты"

В параметре OutSumCurrency передано недопустимое значение, отличное от USD, EUR и KZT.

Коды ошибок: 20, 21, 22, 23, 24, 27, 28, 32, 36, 37, 43, 500

"Внутренние ошибки сервиса"

В случае возникновения данных ошибок, просьба обратиться в поддержку нашего сервиса ROBOKASSA через раздел «Поддержка» вашего личного кабинета.

Описание параметров скрипта (модуля) ROBOKASSA

В данном разделе описаны все параметры используемые в скриптах ROBOKASSA. 

По этим ссылкам Вы можете скачать архивы с примерами реализации скрипта, на нескольких языках программирования:

Описание переменных, параметров и значений

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

Обязательные параметры

Без них ничего работать не будет!

MerchantLogin

Идентификатор магазина в ROBOKASSA, который Вы придумали при создании магазина.

OutSum

Требуемая к получению сумма (буквально  стоимость заказа, сделанного клиентом). Формат представления  число, разделитель  точка, например: 123.45.

Сумма должна быть указана в рублях. 

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

Description

Описание покупки, можно использовать только символы английского или русского алфавита, цифры и знаки препинания. Максимальная длина  100 символов. Эта информация отображается в интерфейсе ROBOKASSA и в Электронной квитанции, которую мы выдаём клиенту после успешного платежа. Корректность отображения зависит от необязательного параметра Encoding (см. Необязательные параметры).

SignatureValue

Контрольная сумма - хэш, число в 16-ричной форме и любом регистре (0-9, A-F)рассчитанное методом указанным в Технических настройках магазина. Рассчитывается по базе, содержащей следующие параметры, разделенные символом ':', с добавлением Пароль#1  — (этот пароль Вы придумали, на этапе заполнения раздела Технические настройки): MerchantLogin:OutSum:InvId:Пароль#1  — если параметр InvId был передан, и: MerchantLogin:OutSum::Пароль#1  если параметр InvId передан не был.

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

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

IncCurrLabel

Предлагаемый способ оплаты. Тот вариант оплаты, который Вы рекомендуете использовать своим покупателям (если не задано, то по умолчанию открывается оплата Банковской картой). Если параметр указан, то покупатель при переходе на сайт ROBOKASSA попадёт на страницу оплаты с выбранным способом оплаты.Например:

Пользователь может изменить его в процессе оплаты.

Доступные значения для параметра IncCurrLabel  Alias валют, Вы можете получить с использованием соответствующего интерфейса описанного в разделе: XML интерфейсы. Интерфейс получения списка валют. 

InvId

Номер счета в магазине. Необязательный параметр, но мы настоятельно рекомендуем его использовать.

Значение этого параметра должно быть уникальным для каждой оплаты. Может принимать значения от 1 до 2147483647 (231-1). Если значение параметра пустое, или равно 0, или параметр вовсе не указан,  то при создании операции оплаты ему автоматически  будет присвоено уникальное значение.

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

Если параметр передан, то он должен быть включён в расчёт контрольной суммы (SignatureValue)

Culture

Язык общения с клиентом (в соответствии с ISO 3166-1). Определяет на каком языке будет страница ROBOKASSA, на которую попадёт покупатель. Может принимать значения: en, ru.

Если параметр не передан, то используются региональные настройки браузера покупателя. Для значений отличных от ru или en используется английский язык.

Encoding

Кодировка, в которой отображается страница ROBOKASSA. По умолчанию: windows-1251. Этот же параметр влияет на корректность отображения описания покупки (Description) в интерфейсе ROBOKASSA, и на правильность передачи Дополнительных пользовательских параметров, если в их значениях присутствует язык отличный от английского.

Email

Email покупателя автоматически подставляется в платёжную форму ROBOKASSA. Пользователь может изменить его в процессе оплаты.

ExpirationDate

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

Дата передаётся в формате, рекомендованном стандартом ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffffZZZZZ), где:

  • YYYY   год, 4 цифры;
  • MM  месяц, 2 цифры;
  • DD  — день месяца, 2 цифры (от 01 до 31);
  • T  — латинский символ «T» в верхнем регистре;
  • hh   часы, 2 цифры (24-часовой формат, от 00 до 23);
  • mm  — минуты, 2 цифры (от 00 до 59);
  • ss  — секунды, 2 цифры (от 00 до 59) (необязательно);
  • fffffff  — от 1 до 7 цифр дробной части секунд (необязательно);
  • ZZZZZ  — описатель временной зоны (необязательно). Если он отсутсвует, подразумевается московское время (UTC+03). Может принимать значения:
    • +hh:mm или — hh:mm  смещение относительно UTC (показывает, что указано локальное время, которое на данное число часов и минут опережает или отстает от UTC);
    • символ «Z» (должен быть в верхнем регистре) означает, что момент времени представлен в UTC зоне (эквивалентно +00:00 и -00:00).
OutSumCurrency

Способ указать валюту, в которой магазин выставляет стоимость заказа. Этот параметр нужен для того, чтобы избавить магазин от самостоятельного пересчета по курсу. Является дополнительным к обязательному параметру OutSum. Если этот параметр присутствует, то OutSum показывает полную сумму заказа, конвертированную из той валюты, которая указана в параметре OutSumCurrency, в рубли по курсу ЦБ на момент оплаты. Принимает значения: USD, EUR и KZT.

Если передается параметр OutSumCurrency, то он должен быть включен в расчет  контрольной суммы (SignatureValue).  В этом случае база для  расчёта будет выглядеть так: MerchantLogin:OutSum:InvId:OutSumCurrency:Пароль#1
UserIp

Передача этого параметра (Ip конечного пользователя) желательна для усиления безопасности, предотвращению фрода и противодействию мошенникам. Этот параметр пользователь передает при оплате. При расчете контрольной суммы UserIp ставится перед Пароль#1 (кроме использования параметра Receipt).

Если этот параметр передан, то он должен быть встроен в  расчет контрольной суммы SignatureValue

Дополнительные пользовательские параметры

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

Если:

  • Вы собираетесь создавать магазин, в котором предусмотрено большое количество товаров, разделов и типов товара.
  • Ваш сайт будет предоставлять разнообразные услуги, не похожие друг на друга.
  • На одном сайте работают несколько ресурсов.
  • И самое распространённое  Вам требуется использовать дополнительную идентификацию Ваших клиентов, например, знать его ID или Логин у Вас на сайте.

То при старте операции оплаты Вы можете передавать всю эту информацию.

При завершении операции оплаты, мы будем возвращать Вам эти дополнительные параметры. Формироваться они должны следующим образом:

Всегда начинаться с: Shp_; SHP_shp_ 
Выглядеть они могут так: Shp_1=1;Shp_1=2 —  или так: Shp_oplata=1;Shp_oplata=2  или вот так: Shp_login=Vasya; Shp_name=Вася.

Например: MerchantLogin:OutSum:InvId:Пароль#1:Shp_id=126:Shp_login=Vasya

При получении уведомлений от ROBOKASSA, Вы (Ваши скрипты) сможете использовать их по своему усмотрению. Например, принять решение куда перенаправить покупателя на Вашем сайте.

Очень важно, чтобы все параметры были отсортированы в алфавитном порядке.

Например: 

Shp_login=Vasya:Shp_name=Вася :Shp_oplata=1 (l – n – o)

Если в значении пользовательского параметра используются русские символы (Shp_name=Вася), то значение этого параметра перед использованием в строке для подсчета контрольной суммы и отправкой его формой необходимо URL-кодировать. Если Вы осуществляете GET запрос, то значение этого параметра необходимо еще раз URL-кодировать непосредственно перед формированием ссылки запроса на инициализацию оплаты.

В сумме строка может содержать до 2048 знаков.

Каждый из этих параметров ОБЯЗАТЕЛЬНО должен быть включён в подсчёт контрольной суммы (SignatureValue). Как при старте операции, так и при её завершении. Все параметры  должны быть обязательно отсортированы в алфавитном порядке.

Периодические платежи

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

Важно! Данная услуга доступна только по предварительному согласованию.

На первом этапе пользователь производит обычный платеж по выставленному счету, но помимо всех остальных параметров необходимо передать еще один специальный параметр Recurring, указывающий, что в дальнейшем платеж будет периодически повторяться. После успешной оплаты такого счета с помощью банковской карты, магазин получает возможность периодически повторять платеж уже без участия пользователя. Для этого магазин делает запросы на специальный URL (https://auth.robokassa.ru/Merchant/Recurring), передавая обычные параметры и указывая номер счета, оплаченного на первом этапе.

Параметры Recurring

Этот параметр показывает, что выставление данного счета будет повторяющимся. Принимает значение true.

PreviousInvoiceID

Магазин передает это параметр в вызове, направляемом на URL https://auth.robokassa.ru/Merchant/Recurring и указывает в нем номер счета первого платежа в серии повторяющихся платежей. Кроме того, в этом вызове передаются обычные обязательные и необязательные параметры, со следующими исключениями:

  • параметры PreviousInvoiceID и InvoiceID обязательно должны быть указаны в запросе;
  • InvoiceID должен быть сгенерирован магазином, нельзя передавать пустое значение или 0;
  • параметров IncCurrLabel, ExpirationDate, Recurring не должно быть в запросе;
  • PreviousInvoiceID не включается в формирование контрольной суммы SignatureValue.

Пример запроса с PreviousInvoiceID:

<form method = "POST" action = "https://auth.robokassa.ru/Merchant/Recurring"> <input type = hidden name = MerchantLogin value = demo> <input type = hidden name = InvoiceID value = 156> <input type = hidden name = PreviousInvoiceID value = 154> <input type = hidden name = Description value = 'Оплата подписки'> <input type = hidden name = SignatureValue value = 9ada9c4f842cdc1163e5e97d0461a1de> <input type = hidden name = OutSum value = 100> <input type = submit value = 'Pay'> </form>

Фискализация для клиентов Robokassa.

Для клиентов Robokassa выбравших для себя Облачное решение, Кассовое решение или решение Робочеки, в протокол добавляется новый параметр.

Обращаем Ваше внимание, что для решений Робочеки и Облачное в чеке не может быть более ста товарных позиций.
Receipt

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

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

Формат параметра  json

Пример передаваемого значения параметра:

{ "sno": "osn", "items": [ { "name": "Название товара 1", "quantity": 1, "sum": 100, "payment_method": "full_payment", "payment_object": "commodity", "tax": "vat10" }, { "name": "Название товара 2", "quantity": 3, "sum": 450, "payment_method": "full_prepayment", "payment_object": "excise", "tax": "vat120" } ] }

Параметр включается в контрольную подпись запроса (после номера счета магазина и после UserIp (Ip конечного пользователя)). Например: MerchantLogin:OutSum:InvId:Receipt:Пароль#1.

Внимание! Поле sum содержит полную стоимость за все единицы данного товара вместе, учитывая (если есть) скидки, бонусы и специальные/премиальные цены на отдельные единицы товара (например, третий товар за половину стоимости или за пять единиц товара скидка 12%).
Внимание! В связи с тем, что значение этого параметра может иметь большую длину, мы рекомендуем передавать запросы с этим параметром только методом POST, во избежание превышения максимальной длины строки запроса.
ВАЖНО! Значение параметра Receipt перед использованием в строке для подсчета контрольной суммы и отправкой его формой необходимо URL-кодировать.
Важно! Согласно 54-ФЗ необязательно передавать номенклатуру до 1 февраля 2021 года, если к бизнесу применяются следующие системы налогообложения:
  • Единый налог на вменённый доход для отдельных видов деятельности (ЕНВД);
  • Единый сельскохозяйственный налог (ЕСХН);
  • Патентная система налогообложения (ПСН);
  • Упрощенная система налогообложения (УСН).

Это упрощает техническую подготовку проекта, поскольку не требует реализации параметра Receipt, однако не освобождает как от необходимости отчитываться перед налоговыми органами так и от обязанности использовать обновлённые ККТ.

Описание параметров sno

Система налогообложения.

Необязательное поле, если у организации имеется только один тип налогообложения.

Перечисление со значениями:

  • «osn» – общая СН;
  • «usn_income» – упрощенная СН (доходы);
  • «usn_income_outcome» – упрощенная СН (доходы минус расходы);
  • «envd» – единый налог на вмененный доход;
  • «esn» – единый сельскохозяйственный налог;
  • «patent» – патентная СН.
items

Массив данных о позициях чека.

name

Обязательное поле. Наименование товара. Строка, максимальная длина 64 символа. Если в наименовании товара Вы используете специальные символы, например кавычки, то их обязательно необходимо экранировать. 

sum

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

Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков.

quantity

Обязательное поле. Количество/вес конкретной товарной позиции.

Десятичное число: целая часть не более 5 знаков, дробная часть не более 3 знаков.

payment_method

Признак способа расчёта.
Возможные значения параметра:

  • full_prepayment  предоплата 100%. Полная предварительная оплата до момента передачи предмета расчёта;
  • prepayment  предоплата. Частичная предварительная оплата до момента передачи предмета расчёта;
  • advance  аванс;
  • full_payment  полный расчёт. Полная оплата, в том числе с учетом аванса (предварительной оплаты) в момент передачи предмета расчёта;
  • partial_payment  частичный расчёт и кредит. Частичная оплата предмета расчёта в момент его передачи с последующей оплатой в кредит;
  • credit — передача в кредит. Передача предмета расчёта без его оплаты в момент его передачи с последующей оплатой в кредит;
  • credit_payment  оплата кредита. Оплата предмета расчёта после его передачи с оплатой в кредит (оплата кредита).

Этот параметр необязательный. Если этот параметр не передан клиентом, то в чеке будет указано значение параметра по умолчанию из Личного кабинета, если же параметр передан клиентом, то именно эти значения параметра будут переданы в АТОЛ.

payment_object

Признак предмета расчёта.
Возможные значения параметра:

  • commodity  товар. О реализуемом товаре, за исключением подакцизного товара (наименование и иные сведения, описывающие товар);
  • excise  подакцизный товар. О реализуемом подакцизном товаре (наименование и иные сведения, описывающие товар);
  • job — работа. О выполняемой работе (наименование и иные сведения, описывающие работу);
  • service  услуга. Об оказываемой услуге (наименование и иные сведения, описывающие услугу);
  • gambling_bet  ставка азартной игры. О приеме ставок при осуществлении деятельности по проведению азартных игр;
  • gambling_prize  выигрыш азартной игры. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению азартных игр;
  • lottery — лотерейный билет. О приеме денежных средств при реализации лотерейных билетов, электронных лотерейных билетов, приеме лотерейных ставок при осуществлении деятельности по проведению лотерей;
  • lottery_prize  выигрыш лотереи. О выплате денежных средств в виде выигрыша при осуществлении деятельности по проведению лотерей;
  • intellectual_activity  предоставление результатов интеллектуальной деятельности. О предоставлении прав на использование результатов интеллектуальной деятельности или средств индивидуализации;
  • payment — платеж. Об авансе, задатке, предоплате, кредите, взносе в счет оплаты, пени, штрафе, вознаграждении, бонусе и ином аналогичном предмете расчета;
  • agent_commission  агентское вознаграждение. О вознаграждении пользователя, являющегося платежным агентом (субагентом), банковским платежным агентом (субагентом), комиссионером, поверенным или иным агентом;
  • composite — составной предмет расчета. О предмете расчета, состоящем из предметов, каждому из которых может быть присвоено значение выше перечисленных признаков;
  • another  иной предмет расчета. О предмете расчета, не относящемуся к выше перечисленным предметам расчета; 
  • property_right – имущественное право;
  • non-operating_gain – внереализационный доход; 
  • insurance_premium  страховые взносы; 
  • sales_tax  торговый сбор;
  • resort_fee  курортный сбор.

Этот параметр необязательный. Если этот параметр не передан клиентом, то в чеке будет указано значение параметра из Личного кабинета, если же параметр передан клиентом, то именно это значение параметра будут переданы в АТОЛ.

tax

Это поле устанавливает налоговую ставку в ККТ. Определяется для каждого вида товара по отдельности, но за все единицы конкретного товара вместе.

Допустимые значения:

  • «none» – без НДС;
  • «vat0» – НДС по ставке 0%;
  • «vat10» – НДС чека по ставке 10%;
  • «vat110» – НДС чека по расчетной ставке 10/110;
  • «vat20» – НДС чека по ставке 20%; 
  • «vat120» – НДС чека по расчетной ставке 20/120. 

Формирование второго чека

В связи с переходом на новый формат передачи фискальных данных в ФНС (формат 1.05), начиная с 01.07.2019 магазины, осуществляющие расчеты с признаками способа расчета «аванс», «предоплата», «предоплата 100%» обязаны после доставки товаров (оказания  услуг) выдавать покупателю итоговый кассовый чек на общую сумму всех внесенных покупателем авансовых платежей (предоплат).

Для этого мы реализовали возможность сформировать второй кассовый чек, с признаком способа расчёта «полный расчёт».

ВАЖНО:

  1. Сервис актуален только для магазинов/партнеров, принимающих платежи и осуществляющих фискализацию через ROBOKASSA
  2. Сервис бесплатный (но можно выбить максимум 2 чека по одной операции).
  3. В параметре «operation» передается значение «sell», другие варианты игнорируются.

 

Для формирования второго чека необходимо сформировать запрос в формате Json. 

Пример запроса:

{ "merchantId": "robokassa_sell", "id": "14", "originId": "13", "operation": "sell", "sno": "osn", "url": "https://www.robokassa.ru/", "total": 100, "items": [ { "name": "нечто", "quantity": 1, "sum": 100, "tax": "none", "payment_method": "full_payment", "payment_object": "commodity" } ], "client": { "email": "test@test.ru", "phone": "71234567890" }, "payments": [ { "type": 2, "sum": 100 } ], "vats": [ { "type": "none", "sum": 0 } ] }

Описание параметров
Основные параметры запроса соответствуют параметрам первого фискального чека.

Помимо этого необходимо добавить дополнительные обязательные параметры:

MerchantID

Идентификатор магазина в ROBOKASSA, который Вы придумали при создании магазина

ID

Номер заказа магазина (не должен совпадать с OriginId).
Значение только целое число.

OriginId

Номер заказа магазина (InvId), по которому уже есть чек и для которого выбивается второй чек. 
Значение только целое число.

Operation

Типа чека. Может принимать только одно значение "sell".

URL

Адрес сайта, на котором осуществлена продажа. Значение строка.

Total

Итоговая сумма чека в рублях.
Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков.

Client

Данные о покупателе.

Cодержит любое из полей или все поля одновременно:

  • email – эл. почта покупателя;
  • phone – телефон покупателя.
Payments

Тип и сумма платежа или чека.
Содержит:

  • Type - тип платежа

Должен принимать значение:

«2» – предварительная оплата (зачет аванса и (или) предыдущих платежей).

  • Sum - сумма платежа
    Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков. 
Vats

Тип и сумма налога.
Содержит:

  • Type - налоговая ставка в ККТ. Определяется для каждого вида товара по отдельности, но за все единицы конкретного товара вместе.

Допустимые значения:

«none» – без НДС;

«vat0» – НДС по ставке 0%;

«vat10» – НДС чека по ставке 10%;

«vat110» – НДС чека по расчетной ставке 10/110;

«vat20» – НДС чека по ставке 20%; 

«vat120» – НДС чека по расчетной ставке 20/120. 

 

  • Sum Сумма налога, посчитанная исходя из налоговой ставки. Определяется для каждого вида товара по отдельности, но за все единицы конкретного товара вместе. 
    Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков.

Последовательность формирования запроса в BASE64URL для второго чека

 Внимание! Все запросы отправляются только в кодировке UTF8

В каждом запросе необходимо произвести замену «+» на «-» и «/» на «_», прежде чем кодировать в base64.

  •  Берем запрос целиком и при помощи кодировщика base64 кодируем в следующее:

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3NlbGwiLCJpZCI6IjE0IizigJxvcmlnaW5JZOKAnTrigJ0xM+KAnSwib3BlcmF0aW9uIjoic2VsbF9yZWZ1bmQiLCJzbm8iOiJvc24iLCJpdGVtcyI6W3sibmFtZSI6ItC90LXRh9GC0L4iLCJxdWFudGl0eSI6MSwic3VtIjoxMDAsInZhdCI6Im5vbmUiLCJwYXltZW50X21ldGhvZCI6ImZ1bGxfcHJlcGF5bWVudCIsInBheW1lbnRfb2JqZWN04oCdOiJzZXJ2aWNlIn1dLCJwYXltZW50cyI6W3sidHlwZSI6MSwic3VtIjoxMTAwfV0sInZhdHMiOlt7InR5cGUiOiJub25lIiwic3VtIjowfV19

и стираем на конце все знаки =, если имеются.

  • Создаем SIGNATURE: для этого берем созданный запрос в base64 и приписываем к нему MerchantPass1 магазина (например, robokassatest):

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3NlbGwiLCJpZCI6IjE0IizigJxvcmlnaW5JZOKAnTrigJ0xM+KAnSwib3BlcmF0aW9uIjoic2VsbF9yZWZ1bmQiLCJzbm8iOiJvc24iLCJpdGVtcyI6W3sibmFtZSI6ItC90LXRh9GC0L4iLCJxdWFudGl0eSI6MSwic3VtIjoxMDAsInZhdCI6Im5vbmUiLCJwYXltZW50X21ldGhvZCI6ImZ1bGxfcHJlcGF5bWVudCIsInBheW1lbnRfb2JqZWN04oCdOiJzZXJ2aWNlIn1dLCJwYXltZW50cyI6W3sidHlwZSI6MSwic3VtIjoxMTAwfV0sInZhdHMiOlt7InR5cGUiOiJub25lIiwic3VtIjowfV19robokassatest

  • Теперь из полученной конструкции необходимо создать hash в соответствии с тем, что выбрано у магазина в Технических настройках (md5 и тд):

90cc17555f40c44b7842ff7c83ae42fc 

  • Чтобы собрать финальный запрос, который отправляется уже на URL для выбивания чека, необходимо сначала полученный md5 снова зашифровать в base64:

OTBjYzE3NTU1ZjQwYzQ0Yjc4NDJmZjdjODNhZTQyZmM=

и стираем на конце все знаки =, если имеются.

  • Для завершения сборки запроса к URL, на котором выбивается чек, берем изначальное тело запроса в base64, ставим точку и приписываем полученный чуть выше signature от md5 в base64:

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3NlbGwiLCJpZCI6IjE0IizigJxvcmlnaW5JZOKAnTrigJ0xM+KAnSwib3BlcmF0aW9uIjoic2VsbF9yZWZ1bmQiLCJzbm8iOiJvc24iLCJpdGVtcyI6W3sibmFtZSI6ItC90LXRh9GC0L4iLCJxdWFudGl0eSI6MSwic3VtIjoxMDAsInZhdCI6Im5vbmUiLCJwYXltZW50X21ldGhvZCI6ImZ1bGxfcHJlcGF5bWVudCIsInBheW1lbnRfb2JqZWN04oCdOiJzZXJ2aWNlIn1dLCJwYXltZW50cyI6W3sidHlwZSI6MSwic3VtIjoxMTAwfV0sInZhdHMiOlt7InR5cGUiOiJub25lIiwic3VtIjowfV19.OTBjYzE3NTU1ZjQwYzQ0Yjc4NDJmZjdjODNhZTQyZmM

  • Отправить этот запрос

Отправка должна быть методом POST на URL: https://ws.roboxchange.com/RoboFiscal/Receipt/Attach

Ответ на запрос создания чека

{ "ResultCode": "0", "ResultDescription": "ok", "OpKey": "A6739663-BA55-4FA1-8D5D-621FE863DB53-v4OKjovkFY" }

ResultСode

Статус получения данных от Клиента, может принимать значения:

  • 0 – если запрос выполнен успешно;
  • 1 – неверный формат данных чека;
  • 2 – недостаточно средств на счете магазина;
  • 1000 – внутренняя ошибка сервиса. 
ResultDescription

Описание результата обработки чека.

OpKey

Отправляется при успешном старте операции.

Получение статуса чека

Для того чтобы узнать результат формирования фискального чека, необходимо создать запрос вида:

{ "merchantId": "robokassa_state", "opkey": "A05B2974-1646-40AE-8D44-58DD57581FDA-nhvIRYOXM" }

Внимание! Все запросы отправляются только в кодировке UTF8

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

Идентификатор магазина, который Вы придумали при создании магазина.

OpKey

Идентификатор операции.

 

Signature

Рассчитывается по базе: <все поля данных чека закодированные в BASE64URL ><Пароль#1>— (этот пароль Вы придумали, на этапе заполнения раздела Технические настройки.

  • Собираем из этого запроса base64:

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3N0YXRlIiwib3BrZXkiOiJENUMyNUEyRi0zOTAzLTQ4MjAtODcyRC01OTU3QjFFNjM4NTYtdmVOdTVTbzJNeSJ9

и стираем на конце все знаки =, если имеются.

  • Формируем Signature также с MerchantPass1 (robokassatest):

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3N0YXRlIiwib3BrZXkiOiJENUMyNUEyRi0zOTAzLTQ4MjAtODcyRC01OTU3QjFFNjM4NTYtdmVOdTVTbzJNeSJ9robokassatest

и кодируем это все в md5:

03f9aeb13a8ead94c12b7440e0ee0c26

Теперь этот md5 снова в base64:

MDNmOWFlYjEzYThlYWQ5NGMxMmI3NDQwZTBlZTBjMjY=

и стираем на конце все знаки =, если имеются.

  • Формируем полноценный запрос на статус чека из первоначального тела запроса в base64 и конечной signature также в base64, разделяя их снова точкой:

eyJtZXJjaGFudElkIjoicm9ib2thc3NhX3N0YXRlIiwib3BrZXkiOiJENUMyNUEyRi0zOTAzLTQ4MjAtODcyRC01OTU3QjFFNjM4NTYtdmVOdTVTbzJNeSJ9.MDNmOWFlYjEzYThlYWQ5NGMxMmI3NDQwZTBlZTBjMjY

  • Отправляется это все вновь методом POST, но только уже на URL:

https://ws.roboxchange.com/RoboFiscal/Receipt/State

  • Если все правильно сформировали, то должны получить ответ вида:

{ "Code": "2", "Description": "Done", "FnNumber": "9289000100348548", "FiscalDocumentNumber": "135771", "FiscalDocumentAttribute": "207899681", "FiscalDate": null, "FiscalType": null }

Описание возвращаемых параметров Code

Статус регистрации чека. Может принимать значения:

  • 1 – ожидание регистрации
  • 2 – чек зарегистрирован
  • 3 – ошибка регистрации чека
  • 1000 - ошибка обработки запроса
Description

Описание результата формирования чека. 

Фискальные данные

Набор фискальных данных, полученный от ФНС.
Содержит:

  • FnNumber - Номер ФН
  • FiscalDocumentNumber - Фискальный номер документа
  • FiscalDocumentAttribute - Фискальный признак документа
  • FiscalDate - Дата и время формирования фискального чека

Сервис отправки SMS

Сервис SMS-сообщений поможет быстро и оперативно получать информацию о поступлении оплаты в Ваш магазин, а также передавать информацию для Ваших клиентов – сообщать о порядке прохождения и формирования заказа. После каждой покупки, совершённой в Вашем магазине, ROBOKASSA предоставляет возможность отправить 3 SMS-сообщения покупателю. 

Для подключения сервиса SMS-рассылок информирования  об оплате заказа в магазине следует:

  • активировать магазин (подключение сервиса к еще неактивированному магазину невозможно);
  • перейти в

 

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

Для подключения сервиса SMS-рассылок  для информирования покупателей следует:

  • активировать магазин (в неактивированном магазине сервис работать не будет);
  • подключить на своей стороне сервис, осуществляющий отправку SMS-сообщений. Сервис расположен по адресу: https://services.robokassa.ru/SMS/. Сервис принимает запросы методом GET. Пример запроса можно посмотреть здесь.

К сервису отправки SMS  подключается каждый магазин по отдельности (если их несколько).Стоимость услуги можно посмотреть здесь ("Тарифы" - "Комиссии Компании за подключение и использование Функции «SMS-рассылка»").

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

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

строка, содержащая Ваш Идентификатор магазина в Личном кабинете клиента на сайте ROBOKASSA.

phone

строка, содержащая номер телефона в международном формате без символа «+» (79051234567).

message

строка в кодировке UTF-8 длиной до 128 символов, содержащая текст отправляемого SMS.

signature

строка, содержащая электронную подпись подпись — хеш, рассчитываемый при отправке SMS-сообщения. Алгоритм расчёта расчёта хеша см.  в  Технических настройках магазина.  Электронная подпись рассчитывается от строки содержащей следующие параметры, разделенные символом ':'  login:phone:message:Пароль#1где  Пароль#1  — этот тот пароль, который Вы придумали на этапе заполнения раздела Технические настройки).

Не следует путать этот параметр с SignatureValue!

Допустим, необходимо отправить SMS для магазина с логином demo_merchant на номер 79051234567 с текстом «All work fine!».

Пароль#1 находится в Личном кабинете клиента в Технических настройках данного магазина ( у клиента может быть несколько магазинов). Например, значение Пароль#1 будет Password1drowssaP.

Таким образом строка для подписи будет выглядеть как demo_merchant:79051234567:All work fine!:Password1drowssaP. Подпись MD5 такого запроса будет следующей: 6f0ed2dbb08da5a50124a3ee0581a7f6. Подпись SHA1 будет: 271f256595a8adc63438a3d75e14c20bc3fabe85.

Описание возвращаемых данных result

значение логического типа, указывающее на общий успех или неуспех обработки запроса.

Обращаем ваше внимание, что этот параметр никак не связан с с ResultURL!
count

целочисленное значение, указывающее на количество SMS, доступное после этого запроса  (данное значение заполняется только в случае успешного исполнения запроса).

errorCode

целочисленное значение кода ошибки обработки (0 – успешная  обработка).

errorMessage

текстовое описание возникшей в процессе обработки запроса ошибки.

Запрос можно считать успешно исполненным если поле result = true и errorCode = 0.

Пример запроса методом HTTP GET

https://services.robokassa.ru/SMS/?login=demo_merchant&phone=79051234567&message=All%20work%20fine!&signature=6f0ed2dbb08da5a50124a3ee0581a7f6

Коды ошибок, специфичные для этого интерфейса
  • 0  запрос обработан успешно;
  • 1 – отсутствует параметр запроса;
  • 2 – указанный партнер не найден;
  • 3 – партнер неактивен;
  • 4 – отправка SMS-сообщений для данного партнера недоступна (партнер не активировал данную услугу в личном кабинете);
  • 5 – в данный момент отправка SMS-сообщений указанным партнером невозможна;
  • 6 – первышен лимит SMS-сообщений;
  • 1000 – неверная подпись запроса;
  • 9999 – внутренняя ошибка.

Уведомления

Уведомления предназначены для информирования владельца магазина о поступившей оплате за заказ. 

Для подключения Уведомлений перейдите в 

 

Подпишитесь на Уведомления в Telegram или браузере.

 и получайте мгновенное Уведомление об оплаченном заказе:

XML интерфейсы

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

XML интерфейсы предназначены для создания развёрнутого интерфейса ROBOKASSA, со всевозможными информационными блоками для клиентов Вашего магазина/сайта, а также для построения более глубокой системы взаимодействия Вашего магазина/сайта с ROBOKASSA.

Запросы к интерфейсам можно отправлять методом HTTP GET или HTTP POST, либо их можно использовать как методы XML web-сервиса:

Ответ на запрос, переданный методом HTTP GET/POST, возвращается в формате XML-документа. Документ имеет следующую структуру:

<?xml version="1.0" encoding="utf-8" ?> <...> <Result> <Code>integer</Code> <Description>string</Description> </Result> <...> Запрошенные данные (возвращаются только в случае успешного выполнения запроса) Required data </...> </...>

Элемент Result содержит информацию о результате выполнения запроса:

Информация о результате в элементе Result Code

Результат выполнения запроса. В случае успешного выполнения  0, в противном случае код ошибки. Если во время выполнения запроса произошла ошибка, то в ответе не будет содержаться дополнительных элементов с запрашиваемыми данными.

Description

Текстовое описание результата выполнения запроса.

Общие коды ошибок

Общие коды ошибок, которые могут возвращаться всеми запросами:

  • 2  информация о магазине с таким MerchantLogin не найдена или магазин не активирован;
  • 1000  внутренняя ошибка сервиса.

Интерфейс получения списка валют

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

Используется для указания значений параметра IncCurrLabel, также используется для отображения доступных вариантов оплаты непосредственно на Вашем сайте, если Вы желаете дать больше информации своим клиентам.

Название метода

GetCurrencies

URL для запросов HTTP GET/POST

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetCurrencies

Параметры запроса MerchantLogin Language

Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.). 

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

  • ru  русский;
  • en – английский.
Пример запроса методом HTTP GET

Формат ответа для запросов HTTP GET/POST

<?xml version="1.0" encoding="utf-8" ?> <CurrenciesList xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> <Description>string</Description> </Result> <Groups> <Group Code="string" Description="string"> <Items> <Currency Label="string" Name="string" /> ... </Items> </Group> ... </Groups> </CurrenciesList>

Описание возвращаемых данных Groups

Группы валют; могут использоваться для более удобного отображения валют в пользовательском интерфейсе.

Code

Код группы.

Description

Текстовое описание группы.

Items

Валюты, входящие в группу.

Label

Код валюты.

Name

Наименование валюты.

Коды ошибок, специфичные для этого интерфейса

Нет.

Интерфейс получения списка доступных способов оплаты

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

Название метода

GetPaymentMethods

URL для запросов HTTP GET/POST

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetPaymentMethods

Параметры запроса MerchantLogin Language

Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.). 

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

  • ru - русский, 
  • en – английский.
Пример запроса методом HTTP GET

Формат ответа для запросов HTTP GET/POST

<?xml version="1.0" encoding="utf-8" ?> <PaymentMethodsList xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> <Description>string</Description> </Result> <Methods> <Method Code="string" Description="string" /> <Method Code="string" Description="string" /> ... </Methods> </PaymentMethodsList>

Описание возвращаемых данных Methods

Доступные способы оплаты.

Code

Код способа оплаты.

Description

Текстовое описание способа оплаты.

Коды ошибок, специфичные для этого интерфейса

Нет.

Интерфейс расчёта суммы к оплате с учётом комиссии сервиса

Позволяет рассчитать сумму, которую должен будет заплатить покупатель, с учётом комиссий ROBOKASSA (согласно тарифам) и тех систем, через которые покупатель решил совершать оплату заказа. Может быть использован как для Ваших внутренних расчётов, так и для дополнительного информирования клиентов на Вашем сайте.

Только для физических лиц.
Название метода

GetRates

URL для запросов HTTP GET/POST

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/GetRates

Параметры запроса MerchantLogin IncCurrLabel

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

OutSum

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

Language

Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.). 

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

  • ru - русский, 
  • en – английский.
Пример запроса методом HTTP GET

Формат ответа для запросов HTTP GET/POST

<?xml version="1.0" encoding="utf-8" ?> <RatesList xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> <Description>string</Description> </Result> <Groups> <Group Code="string" Description="string"> <Items> <Currency Label="string" Name="string"> <Rate IncSum="decimal" /> </Currency> ... </Items> </Group> ... </Groups> </RatesList>

Описание возвращаемых данных Groups

Группы валют. Могут использоваться для более удобного отображения валют в пользовательском интерфейсе.

Code

Код группы.

Description

Текстовое описание группы.

Items

Валюты, входящие в группу.

Label

Код валюты.

Name

Наименование валюты.

Rate/IncSum

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

Коды ошибок, специфичные для этого интерфейса

Нет.

Интерфейс расчёта суммы к получению магазином

Позволяет рассчитать сумму к получению, исходя из текущих курсов ROBOKASSA, по сумме, которую заплатит пользователь.

Только для физических лиц.
Название метода

CalcOutSumm

URL для запросов HTTP GET/POST

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/CalcOutSumm

Параметры запроса MerchantLogin IncCurrLabel

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

IncSum

Сумма, которую должен будет заплатить пользователь.

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/CalcOutSumm?MerchantLogin=demo&IncCurrLabel=YandexMerchantOceanR&IncSum=100

Формат ответа для запросов HTTP GET/POST

<?xml version="1.0" encoding="UTF-8"?> <CalcSummsResponseData xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> </Result> <OutSum>decimal</OutSum> </CalcSummsResponseData>

Описание возвращаемых данных OutSum

Сумма к получению интернет магазином.

Коды ошибок, специфичные для этого интерфейса

Нет.

Интерфейс получения состояния оплаты счета

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

Название метода

OpState

URL для запросов HTTP GET/POST

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpState

Параметры запроса MerchantLogin InvoiceID

Номер счета магазина, целое число.

Signature

Контрольная сумма  хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. Базой для расчёта служат все обязательные параметры, разделенные символом «:», с добавлением Пароль#2, (указывается при заполнении раздела Технических настроек) т. е.: MerchantLogin:InvoiceID:Пароль#2

Пример запроса методом HTTP GET

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpState?MerchantLogin=demo&InvoiceID=1932809606&Signature=9e2bf657364d25acf5905b4ac4f50e39

Формат ответа для запросов HTTP GET/POST

<?xml version="1.0" encoding="utf-8" ?> <OperationStateResponse xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> <Description>string</Description> </Result> <State> <Code>integer</Code> <RequestDate>datetime</RequestDate> <StateDate>datetime</StateDate> </State> <Info> <IncCurrLabel>string</IncCurrLabel> <IncSum>decimal</IncSum> <IncAccount>string</IncAccount> <PaymentMethod> <Code>string</Code> <Description>string</Description> </PaymentMethod> <OutCurrLabel>string</OutCurrLabel> <OutSum>decimal</OutSum> </Info> </OperationStateResponse>

Описание возвращаемых данных State

Текущее состояние оплаты.

Code

Код текущего состояния операции оплаты счета. Возможные значения:

  • 5  операция только инициализирована, деньги от покупателя не получены.

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

  • 10  операция отменена, деньги от покупателя не были получены.

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

  • 50  деньги от покупателя получены, производится зачисление денег на счет магазина.

    Операция перешла в состояние зачисления средств на баланс продавца. В этом статусе платёж может задержаться на некоторое время. Если платёж «висит» в этом состоянии уже долго (более 20 минут), это значит, что возникла проблема с зачислением средств продавцу.

  • 60 – деньги после получения были возвращены покупателю.

    Полученные от покупателя средства возвращены на его счёт (кошелёк), с которого совершалась оплата.

  • 80 – исполнение операции приостановлено.

    Внештатная остановка. Произошла внештатная ситуация в процессе совершения операции (недоступны платежные интерфейсы в системе, из которой/в которую совершался платёж и т.д.) Или операция была приостановлена системой безопасности. Операции, находящиеся в этом состоянии, разбираются нашей службой поддержки в ручном режиме.

  • 100 – операция выполнена, завершена успешно.

    Платёж проведён успешно, деньги зачислены на баланс продавца, уведомление об успешном платеже отправлено продавцу.

RequestDate

Дата/время ответа на запрос.

StateDate

Дата/время последнего изменения состояния операции.

Info

Информация об операции оплаты счета.

IncCurrLabel

Валюта, которой платил клиент.

IncSum

Сумма, оплаченная клиентом, в единицах валюты IncCurrLabel.

IncAccount

Номер счёта (кошелёк, номер банковской карты) клиента в платежной системе, через которую производилась оплата.

PaymentMethod

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

Code (способа оплаты)

Код способа оплаты.

Description

Текстовое описание.

OutCurrLabel

Валюта, в которой получает средства магазин.

OutSum

Сумма, зачисленная на счет магазина, в единицах валюты OutCurrLabel.

Коды ошибок, специфичные для этого интерфейса
  • – неверная цифровая подпись запроса;
  • – информация об операции с таким InvoiceID не найдена.
  • 4  найдено две операции с таким InvoiceID. Такая ошибка возникает когда есть тестовая оплата с тем же InvoiceID.

Формат данных типа дата/время

Дата/время передаются в формате, рекомендованном стандартом ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffff;ZZZZZ), где:

  • YYYY - год, 4 цифры;
  • MM - месяц, 2 цифры;
  • DD - день месяца, 2 цифры (от 01 до 31);
  • T – латинский символ «T» в верхнем регистре;
  • hh - часы, 2 цифры (24-часовой формат, от 00 до 23);
  • mm - минуты, 2 цифры (от 00 до 59);
  • ss - секунды, 2 цифры (от 00 до 59);
  • fffffff – от 1 до 7 цифр дробной части секунд;
  • ZZZZZ - описатель временной зоны, может принимать значения:
    • +hh:mm или -hh:mm – смещение относительно UTC (показывает, что указано локальное время, которое на данное число часов и минут опережает или отстает от UTC);
    • символ «Z» (должен быть в верхнем регистре), означает, что момент времени представлен в UTC зоне (эквивалентно +00:00 и -00:00).

Например: 2010-02-11T16:07:11.6973153+03:00

Как заплатить комиссию за покупателя?

С помощью XML-интерфейса расчёта суммы к получению, можно заплатить комиссию ROBOKASSA за покупателя.

Только для физических лиц.


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

Рассмотрим пример.

Пусть товар или услуга на Вашем сайте стоит 100 рублей. Если Вы переадресуете покупателя на страницу оплаты ROBOKASSA с этой суммой, то наша система прибавит к 100 рублям свою комиссию, для примера  5%. В результате покупателю будет выставлен счёт на 105 рублей. Теперь  воспользуемся данным XML интерфейсом и сделаем так, чтобы покупатель заплатил 100 рублей, а не 105, то есть, чтобы Ваш магазин компенсировал ROBOKASSA 5% комиссии.

Расчёт должен выполняться до переадресации клиента.

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

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/CalcOutSumm?MerchantLogin=$mrh_login&IncCurrLabel=$inccurrlabel&IncSum=100

ROBOKASSA возвращает Вам рассчитанную сумму, пусть это будет 95.24 рублей.

Обратите внимание, что расчёт будет правильным только для выбранного способа оплаты!

Теперь Вы можете сформировать запрос на инициализацию оплаты и указать в качестве параметра OutSum значение 95.24, а в качестве IncCurrLabel  $inccurrlabel.

Не забудьте, что в  запросе на инициализацию оплаты необходимо указывать параметр IncCurrLabel с той же меткой валюты, которую Вы использовали при расчёте суммы.

Виды магазинов

Простейший магазин без формирования уникального номера счета

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

  • пользователь, выбрав способ оплаты и нажав кнопку "Оплатить", попадает на страницу ROBOKASSA, где производит оплату (на счёт магазина при этом поступают средства в Вашей валюте).
  • по окончании процесса на e-mail адрес оператора магазина посылается сообщение о произведенной операции.  

В разделе Технические настройки необходимо заполнить поля:

  • Алгоритм расчёта хэша  MD5 (значение по умолчанию).
  • ResultURL – e-mail адрес оператора магазина, метод отправки данных – e-mail.
  • SuccessURL  – адрес страницы, на которую отправится покупатель после оплаты, метод отправки данных не имеет значения (можно оставить главную страницу сайта, либо разместить по этому адресу страницу с текстом, говорящим клиенту, что его платёж успешно проведён).
  • FailURL  адрес страницы, на которую направляется покупатель после неудачной оплаты, метод отправки данных не имеет значения (можно оставить главную страницу сайта, либо разместить по этому адресу страницу с текстом, говорящим клиенту, что его платёж не проведён).

Для такого магазина и скрипт необходим самый простой. В принципе необходим даже не скрипт, а ссылка для перехода на совершение оплаты.

Для работы Вам понадобится самый простой текстовый редактор, например - Блокнот.

Рассмотрим процедуру создания такой ссылки по шагам:

  1. Воспользуемся шаблоном запроса для перехода на оплату:

    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=[значение]&OutSum=[значение]&Description=[значение]&SignatureValue=[значение]

  2. Заменим [значение] соответствующими данными, (подробнее можно почитать тут).

    Например, для исходных данных:

    • MerchantLogin = demo

      (идентификатор Вашего магазина из раздела Технические настройки)

    • OutSum = 11

      (cтоимость товара у Вас на сайте, рубли)

    • Description = Покупка в демо магазине

      (описание покупки)

    В результате получаем ссылку:

    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=demo&OutSum=11&Description=Покупка в демо магазине&SignatureValue=[значение]

  3. В полученной ссылке отсутствует только последнее значение  SignatureValue. Его необходимо вычислить.

    Строка данных, от которой его считают выглядит так:

    MerchantLogin:OutSum::Пароль #1

     – подставляем в неё соответствующие значения и получаем:

    demo:11::[Пароль #1]

    [Пароль #1] – это пароль, придуманный Вами при заполнении раздела Технические настройки.

    Обратите внимание,что обязательный параметр InvId присутствует в подсчете SignatureValue, хотя и с пустым значением.
  4.  Для вычисления Контрольной суммы, SignatureValue, по алгоритму MD5 можно использовать один из on-line калькуляторов, например, 

    http://www.codenet.ru/services/md5/ или подобный.

  5. Собираем готовую ссылку для размещения на Вашем сайте:

    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=demo&OutSum=11&Description=Покупка в демо магазине&SignatureValue=2c113e992e2c985e43e348ff3c12f32b

    (По этой ссылке Вы можете совершить настоящий платёж на 11 рублей в нашем Демонстрационном магазине.)

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

Магазин формирующий уникальный номер счета

Схема работы магазина:

  • скрипт магазина, сформировав уникальный номер счета и подпись, направляет пользователя на оплату;
  • после оплаты ROBOKASSA уведомляет магазин, что платёж совершён, вызывая скрипт, находящийся по адресу ResultURL. Скрипту передаются параметры платежа, подписанные ROBOKASSA с использованием Пароля/#2. Если в момент оповещения между ROBOKASSA и магазином отсутствует связь, ROBOKASSA будет повторять попытки ещё три раза, а в случае неудачи администратору магазина будет отправлен e-mail следующего вида:

Получена оплата:

Цена: стоимость заказа
inv_id: номер заказа
Метод оплаты: метод, которым был оплачен заказ
shp_...

С уважением,
Проект ROBOKASSA

  • после оплаты пользователь перенаправляется на страницу по адресу SuccessURL  ROBOKASSA передаёт те же параметры, что и на ResultURL, но подписанные с использованием Пароля/#1.

В разделе Технические настройки следует прописать:

  • Алгоритм расчёта хэша  MD5 (значение по умолчанию).
  • ResultURL – e-mail адрес оператора магазина, метод отправки данных – e-mail.
  • SuccessURL  – адрес страницы, на которую отправится покупатель после оплаты, метод отправки данных не имеет значения (можно оставить главную страницу сайта, либо разместить по этому адресу страницу с текстом, говорящим клиенту, что его платёж успешно проведён).
  • FailURL  адрес страницы, на которую направляется покупатель после неудачной оплаты, метод отправки данных не имеет значения (можно оставить главную страницу сайта, либо разместить по этому адресу страницу с текстом, говорящим клиенту, что его платёж не проведён).

Для такого магазина необходим несложный скрипт.

Для работы Вам понадобится самый простой текстовый редактор, например - Блокнот.

Рассмотрим процедуру создания такой ссылки по шагам.

Воспользуемся шаблоном запроса для перехода на оплату.

В работе рекомендуется использовать самый простой текстовый редактор – Блокнот.

  1. Возьмём готовый запрос для перехода на оплату: 
    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=$mrh_login&OutSum=$out_summ&InvoiceID=$inv_id&Description=$inv_desc&SignatureValue=$crc
  2. Подставим в него все уже имеющиеся у нас в наличии данные, исхода из описания Обязательных параметров
    Делается это путём замены переменных вида «$mrh_login» на соответствующие им значения. 
    Исходные данные:
    $mrh_login = demo (Идентификатор магазина, прописанный в разделе «Технические настройки» Вашего магазина);
    $out_summ = 11 (Стоимость товара у Вас на сайте, кол-во рублей);
    $inv_id = 0 (Уникальный номер заказа в Вашем магазине. Указываем именно ноль, чтобы ROBOKASSA сама вела нумерацию заказов); 
    $inv_desc = Покупка в демо магазине (Описание покупки);
  3. Получаем ссылку вида:
    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=demo&OutSum=11&InvoiceID=0&Description=Покупка в демо магазине&SignatureValue=$crc

  4. В полученной ссылке отсутствует только последнее значение SignatureValue. И его нам необходимо вычислить.
    Строка данных, из которой мы будем его считать:
    $mrh_login:$out_summ:$inv_id:$mrh_pass1
    Подставляем в неё соответствующие значения:
    demo:11:0:Пароль#
    Пароль/#1 – Это пароль, придуманный Вами при заполнении раздела Технические настройки. Здесь умышлено не показан реальный пароль.
    Для вычисления Контрольной суммы SignatureValue по алгоритму MD5 можно использовать один из on-line калькуляторов. Например, 
    http://www.codenet.ru/services/md5/ или любой другой. 
    Теперь берём строку с данными demo:11:0:Пароль#  и вычисляем по ней Контрольную сумму. (Не забудьте указать правильный пароль!!!)
    Результат для нашего примера: 56f978e24d1b51fa7b5ace90a4f4ba53
  5. Собираем готовую ссылку для размещения на Вашем сайте: 
    https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=demo&OutSum=11&InvoiceID=0&Description=Покупка в демо
    магазине&SignatureValue=56f978e24d1b51fa7b5ace90a4f4ba53 
    (По этой ссылке Вы можете совершить платёж на 11 рублей в нашем Демонстрационном магазине.)

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

Магазин с применением всех интерфейсов

Использование всех возможностей ROBOKASSA, таких как Дополнительные пользовательские параметры и XML-интерфейсы, позволит Вам настроить максимально глубокую интеграцию между нашей системой и Вашим интернет-магазином. Это позволит обеспечить большую гибкость в использовании ROBOKASSA, и позволит Вам обслуживать своих клиентов на качественно новом уровне. 
XML-интерфейсы позволяют предварительно получать курсы валют ROBOKASSA и список принимаемых валют,  рассчитывать как сумму к получению магазином, так и сумму к оплате для покупателя. Что значительно расширяет Ваши возможности по построению удобного пользовательского интерфейса Вашего сайта.
Также Вы можете в любой момент времени проверить состояние оплаты заказа. Это даст Вам большую стабильность и  повышенную безопасность. К примеру, Ваша система может перед автоматической выдачей товара проверять состояние оплаты заказа непосредственно у ROBOKASSA.

А передача Дополнительных пользовательских параметров, даёт Вам возможность настроить работу своего сайта с максимальным комфортом для Ваших клиентов и сотрудников. Так использование этих параметров позволит Вам распределить денежные потоки внутри своего ресурса относительно тех вариантов услуг или товаров, которые Вы продаёте. 
Ещё один вариант использования этих параметров  это дополнительная идентификация Ваших клиентов, что очень часто бывает необходимо для корректного зачисления платежа.

Ручная обработка заказов

Если Вы хотите, чтобы клиент мог оплатить счет только после проверки заказа менеджером и согласования с клиентом комплекта поставки, а также если Вы не имеете сайта, а работаете, например, по телефону, Вам очень сложно разобраться в технических деталях подключения и не требуется программист –  Вам необходимо использовать следующий вариант работы. В Личном кабинете Вам доступен раздел «Выставление счетов», который представляет собой простой и понятный интерфейс по созданию письма клиенту со ссылкой на оплату конкретного заказа, проверенного Вашим менеджером и согласованного с клиентом. Для реализации такого механизма работы с ROBOKASSA Вам необходимо:

  1. Зарегистрироваться на нашем сайте www.robokassa.ru.

  2. После создания магазина, в разделе Технические настройки нужно прописать два пароля (обязательное условие).

  3. В полях ResultURL нужно выбрать метод отсылки данных E-Mail и указать электронный почтовый адрес, на который Вы планируете получать уведомления об успешных платежах, для дальнейшей обработки их Вашими менеджерами.

  4. Больше никаких дополнительных настроек не требуется, при условии, что Вы планируете работать только в ручном режиме.

Некоторые особенности, которые необходимо учитывать при отправке пользователя на совершение оплаты.

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

  • cама операция оплаты стартует только в тот момент, когда пользователь нажимает на кнопку «Оплатить» или «Перейти к оплате» в интерфейсе ROBOKASSA.  (с этого момента начинается отсчёт времени на совершение оплаты), т. е. если пользователь перешёл с Вашего сайта в интерфейс ROBOKASSA, выбрал (выбирал/смотрел) вариант оплаты, но не нажал на кнопку «Оплатить»/«Перейти к оплате», то никакие записи в системе ROBOKASSA не ведутся.
  • Есть некоторые способы оплаты время ожидания оплаты по которым, составляет 1-2 часа, и есть такие, которые могут идти от суток до недели. 

Если говорить более подробно, то: 

  • банковские карты  и электронные платёжные системы (электронные деньги): QIWI,  Яндекс.Деньги, Единый кошелек и т. д.  время, отведённое на оплату – 45 минут. . Исключение QIWI – сутки (24 часа).
  • Терминалы моментальной оплаты: Элекснет и прочие – время, отведённое на оплату – двое суток (48 часов). Исключение QIWI – сутки (24 часа).
  • Интернет– банки: Альфа-клик, ВТБ24 и т. д.  время, отведённое на оплату сутки (24 часа).
  • Банкоматы  время, отведённое на оплату  сутки (24 часа).
  • Другие способы оплаты: Мобильная коммерция  1 час, салоны Связной и Евросеть  двое суток (48 часов).

Есть ещё одна категория ситуаций, на которую следует обратить внимание  оплату пользователь произвёл, но либо после истечения времени ожидания (обычно электронными валютами), либо система, через которую проводилась оплата, не прислала нам подтверждения этой оплаты, и у нас она отменилась по истечение срока ожидания, либо платёж был совершён с ошибкой, и требуется дополнительная идентификация и корректировка платежа в ручном режиме. 
После чего клиент сообщает, что он оплатил, но ничего не получил. И начинает искать свои деньги и товар. 
Это может произойти в тот же день, спустя несколько часов, или спустя несколько месяцев. 
Если оплата действительно подтверждена, ROBOKASSA предпримет все необходимые действия,  завершит платёж и отправит Вам оповещение об этом. Соответственно произойти это может спустя продолжительное количество времени. Обычно, не более суток, но иногда задержка может быть существенной.

Работа в тестовом режиме. Отладка, проверка, настройка.

Тестовый режим предназначен для отладки взаимодействия между магазином и сервисом ROBOKASSA и особенно полезен для магазина, который еще не был активирован.

Тестовая среда представляет из себя интерфейс «платёжных страниц» ROBOKASSA, но без возможности провести оплату. Она позволяет отладить процесс оплаты и воспользоваться тестовым XML-интерфейсом получения состояния оплаты.

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

Для работы в тестовом режиме  обязателен параметр  IsTest

Внимание! Для работы в тестовом режиме используется специальный тестовый набор паролей, не совпадающих с основными рабочими паролями Вашего магазина. Они прописываются в специальном блоке в Технических настройках Вашего магазина. Это делается для обеспечения безопасности Вашего интернет-магазина, чтобы злоумышленник не имел возможности «обмануть» Ваш интернет-магазин.

Интерфейс оплаты

Для работы в тестовом режиме магазину необходим дополнительный набор паролей, которые не должны совпадать с Пароль #1 и Пароль #2. Они прописываются в специальном разделе Технических настроек магазина. Там же выбирается Алгоритм расчёта хэша для тестовых платежей. Алгоритм расчета контрольной суммы для тестового режима должен совпадать с рабочим.

 

 

Для того, что бы со стороны магазина инициировать тестовую операцию оплаты, в скрипт к остальным параметрам необходимо добавить параметр IsTest со значением 1.

Если данный параметр вообще отсутствует, или в качестве значения параметра IsTest передан 0, или значение параметра пусто, то такой запрос не считается тестовым  и происходит инициализация обычной операции оплаты.

Инициализация тестовой оплаты через магазин

Рассмотрим  подробно тестирование оплаты через свой магазин с помощью модифицированного скрипта:

  1. Воспользуемся вот этим  скриптом;
  2. Здесь уже  заменены [значение] соответствующими данными, (подробнее можно почитать тут), следует проделать аналогичные шаги для Вашего тестируемого магазина:

    • MerchantLogin = Test1999

      (идентификатор магазина из раздела Технические настройки);

    • Pass1 = Пароль#1

      (Пароль#1 из тестовых настроек);

    • InvId = 678678

      (номер счета);

    • OutSum = 100

      (cтоимость товара, рубли);

    • Description = Товары для животных

      (описание покупки);

    • IsTest = 1

      (тестовый параметр, указатель на тестовую оплату);

  3. Настроим оповещение об оплате на ResultURL для работы с тестовым интерфейсом. Для этого потребуется в расчёт SignatureValue включить Пароль#2 из тестовых настроек.
  4. После сохранения этих настроек Вы можете инициировать из Вашего магазина тестовую операцию оплаты.
  5. В результате Вы окажетесь здесь и можете продолжить тестировать процесс оплаты в Вашем магазине.

Процесс тестовой оплаты

После того как Вы нажали кнопку «Оплатить» на странице Вашего Личного кабинета, произойдет переход на страницу тестовой оплаты сайта ROBOKASSA.

 

Предложенный способ оплаты можно изменить. Кликнув по одному из предложенный внизу страницы вариантов, или открыть полный список, кликнув по ссылке "Показать все способы оплаты".

Выбрав любой другой. Например:

После того, как Вы нажмёте кнопку «Оплатить», Вы попадёте на специальную страницу тестовой оплаты где можно выбрать один из двух возможных вариантов завершения платежа: "Успешная оплата" или "Неудачная оплата".

Пример успешно прошедшей тестовой оплаты.
При этом на Ваш Result URL будет отправлено уведомление об успешно прошедшей оплате. 

Пример неуспешной тестовой оплаты.

Обратите внимание, что тестовые оплаты не отображаются в поиске операций в Личном кабинете клиента.

Пример кода на PHP с параметром IsTest

<? $mrh_login = "Test1999"; $mrh_pass1 = "password_1"; $inv_id = 678678; $inv_desc = "Товары для животных"; $out_summ = "100.00"; $IsTest = 1; $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1"); print "<html><script language=JavaScript ". "src='https://auth.robokassa.ru/Merchant/PaymentForm/FormMS.js?". "MerchantLogin=$mrh_login&OutSum=$out_summ&InvoiceID=$inv_id". "&Description=$inv_desc&SignatureValue=$crc&IsTest=$IsTest'></script></html>"; ?>

XML интерфейс получения состояния оплаты счета

Этот XML интерфейс предназначен для отладки системы взаимодействия Вашего магазина/сайта с ROBOKASSA в тестовом режиме.

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

Название метода

OpState

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

Идентификатор магазина, строка. Подробнее см. Создание Магазина.

InvoiceID

Номер счета магазина, целое число.

IsTest

Параметр указывающий, что запрос к системе ROBOKASSA будет тестовым, и оплата не производилась.

Signature

Контрольная сумма  хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. Базой для расчёта служат все обязательные параметры, разделенные символом «:», с добавлением  Пароль#2 из тестовых настроек (указывается при заполнении раздела Технических настроек) т. е. MerchantLogin:InvoiceID:Пароль#2.

https://auth.robokassa.ru/Merchant/WebService/Service.asmx/OpState?MerchantLogin=Test1999&InvoiceID=100&IsTest=1&Signature=061d7da048c2edd112c7632399e727c0

Формат ответа для запросов HTTP GET/POST

<operationstateresponse xmlns="http://merchant.roboxchange.com/WebService/"> <result> <code>0</code> </result> <state> <code>100</code> <requestdate>2015-12-01T19:05:38.4065961+03:00</requestdate> <statedate>2015-12-01T19:05:38.4065961+03:00</statedate> </state> <info> <inccurrlabel>YandexMerchantOceanR</inccurrlabel> <incsum>100.00</incsum> <incaccount>Тестовый аккаунт</incaccount> <paymentmethod> <code>EMoney</code> <description>Электронными деньгами</description> </paymentmethod> <outcurrlabel>BNR</outcurrlabel> <outsum>100.00</outsum> </info> </operationstateresponse>

Описание возвращаемых данных State

Текущее состояние оплаты.

Code

Код текущего состояния операции оплаты тестового счета:

  • 5  операция только инициализирована, оплата ещё не начиналась.
  • 10  операция отменена.
  • 100 - операция выполнена, завершена успешно.

    Тестовый платёж проведён успешно, уведомление об успешном тестовом платеже отправлено продавцу.

RequestDate

Дата/время ответа на запрос.

StateDate

Дата/время последнего изменения состояния операции.

Info

Информация об операции оплаты счета.

IncCurrLabel

Валюта, которой платил клиент.

IncSum

Сумма, оплаченная клиентом, в единицах валюты IncCurrLabel.

IncAccount

Номер счёта (кошелёк, номер банковской карты) клиента в платежной системе, через которую производилась оплата.

PaymentMethod

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

Code (способа оплаты)

Код способа оплаты.

Description

Текстовое описание.

OutCurrLabel

Валюта, в которой получает средства магазин.

OutSum

Сумма, зачисленная на счет магазина, в единицах валюты OutCurrLabel.

Коды ошибок, специфичные для этого интерфейса
  • – неверная цифровая подпись запроса;
  • – информация об операции с таким InvoiceID не найдена.

Формат данных типа дата/время

Дата/время передаются в формате, рекомендованном стандартом ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffffZZZZZ), где:

  • YYYY - год, 4 цифры;
  • MM - месяц, 2 цифры;
  • DD - день месяца, 2 цифры (от 01 до 31);
  • T – латинский символ «T» в верхнем регистре;
  • hh - часы, 2 цифры (24-часовой формат, от 00 до 23);
  • mm - минуты, 2 цифры (от 00 до 59);
  • ss - секунды, 2 цифры (от 00 до 59);
  • fffffff – от 1 до 7 цифр дробной части секунд
  • ZZZZZ - описатель временной зоны, может принимать значения:
    • +hh:mm или -hh:mm – смещение относительно UTC (показывает, что указано локальное время, которое на данное число часов и минут опережает или отстает от UTC);
    • символ «Z» (должен быть в верхнем регистре), означает, что момент времени представлен в UTC зоне (эквивалентно +00:00 и -00:00).

Например: 2010-02-11T16:07:11.6973153+03:00

Примеры

Все  приведённые примеры предполагают, что в Технических настройках магазина в качестве Алгоритма расчёта хэша используется MD5.

PERL

Скачать архив с примерами реализации кода, можно здесь.

Формирование URL переадресации пользователя на оплату

# connect standard module for building MD5-signs use Digest::MD5 qw(md5_hex); # your registration data my $mrh_login = "test"; ### your login here my $mrh_pass1 = "securepass1"; ### merchant pass1 here # order properties my $inv_id = 5; ### shop's invoice number ### (unique for shop's lifetime) my $inv_desc = "desc"; ### invoice desc my $out_summ = "5.12"; ### invoice summ # build CRC value my $crc = md5_hex("$mrh_login:$out_summ:$inv_id:$mrh_pass1"); # build URL my $url = "https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=$mrh_login&". "OutSum=$out_summ&InvId=$inv_id&Description=$inv_desc&SignatureValue=$crc"; # print URL if you need print "Content-type: text/html\n\n"; print "<a href='/ru/$url'>Payment link</a>";

Получение уведомления об исполнении операции (ResultURL)

# as a part of ResultURL script # connect standard module for building MD5-signs use Digest::MD5 qw(md5_hex); # define function for retrieval http-paratemters sub http_Prm; # your registration data my $mrh_pass2 = "securepass2"; ### merchant pass2 here # load parameters my %q = http_Prm(); # loaded parameters: $q{OutSum}, $q{InvId}, $q{SignatureValue} $q{SignatureValue} =~ s/([a-z])/uc "$1"/eg; # force uppercase # build own CRC my $my_crc = md5_hex("$q{OutSum}:$q{InvId}:$mrh_pass2"); $my_crc =~ s/([a-z])/uc "$1"/eg; # force uppercase # define the correctness state my $is_correct = ($my_crc eq $q{SignatureValue} ? 1 : 0); if (!$is_correct) { print "Content-type: text/html\n\nbad sign\n"; die "incorrect sign passed"; } # OK state # print OK signature print "Content-type: text/html\n\nOK$q{InvId}\n"; # perform some action (change order state to paid) exit(); # just function to load http parameters, you can use own sub http_Prm { my %query; { # POST params my ($q_sz, $i, @q, @cmd); my $l = $ENV{'CONTENT_LENGTH'}; my $qtext = ""; while ($l>0) { $l-=sysread(STDIN, $qtext, $l, length($qtext)); } @q = split("&", $qtext); $q_sz = scalar(@q); for($i=0; $i<$q_sz; $i++) { @cmd = split("=", $q[$i]); $cmd[1] =~ s/\+/ /g; $cmd[1] =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; $query{$cmd[0]} = $cmd[1]; } } { # GET params my ($q_sz, $i, $qtext, @q, @cmd); $qtext = $ENV{'QUERY_STRING'}; @q = split("&", $qtext); $q_sz = scalar(@q); for($i=0; $i<$q_sz; $i++) { @cmd = split("=", $q[$i]); $cmd[1] =~ s/\+/ /g; $cmd[1] =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; $query{$cmd[0]} = $cmd[1]; } } return %query; }

Проверка параметров в скрипте завершения операции (SuccessURL)

# as a part of SuccessURL script # connect standard module for building MD5-signs use Digest::MD5 qw(md5_hex); # define function for retrieval http-paratemters sub http_Prm; # your registration data my $mrh_pass1 = "securepass1"; ### merchant pass1 here # load parameters my %q = http_Prm(); # loaded parameters: $q{OutSum}, $q{InvId}, $q{SignatureValue} $q{SignatureValue} =~ s/([a-z])/uc "$1"/eg; # force uppercase # build own CRC my $my_crc = md5_hex("$q{OutSum}:$q{InvId}:$mrh_pass1"); $my_crc =~ s/([a-z])/uc "$1"/eg; # force uppercase # define the correctness state my $is_correct = ($my_crc eq $q{SignatureValue} ? 1 : 0); if (!$is_correct) { print "Content-type: text/html\n\nbad sign\n"; die "incorrect sign passed"; } # you can check here, that resultURL was called # (for better security) # OK, payment proceeds print "Content-type: text/html\n\n"; echo "Thank you for using our service\n"; exit(); # just function to load http parameters, you can use own sub http_Prm { my %query; { # POST params my ($q_sz, $i, @q, @cmd); my $l = $ENV{'CONTENT_LENGTH'}; my $qtext = ""; while ($l>0) { $l-=sysread(STDIN, $qtext, $l, length($qtext)); } @q = split("&", $qtext); $q_sz = scalar(@q); for($i=0; $i<$q_sz; $i++) { @cmd = split("=", $q[$i]); $cmd[1] =~ s/\+/ /g; $cmd[1] =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; $query{$cmd[0]} = $cmd[1]; } } { # GET params my ($q_sz, $i, $qtext, @q, @cmd); $qtext = $ENV{'QUERY_STRING'}; @q = split("&", $qtext); $q_sz = scalar(@q); for($i=0; $i<$q_sz; $i++) { @cmd = split("=", $q[$i]); $cmd[1] =~ s/\+/ /g; $cmd[1] =~ s/%([0-9A-Fa-f]{2})/chr(hex($1))/eg; $query{$cmd[0]} = $cmd[1]; } } return %query; }

PHP

Скачать архив с примерами реализации кода, можно здесь.

Формирование URL переадресации пользователя на оплату

// your registration data $mrh_login = "test"; // your login here $mrh_pass1 = "securepass1"; // merchant pass1 here // order properties $inv_id = 5; // shop's invoice number // (unique for shop's lifetime) $inv_desc = "desc"; // invoice desc $out_summ = "5.12"; // invoice summ // build CRC value $crc = md5("$mrh_login:$out_summ:$inv_id:$mrh_pass1"); // build URL $url = "https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=$mrh_login&". "OutSum=$out_summ&InvId=$inv_id&Description=$inv_desc&SignatureValue=$crc"; // print URL if you need echo "<a href='/ru/$url'>Payment link</a>";

Получение уведомления об исполнении операции (ResultURL)

// as a part of ResultURL script // your registration data $mrh_pass2 = "securepass2"; // merchant pass2 here // HTTP parameters: $out_summ = $_REQUEST["OutSum"]; $inv_id = $_REQUEST["InvId"]; $crc = strtoupper($_REQUEST["SignatureValue"]); // build own CRC $my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass2")); if ($my_crc != $crc) { echo "bad sign\n"; exit(); } // print OK signature echo "OK$inv_id\n"; // perform some action (change order state to paid)

Проверка параметров в скрипте завершения операции (SuccessURL)

// as a part of SuccessURL script // your registration data $mrh_pass1 = "securepass1"; // merchant pass1 here // HTTP parameters: $out_summ = $_REQUEST["OutSum"]; $inv_id = $_REQUEST["InvId"]; $crc = $_REQUEST["SignatureValue"]; $crc = strtoupper($crc); // force uppercase // build own CRC $my_crc = strtoupper(md5("$out_summ:$inv_id:$mrh_pass1")); if ($my_crc != $crc) { echo "bad sign\n"; exit(); } // you can check here, that resultURL was called // (for better security) // OK, payment proceeds echo "Thank you for using our service\n";

ASP.NET

Скачать архив с примерами реализации кода, можно здесь.

Формирование URL переадресации пользователя на оплату

using System; using System.Text; using System.Globalization; using System.Security.Cryptography; public partial class Init : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // your registration data string sMrchLogin = "test"; string sMrchPass1 = "securepass1"; // order properties decimal nOutSum = 5.12M; int nInvId = 5; string sDesc = "desc"; string sOutSum = nOutSum.ToString("0.00", CultureInfo.InvariantCulture); string sCrcBase = string.Format("{0}:{1}:{2}:{3}", sMrchLogin, nInvIds, OutSum, sMrchPass1); // build CRC value MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase)); StringBuilder sbSignature = new StringBuilder(); foreach (byte b in bSignature) sbSignature.AppendFormat("{0:x2}", b); string sCrc = sbSignature.ToString(); // LinkButtonPay is System.Web.UI.WebControls.LinkButton; LinkButtonPay.Text = "Payment link"; // build URL LinkButtonPay.PostBackUrl = "https://auth.robokassa.ru/Merchant/Index.aspx?" + "MerchantLogin=" + sMrchLogin + "&OutSum=" + sOutSum + "&InvId=" + nInvId + "&Description=" + sDesc + "&SignatureValue=" + sCrc; } }

Получение уведомления об исполнении операции (ResultURL)

using System; using System.Web; using System.Text; using System.Globalization; using System.Security.Cryptography; public partial class Result : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // your registration data string sMrchPass2 = "securepass2"; // HTTP parameters string sOutSum = GetPrm("OutSum"); string sInvId = GetPrm("InvId"); string sCrc = GetPrm("SignatureValue"); string sCrcBase = string.Format("{0}:{1}:{2}", sOutSum, sInvId, sMrchPass2); // build own CRC MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase)); StringBuilder sbSignature = new StringBuilder(); foreach (byte b in bSignature) sbSignature.AppendFormat("{0:x2}", b); string sMyCrc = sbSignature.ToString(); if (sMyCrc.ToUpper() != sCrc.ToUpper()) { Response.Write("bad sign"); return; } Response.Write(string.Format("OK{0}", sInvId)); // perform some action (change order state to paid) } private string GetPrm(string sName) { string sValue; sValue = HttpContext.Current.Request.Form[sName] as string; if (string.IsNullOrEmpty(sValue)) sValue = HttpContext.Current.Request.QueryString[sName] as string; if (string.IsNullOrEmpty(sValue)) sValue = String.Empty; return sValue; } }

Проверка параметров в скрипте завершения операции (SuccessURL)

using System; using System.Web; using System.Text; using System.Globalization; using System.Security.Cryptography; public partial class Success : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { // your registration data string sMrchPass1 = "securepass1"; // HTTP parameters string sOutSum = GetPrm("OutSum"); string sInvId = GetPrm("InvId"); string sCrc = GetPrm("SignatureValue"); string sCrcBase = string.Format("{0}:{1}:{2}", sOutSum, sInvId, sMrchPass1); // build own CRC MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider(); byte[] bSignature = md5.ComputeHash(Encoding.ASCII.GetBytes(sCrcBase)); StringBuilder sbSignature = new StringBuilder(); foreach (byte b in bSignature) sbSignature.AppendFormat("{0:x2}", b); string sMyCrc = sbSignature.ToString(); if (sMyCrc.ToUpper() != sCrc.ToUpper()) { Response.Write("bad sign"); return; } // you can check here, that ResultURL was called // (for better security) // OK, payment proceeds Response.Write("Thank you for using our service"); } private string GetPrm(string sName) { string sValue; sValue = HttpContext.Current.Request.Form[sName] as string; if (string.IsNullOrEmpty(sValue)) sValue = HttpContext.Current.Request.QueryString[sName] as string; if (string.IsNullOrEmpty(sValue)) sValue = String.Empty; return sValue; } }

Требования к сайту магазина со стороны платёжных систем

Требования к сайту магазина со стороны платёжной системы WebMoney

  1. Необходимо разместить на своем сайте ссылку на сайт платёжной системы WebMoney в виде кнопки "Мы принимаем WebMoney": https://www.webmoney.ru/rus/developers/logos.shtml
  2. На сайте должно быть опубликовано описание порядка оплаты товаров или услуг с помощью системы WebMoney Transfer. Это описание должно быть доступно всем пользователям без обязательной регистрации на сайте.
  3. Сайт не должен использоваться для распространения и рекламы товаров или услуг незаконного, криминального характера, не соответствующих общепринятым этическим и правовым нормам.
    Список таких товаров и услуг приведен в Приложении: http://www.wmtransfer.com/rus/cooperation/legal/syagreement1.shtml#2

Правила размещения логотипов и текстов платежной системы Яндекс.Деньги на сайте Интернет-магазина

Для того, чтобы проинформировать Ваших покупателей о том, что принимаете Яндекс.Деньги, необходимо:

  1. Разместить на Вашем сайте кнопку «Я принимаю Яндекс.Деньги» со ссылкой на сайт платежной системы. Кнопку желательно разместить на главной странице сайта и обязательно на странице, информирующей о способах оплаты товаров/услуг.

    Чтобы разместить кнопку, просто скопируйте эти тэги в код страницы. При этом Вы можете выбрать анимированный или неанимированный вариант логотипа.

    • Анимированный вариант:

      Я принимаю Яндекс.Деньги

      <a href="https://money.yandex.ru" target="_blank"> <img src="https://money.yandex.ru/img/yamoney_button.gif" alt="Я принимаю Яндекс.Деньги" title="Я принимаю Яндекс.Деньги" border="0" width="88" height="31"/></a>
    • Неанимированные варианты:

      Я принимаю Яндекс.Деньги

      <a href="https://money.yandex.ru" target="_blank"> <img src="https://money.yandex.ru/img/yamoney_logo120x60.gif" alt="Я принимаю Яндекс.Деньги" title="Я принимаю Яндекс.Деньги" border="0" width="120" height="60"/></a>

      Я принимаю Яндекс.Деньги

      <a href="https://money.yandex.ru" target="_blank"> <img src="https://money.yandex.ru/img/yamoney_logo88x31.gif" alt="Я принимаю Яндекс.Деньги" title="Я принимаю Яндекс.Деньги" border="0" width="88" height="31"/></a>

    Обращаю Ваше внимание на то, что Система Яндекс.Деньги настаивает на использовании графического изображения, хранящегося на их сайте. Сохранять к себе его не надо.

  2. Разместить краткую (или расширенную) информацию о системе Яндекс.Деньги. Два варианта текста предоставляем (см. ниже по тексту), выберите наиболее подходящий для Вас вариант.

    При этом информация обязательно должна быть размещена в способах оплаты и доступна пользователю без регистрации на сайте магазина.

    • Краткий вариант текста:

      Яндекс.Деньги – доступный и безопасный способ платить за товары и услуги через интернет. Пополнение счета и оплата заказов происходят в реальном времени на сайте платежной системы.

    • Расширенный вариант текста:

      Яндекс.Деньги – доступный и безопасный способ платить за товары и услуги через интернет. Оплачивать заказы можно в реальном времени на сайте платежной системы.
      Интерфейс платежной системы «Яндекс.Деньги» прост, понятен и удобен как для опытных, так и для начинающих пользователей.
      Для открытия счета в Яндекс.Деньгах достаточно зарегистрироваться на сайте.
      Следующий шаг - внесение денег на счет. Это можно сделать через терминалы, системы денежных переводов, предоплаченные карты, а также банки (в том числе банковские карты) во всех регионах России.
      Деньги со счета можно в любой момент использовать для расчетов за услуги и покупки через интернет. Платежи в интернет-магазин Яндекс.Деньгами - мгновенные, комиссия за них не взимается.
      Посмотрите, какие возможности пополнения счета есть в вашем регионе, и откройте счет в Яндекс.Деньгах.

Рекомендации по бухгалтерскому учету

Для разъяснения некоторых вопросов рекомендуем ознакомиться с документом по ссылке.