ROBOKASSA Моментальный старт продаж для малого бизнеса. Решение всех проблем с 54-ФЗ одной кнопкой. Быстрое подключение, легкая интеграция, более 30 способов оплат в рамках единого договора, в том числе Apple Pay, SamsungPay
Продукты:
INSTA - бесплатный инструмент для организации продаж в Инстаграме с созданием собственной полноценной онлайн-точки продаж. Бережный перенос контента по APi и создание онлайн-витрины, платежи, онлайн-касса и фискальные чеки уже включены в пакет.
ROBO.MARKET - моментальный старт продаж для малого бизнеса: бесплатный инструмент приема онлайн-платежей более чем 30 способами, онлайн-касса и фискальные чеки.
РОБОЧЕКИ - бесплатный инструмент приема онлайн-платежей с выдачей фискальных чеков в полном соответствии с 54-ФЗ
Если решение о подключении принято, начните с Регистрации. Формы сотрудничества с ROBOKASSA:
Юридическое лицо, в том числе ИП, ООО, ЗАО, ОАО. А также НКО, БАНК, ФГУП, РНКО и т.д. и т.п. — любая форма юридического лица (только резиденты РФ и Казахстана).
Физическое лицо, с возможностью получения платежей на электронный кошелёк QIWI-Wallet или на карту Visa и MasterCard российского банка.
Инструкция по регистраци в PDF
Создайте аккаунт в системе на главной странице нашего сайта по ссылке: «Подключить магазин». После перехода откроется страница
Выберите, где регистрируетесь, Россия или Казахстан.
Выберите одно из значений: Юридическое лицо, Индивидуальный предприниматель, Физическое лицо.
Идентификатор клиента служит общим идентификатором для всех сотрудников компании. Это написанное на латинице название магазина или название компании, управляющей несколькими магазинами.
Логин — это персональный Идентификатор конкретного сотрудника, имеющего доступ к Вашему Личному кабинету клиента сервиса ROBOKASSA. По Логину система определяет роль сотрудника в компании и предоставляет доступ к той или иной информации. Вход в систему возможен по Логину в сочетании с правильным Идентификатором клиента. При создании Личного кабинета клиента по умолчанию создаётся сотрудник с ролью Администратор и соответствующими правами. По умолчанию для него предлагается Логин — admin, который Вы сразу можете изменить на любой другой по своему выбору. Роли и права доступа для остальных сотрудников раздаются только сотрудником с установленной ролью Администратор.
Будьте внимательны при раздаче прав уровня Администратора.
На этот адрес будет выслана информация для входа в Личный кабинет. И этот же E-mail будет использоваться для восстановления доступа к учётной записи Администратора в случае необходимости.
Пароль будет создан автоматически и выслан на E-Mail Администратора вместе с остальными регистрационными данными.
Используя Идентификатор клиента и Логин, заданные Вами при регистрации, и высланный на E-Mail пароль, авторизуйтесь в Личном кабинете клиента.
После авторизации можно задать свой пароль для доступа в Личный кабинет (заменить автоматически сгенерированный), если у Вас есть такая необходимость. Это делается так:
Следующие шаги пока можно пропустить, и сразу перейти к созданию магазина.
Рекомендуем Вам сразу заполнить Ваши данные и контактную информацию в разделе Настройки.
ФИО сотрудника.
Этот пункт необходимо указать для сотрудника, который будет фигурировать в качестве Подписанта.
Официальная должность лица, указанная в документе, подтверждающем право подписи.
Адрес электронной почты сотрудника.
Номер телефона сотрудника.
Документ, подтверждающий право подписи. Например: Устав, Доверенность, Договор передачи полномочий.
Указывается при условии, что данный сотрудник будет подписывать официальные документы, фигурировать в данных Вашего юридического лица в качестве подписанта.
Дополнительный адрес электронной почты.
Учётная запись Skype.
Адрес сотрудника, например, домашний.
Дополнительная информация о сотруднике, которую Вы хотите сохранить.
Заполните информацию о Вашей организации.
Выберите нужный тип собственности из предложенного списка.
Введите ИНН. Для ООО, ОАО, ЗАО - 10 цифр, для индивидуальных предпринимателей - 12 цифр.
Введите КПП, 9 цифр.
Введите ОГРН или ОГРНИП. Для ООО, ОАО, ЗАО - 12 цифр, для ИП - 15 цифр.
Укажите дату внесения записи о регистрации юридического лица/ИП в единый государственный реестр юридических лиц/ индивидуальных предпринимателей.
Общие контакты (телефон и факс) Вашей организации и E-Mail бухгалтерии для отправки электронных документов.
Юридический адресЕсли адреса в Вашей организации совпадают, то заполняется только один блок, остальные не требуются.
Адрес официальной регистрации, адрес местонахождения постоянно действующего исполнительного органа юридического лица.
Фактический адрес – место, где Ваша компания в действительности осуществляет свою профессиональную деятельность.
Адрес, по которому Ваша компания планирует получать корреспонденцию.
Если Вы зарегистрированы как бюджетная организация, то укажите дополнительную информацию.
Номер лицевого счета бюджетных средств.
КБК бюджетной организации.
Выберите действующего ответственного за подписание документов из списка или добавьте нового, нажав кнопку «Добавить».
В данный список попадают только сотрудники у которых заполнены поля: ФИО, ФИО (в род. падеже), Должность и Наименование документа, подтверждающего право подписи.
Здесь необходимо указать сотрудника Вашей организации, который будет основным контактным лицом, и к которому мы сможем обращаться по различным вопросам в процессе работы. Сотрудника можно выбрать из списка, или добавить нового, нажав кнопку «Добавить».
В данный список попадают только сотрудники у которых заполнены поля: ФИО, Основной E-mail и Телефон.
Если Вы Индивидуальный предприниматель, то укажите дополнительную информацию.
Укажите полное имя, ФИО.
Укажите дату рождения в формате ДД.ММ.ГГ.
Укажите место Вашего рождения (как в паспорте).
Укажите серию и номер паспорта, кем и когда выдан.
Укажите серию и номер свидетельства о регистрации физического лица в качестве индивидуального предпринимателя.
Укажите дату выдачи свидетельства в случае если свидетельство оформлено по форме Р61003.
Заполните информацию о Вашей организации.
Обязательные параметры для нерезидентов Полное наименование в латинской транскрипцииНазвание компании с использованием транслитерации, если наименование компании на русском языке или на языке с нелатинскими символами.
Регистрационный номер в стране регистрации (цифро-буквенный код длиной не более 15 символов).
Код налогоплательщика в стране регистрации или его аналог.
Общие контакты (телефон и факс) Вашей организации для связи с нами и E-Mail бухгалтерии для отправки электронных документов.
Адрес официальной регистрации, адрес местонахождения постоянно действующего исполнительного органа юридического лица в стране регистрации.
Выберите действующего ответственного за подписание документов из списка или добавьте нового, нажав кнопку «Добавить».
Наименование на русском языке (если имеется).
Номер налогоплательщика, присваиваемый иностранной организации налоговым органом при постановке на налоговый учёт в Российской Федерации. Является составной частью идентификационного номера налогоплательщика (ИНН) и занимает в этой номере цифры с пятой по девятую (первые четыре заняты индексом, десятая — контрольное число).
Идентификационный номер налогоплательщика на территории РФ.
Контактные данные, по которым мы сможем обращаться по различным вопросам в процессе работы.
Адрес официальной регистрации на территории РФ.
Фактический адрес – место, где представительство в действительности находится на территории РФ.
Укажите свой электронный кошелёк QIWI, или карту Visa и MasterCard российского банка.
Способы вывода средств В разделе: «Настройки» – «Способы вывода средств» указываются возможные способы вывода для Ваших средств и их реквизиты.Выберите новый способ из списка или создайте новый нажатием кнопки «Добавить способ вывода средств».
Заполните необходимые данные. Например, если выбран банковский счет:
Тип счёта, с которым Вы собираетесь работать: безналичный счёт в банке, QIWI-кошелек или банковская карта.
Придумайте удобное и запоминающееся название для счёта. По этому названию Вы сможете его быстро идентифицировать среди других Ваших счетов.
БИК банка, в котором открыт Ваш расчётный счёт.
Корреспондентский счёт банка, в котором открыт Ваш расчётный счёт.
Расчётный счёт должен состоять из 20 цифр и начинаться с: 30111, 30231, 40201, 40406, 40501, 40502, 40503, 40601, 40602, 40603, 40701, 40702, 40703 или 40802.
Создать первый магазин можно либо на Главной странице Вашего Личного кабинета клиента либо в разделе «Мои магазины» нажатием кнопки «Добавить новый». В дальнейшем, магазины можно создавать только в разделе «Мои магазины». На открывшейся странице необходимо заполнить все поля, в соответствии с их назначением и требованиями.
При регистрации нового магазина можно выбрать следующие типы подключения:
После активации магазина изменение его типа невозможно.
Это название будет видеть клиент при совершении оплаты в нашем интерфейсе. Должно быть уникальным для каждого магазина.
Название магазина должно быть коротким и содержать не более 40 символов. Если название будет слишком длинным, то на страницах оплаты, скорее всего, будет показываться URL главной страницы Вашего сайта.
Идентификатор магазина – обозначение магазина ТОЛЬКО для использования интерфейсом инициализации оплаты, то есть для понимания системой ROBOKASSA в адрес какого магазина будет проводиться платеж. Идентификатор может содержать латинские буквы, цифры и символы: . - _.
Не путайте Идентификатор магазина с Идентификатором клиента!
В скрипте ROBOKASSA, а также в панели управления сайтом (если Вы работаете на CMS со встроенным модулем ROBOKASSA), в качестве значения для параметра MerchantLogin, необходимо использовать именно Идентификатор магазина, а не Ваш Логин для входа в Личный кабинет клиента. Во встроенных модулях оплаты параметр MerchantLogin чаще всего обозначается как Логин, Логин магазина в ROBOKASSA или подобным образом.
Заполняется в том случае, если ранее Вами не были заполнены данные Юридического лица, раздел Адреса.
Заполняется только для юридического лица.
Буквально – адрес главной страницы Вашего сайта. Например, 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. Подробнее об алгоритмах хэширования можно прочитать тут.
Используется интерфейсом инициализации оплаты. Длина не менее 8 символов, должен содержать хотя бы одну букву и хотя бы одну цифру.
Используется интерфейсом оповещения о платеже, XML-интерфейсами. Длина не менее 8 символов, должен содержать хотя бы один символ и хотя бы одну цифру.
ResultURLПароли должны отличаться друг от друга и ни в коем случае НЕ совпадать с паролем для входа в Личный кабинет.
Из соображений безопасности сохраненные пароли не показываются на экране. Запишите/сохраните все пароли, они потребуются Вам в дальнейшей работе по настройке скриптов.
На него мы будем отправлять Вам оповещение об успешных платежах в автоматическом режиме.
Без настройки этого URL, корректная работа с нашей системой не гарантируется.
Укажите, каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю ROBOKASSA в CMS на которой Вы работаете.
Если в работе Вашего сайта (магазина) предусмотрено, что всё обрабатывается в ручном режиме и за поступлением платежей следит Ваш сотрудник, то Вы можете настроить автоматическое оповещение на электронный адрес. Для этого в полях ResultURL Вам нужно выбрать метод отсылки данных E-Mail и указать адрес электронной почты, на который Вы желаете получать уведомления.
Пример:
Необязательно для заполнения.
Внимание! Услуга платная.
На него будет перенаправлен покупатель после успешного платежа.
Укажите, каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) данных уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю ROBOKASSA в CMS на которой Вы работаете.
Пример:
На него будет перенаправлен покупатель после неуспешного платежа, отказа от оплаты.
Укажите, каким образом Вы желаете получать от нас информацию по этому URL. Метод отсылки (GET или POST) данных уточните у Вашего технического специалиста, или же метод указан в инструкции к модулю ROBOKASSA в CMS на которой Вы работаете.
Пример:
Определяет метод, с помощью которого будет рассчитываться значение параметра SignatureValue для тестовых платежей. Поддерживаются следующие алгоритмы расчёта: MD5, RIPEMD160, SHA1, SHA256, SHA384, SHA512. Подробнее об алгоритмах хэширования можно прочитать тут.
Используется для тестирования магазина интерфейсом инициализации оплаты. Длина не менее 8 символов, должен содержать хотя бы одну букву и хотя бы одну цифру.
Используется для тестирования магазина интерфейсом оповещения о платеже, XML-интерфейсами. Длина не менее 8 символов, должен содержать хотя бы один символ и хотя бы одну цифру.
Пароли для проведения тестовых платежей не должны совпадать с рабочими паролями магазина.
Обращаем Ваше внимание, что если раздел Технические настройки не будет заполнен должным образом, то полноценное взаимодействие Вашего сайта (магазина) с системой ROBOKASSA будет невозможно, и Вашей заявке на активацию будет отказано.
Данные в разделе Технические настройки можно изменять и сохранять без дополнительного подтверждения до Активации Вашего магазина. После Активации для сохранения изменений потребуется вводить Код подтверждения, который высылается на E-Mail сотрудника, вносившего эти изменения.
Код действителен в течении 20 минут, после этого все внесённые Вами изменения будут отменены.
После выполнения всех вышеописанных действий и настройки скрипта ROBOKASSA на Вашем сайте Вы можете направить нам запрос на Активацию Магазина для приёма платежей. Данный запрос отправляется из Настроек Вашего магазина (раздел Мои магазины – магазин который необходимо активировать), по кнопке «Запрос на активацию»:
Но если Вами не заполнены какие-то важные разделы, информация из которых будет использоваться в работе, то в настройках магазина будет присутствовать напоминание об этом, а кнопка «Запрос на активацию» не будет отображаться.
При наличии такого напоминания необходимо проверить корректность заполнения данных Юридического лица и раздела Технические настройки.
Деактивировать магазин можно только по запросу в Службу Поддержки ROBOKASSA.
Robokassa предоставляет возможность поставить на свой сайт кнопку/ссылку для оплаты товара через Robokassa. Кнопка может быть как с фиксированной суммой (опция "Оплатить"), так и с произвольной суммой.
Инструкция по выставлению счетов в PDF
Для настройки такой кнопки/ссылки зайдите в раздел Кнопка/ссылка на сайт в Технических настройках магазина. Выберите способ перехода к оплате. Проставьте нужную сумму оплаты. Добавьте описание и/или номенклатуру заказа, если нужно.
Скопируйте код и вставьте его на свой сайт.
При клике на кнопку "Оплатить" плательщик будет перенаправлен на платежную страницу Robokassa.
, Вы зарегистрировались, теперь необходимо выполнить важный шаг – установить скрипт ROBOKASSA на Вашем сайте и настроить его работу.
Здесь Вы можете ознакомиться с готовыми модулями под различные CMS и торговые платформы.
Все наши официальные модули также доступны для скачивания на платформе GitHub.
Официальный модуль приема платежей Robokassa для Битрикс 24. Robokassa - оплата Битрикс24
Официальный модуль приема платежей Robokassa для InSales. Robokassa - оплата InSales
Официальный модуль приема платежей Robokassa для WordPress. Robokassa - оплата WordPress
Официальный модуль приема платежей Robokassa для OpenCart. Robokassa - оплата OpenCart
Официальный модуль приема платежей Robokassa для Joomla VirtueMart - оплата VirtueMart
Официальный модуль приема платежей Robokassa для 1С-Битрикс. Robokassa - оплата 1С-Битрикс
Официальный модуль приема платежей Robokassa для сервиса WIX. Robokassa - оплата WIX
Официальный модуль приема платежей Robokassa для СRM Мой Склад. Robokassa - оплата Мой Склад
Официальный модуль приема платежей Robokassa для AMO CRM. Robokassa - оплата AMO CRM
Модуль приема платежей 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
Модуль приема платежей Robokassa для Drupal. Robokassa - оплата Drupal
Модуль приема платежей Robokassa для АвтоВебОфис. Robokassa - оплата АвтоВебОфис
Модуль приема платежей Robokassa для RetailCRM от retailcrm.services. Robokassa - оплата RetailCRM
Модуль приема платежей 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 для 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 для Bizon 365. Robokassa - оплата Bizon 365
Модуль приема платежей Robokassa для Taplink. Robokassa - оплата Taplink
Модуль приема платежей Robokassa для Shopify. Robokassa - оплата Shopify
Модуль приема платежей Robokassa для Webasyst. Robokassa - оплата Webasyst
Модуль приема платежей Robokassa для NetCat. Robokassa - оплата NetCat
Модуль приема платежей Robokassa для SetSale. Robokassa - оплата SetSale
Модуль приема платежей Robokassa для WordPress от разработчика Mofsy. Robokassa - оплата WordPress Mofsy
Модуль приема платежей Robokassa для Платформа OpenMall. Robokassa - оплата Платформа OpenMall
Модуль приема платежей Robokassa для Zaptrade. Robokassa - оплата Zaptrade
Модуль приема пожертвований Онлайн Лейка через Robokassa. Robokassa – прием пожертвований
Модуль приема пожертвований через Robokassa Приход.ру. Robokassa – прием пожертвований
Модуль приема платежей Robokassa для Gurucan. Robokassa - оплата Gurucan
Модуль приема платежей Robokassa для КИОСК. Robokassa - оплата КИОСК
Модуль приема платежей Robokassa для CRM Автошкола Контроль. Robokassa - оплата Автошкола Контроль
Модуль приема платежей Robokassa для Salebot. Robokassa - оплата Salebot
Модуль приема платежей Robokassa для Pruffme. Robokassa - оплата Pruffme
Модуль приема платежей Robokassa для FLORA. Robokassa - оплата FLORA
Модуль приема платежей Robokassa для VamShop. Robokassa - оплата VamShop
Модуль приема платежей Robokassa для САЙТРОССИЯ. Robokassa - оплата САЙТРОССИЯ
Модуль приема платежей Robokassa для платформы для онлайн-школ фитнеса InSkill. Robokassa - оплата InSkill
Модуль приема платежей Robokassa для сервиса Botobot. Robokassa - оплата Botobot
Модуль приема платежей Robokassa для Satom. Robokassa - оплата Satom
Интеграция сервиса учета Финолог с Робокассой. Прием платежей и импорт транзакций из Робокассы в Финолог.
Модуль приема платежей Robokassa для онлайн видео платформы Boomstream. Robokassa - оплата Boomstream
Модуль приема платежей Robokassa для stepFORM.io
Модуль приема платежей Robokassa для системы автоматизации доставки еды и цветов FoodSoul. Robokassa - оплата FoodSoul
Модуль приема платежей Robokassa для платформы комплексной автоматизации работы отдела продаж LEELOO.AI. Robokassa - оплата LEELOO.AI
Модуль приема платежей Robokassa для CMS Smart Engine. Robokassa - оплата CMS Smart Engine
Модуль приема платежей Robokassa для BotHelp. Robokassa - оплата BotHelp
На странице сайта продавца размещается код, формирующий кнопку для перехода на оплату через ROBOKASSA. При нажатии на эту кнопку покупатель будет перенаправлен на сайт ROBOKASSA для совершения платежа на указанную продавцом сумму.
Пример подобной кнопки с заданной суммой находится ниже. Будьте внимательны, если Вы введете данные вашего платежного средства, то сможете провести настоящую операцию оплаты в адрес нашего демонстрационного магазина:
Корзина покупок | |||
Кол-во (шт.) | Цена (руб.) | Сумма (руб.) | |
Техническая документация по ROBOKASSA | 1 | 6,00 | 6,00 |
Техническая документация по Robo.market | 1 | 5,00 | 5,00 |
11,00 |
Ознакомиться с примерами кода, описанием используемых параметров и их значений, Вы можете здесь.
Выбрать готовый модуль под свою CMS или торговую платформу, Вы можете здесь.
В случае если нужно предоставить покупателям возможность самостоятельно указывать сумму оплаты (например, для пополнения счетов или внесения пожертвований), Вы можете разместить на сайте форму с полем для ввода суммы. Вы можете также указать сумму, которая будет предлагаться в этой форме по умолчанию.
Пример подобной формы с возможностью ввода суммы находится ниже. Будьте внимательны, если Вы введете данные вашего платежного средства, то сможете провести настоящую операцию оплаты в адрес нашего демонстрационного магазина:
Ознакомиться с примерами кода, описанием используемых параметров и их значений, Вы можете здесь.
Выбрать готовый модуль под свою CMS или торговую платформу, Вы можете здесь.
В случае, если нужно предоставить покупателям возможность проводить оплату непосредственно на сайте магазина, можно использовать iFrame (дизайн кнопки задаётся магазином):
Ознакомиться с примерами кода, описанием используемых параметров и их значений, Вы можете здесь.
Интерфейс ROBOKASSA, предлагающий перейти к оплате, нажав одну кнопку.
Предварительно магазин должен сохранить у себя передаваемую информацию (номер счёта, сумма, дата формирования и дополнительные параметры, если они используются). Адрес для отправки запроса на проведение оплаты:
Результатом является изображенная на иллюстрации форма:
Варианты кнопок Вы можете увидеть здесь.
Параметры запроса: MerchantLogin, OutSum, InvId, Description и SignatureValue.
База для расчёта контрольной суммы: MerchantLogin:OutSum:InvId:Пароль#1
где: Пароль#1 – это тот самый пароль, который Вы указали в Технических настройках.
Если Вы хотите передавать нам пользовательские параметры, например: Shp_login=Vasya и Shp_oplata=1, то база для расчёта контрольной суммы должна выглядеть
, для установки на сайте, с использованием только
<? $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 мы пришлём уведомление об оплате.
В случае, если нужно предоставить покупателям возможность самостоятельно указывать сумму оплаты (например, для пополнения счетов или внесения пожертвований), Вы можете разместить на сайте форму с полем ввода суммы. Вы можете также указать сумму, которая будет предлагаться в форме по умолчанию.
На странице оплаты сайта продавца размещается код, выполняющий запрос на сайт ROBOKASSA. ROBOKASSA возвращает в качестве ответа на запрос 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-ы, которые нужно использовать для получения соответствующей кнопки/формы.
iFrame-версия платёжной страницы используется клиентом в том случае, если ему необходимо, чтобы пользователь производил оплату на сайте магазина без перехода на сайт сервиса ROBOKASSA.
Во все наши официальные модули уже интегрирована поддержка iFrame.
Дизайн кнопки оплаты может быть задан интернет-магазином. Использование данной функции предполагает небольшую настройку программного кода на стороне интернет магазина.
Важное уточнение! При работе через iFrame перенаправление покупателя на Success URL после совершения оплаты или на Fail URL при отказе от оплаты не происходит поскольку покупатель не уходит с сайта продавца, а всё время остаётся на нём. Уведомление магазину на Result URL в случае успешной оплаты отправляется как и всегда.
Для непосредственного запуска iFrame, в страницу оплаты необходимо вставить скрипт:
<script type="text/javascript" src="https://auth.robokassa.ru/Merchant/bundle/robokassa_iframe.js"></script>
ВАЖНО! Разместить данный скрипт необходимо рядом с кнопкой оплаты (обычно это основной массив сайта в тэге <body>).
Для старта оплаты необходимо вызвать метод Robokassa.StartPayment(paymentParameters).
Вызов метода можно разместить, например, в элементарном onClick - обработчике нажатия на кнопку "Оплатить".Формируем запрос из привычных параметров.
Пример кнопки:
<script type="text/javascript" src="https://auth.robokassa.ru/Merchant/bundle/robokassa_iframe.js"></script> <input type="submit" value="Оплатить" onclick="Robokassa.StartPayment({ MerchantLogin: 'demo', OutSum: '11.00', Description: 'Оплата заказа в Тестовом магазине ROBOKASSA', shp_Item: '1', Culture: 'ru', Encoding: 'utf-8', SignatureValue: '3925b771e47d405cbcbb492daa936824'})">
При разработке мобильного приложения, которое будет использовать нашу платёжную форму через встроенный браузер, мы настоятельно рекомендуем использовать компонент WkWebView.
Подробнее про него можно прочитать здесь.
Important
Starting in iOS 8.0 and OS X 10.10, use WKWebView to add web content to your app. Do not use UIWebView or WebView.
Если же, Вы планируете разработку с компонентом UIWebView, то работоспособность нашей платёжной формы в вашем мобильном приложении мы гарантировать не можем.
ResultURL предназначен для получения Вашим сайтом оповещения об успешном платеже в автоматическом режиме.
В случае успешного проведения оплаты ROBOKASSA делает запрос на ResultURL (см. раздел Технические настройки) с указанием параметров OutSum, InvId и SignatureValue.
Данные всегда передаются в кодировке UTF-8.Описание параметров OutSum
Сумма, оплаченная покупателем (та самая сумма, которую Вы прислали в ROBOKASSA на страницу оплаты).
Номер счета в магазине.
EMail, указанный покупателем в процессе оплаты.
Комиссия Robokassa за совершение операции. Комиссия удерживается согласно тарифу клиента. Таким образом из суммы, оплаченной покупателем (параметр OutSum) вычитается комиссия Robokassa, и на расчетный счет поступит сумма OutSum минус Fee.
Для клиентов, подключенных как физическое лицо параметр Fee всегда =0.
Контрольная сумма - хэш, число в 16-ричной форме и в верхнем регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина.
База для расчёта контрольной суммы: OutSum:InvId:Пароль#2 — если Вы не передавали пользовательские параметры, и: OutSum:InvId:Пароль#2:[Пользовательские параметры].
Например: если Вы передали нам параметры с вот такими значениями:
Про Пароль#2 можно можно прочитать в разделе Технические настройки.
Ваш скрипт, находящийся по ResultURL, обязан проверить равенство полученной контрольной суммы и контрольной суммы, рассчитанной Вашим скриптом по параметрам, полученным от ROBOKASSA, а не по локальным данным магазина.
Если контрольные суммы совпали, то Ваш скрипт должен ответить ROBOKASSA, чтобы мы поняли, что Ваш скрипт работает правильно и повторное уведомление с нашей стороны не требуется. Результат должен содержать текст OK и параметр InvId. Например, для номера счёта 5 должен быть возвращён вот такой ответ: OK5.
Если контрольные суммы не совпали, то полученное оповещение некорректно, и ситуация требует разбора магазином.
Если в настройках в качестве метода отсылки данных был выбран E-Mail, то в случае успешного проведения оплаты ROBOKASSA отправит Вам письмо на электронный адрес, указанный в поле ResultURL, со всеми выше перечисленными параметрами.
Получена оплата:
Цена: OutSum
inv_id: InvId
Метод оплаты: PaymentMethod
[Пользовательские параметры]
С уважением,
Проект ROBOKASSA
В случае успешного исполнения платежа Покупатель сможет перейти по адресу, указанному Вами в Технических настройках, там же Вы указали метод (GET или POST).
Переход пользователя по данному адресу с корректными параметрами (правильной Контрольной суммой) означает, что оплата Вашего заказа успешно выполнена.
Однако для дополнительной защиты желательно, чтобы факт оплаты проверялся скриптом, исполняемым при переходе на ResultURL, или путем запроса XML-интерфейса получения состояния оплаты счета, и только при реальном наличии счета с номером InvId в БД магазина.
На самом деле, переход пользователя по ссылке SuccessURL – это формальность, которая нужна только для того, чтобы пользователь вернулся обратно к Вам и получил информацию о том, что он сделал всё правильно, и его заказ ждёт его там-то и там-то. Проводить подтверждение оплаты у себя по базе и все остальные действия, связанные с выдачей покупки, Вам нужно при получении уведомления на ResultURL, потому что именно на него ROBOKASSA передаёт подтверждающие данные об оплате в автоматическом режиме (т. е. в любом случае и без участия пользователя).
Параметры, передающиеся при переходе OutSumСумма, оплаченная покупателем (та самая, которую Вы прислали в ROBOKASSA, на страницу оплаты).
Номер счета в магазине.
Контрольная сумма - хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина.
База для расчёта контрольной суммы: OutSum:InvId:Пароль#1 – если Вы не передавали пользовательские параметры, и: OutSum:InvId:Пароль#1:[Пользовательские параметры].
Например: если Вы передали нам параметры с вот такими значениями:
Про Пароль#1 можно можно прочитать в разделе Технические настройки.
Контрольная сумма считается от значений, пришедших в запросе без каких-либо преобразований, округления и т. п. Это сделано для того, чтобы рассчитанное значение Контрольной суммы не зависело от способов округления, используемых магазином, форматов представления чисел, разделителей целой и дробной части и т. д.
Язык, использовавшийся при совершении оплаты. В соответствии с ISO 3166-1.
подробнее см. раздел Дополнительные пользовательские параметры
В случае отказа от исполнения платежа Покупатель перенаправляется по данному адресу.
Необходимо для того, чтобы Продавец мог, например, разблокировать заказанный товар на складе. При отказе от оплаты, магазину на FailURL методом, выбранным при регистрации, будут переданы параметры:
Параметры, передающиеся при отказе от оплаты OutSumСумма, оплаченная покупателем (та самая, которую Вы прислали в ROBOKASSA, на страницу оплаты).
Номер счета в магазине.
Язык, использовавшийся при совершении оплаты. В соответствии с ISO 3166-1.
Переход пользователя по данному адресу, строго говоря, не означает окончательного отказа Покупателя от оплаты, нажав кнопку «Back» в браузере он может вернуться на страницы ROBOKASSA. Поэтому в случае блокировки товара на складе под заказ, для его разблокирования желательно проверять факт отказа от платежа запросом запроса XML-интерфейса получения состояния оплаты счета, используя в запросе номер счета InvId имеющийся в БД магазина (Продавца).
Типовые ошибки интерфейса оплаты Код ошибки: 23"Тестовый платёж не может быть создан. У магазина отсутствуют настройки тестовых параметров."
Данная ошибка означает, что для попытки инициализации оплаты в тестовой среде у вас не заполнены необходимые пункты в блоке "Параметры проведения тестовых платежей" в закладке "Технические настройки".
"Магазин не активирован"
Ошибка возникает в двух случаях:
"Магазин не найден"
Ошибка возникает в том случае, когда в технических настройках на вашем сайте вы некорректно указали Идентификатор магазина. Найти его можно в разделе "Мои магазины" вашего ЛК, открыв нужный магазин. В закладке "Технические настройки" будет поле "Идентификатор магазина". Значение данного поля нужно скопировать и корректно прописать в настройках вашего сайта.
"Неверный параметр Signature"
Проверьте скрипт, отвечающий за инициализацию оплаты, а именно ту часть, которая формирует Signature по формуле, состоящей из переменных. Самые распространенные неточности, из-за которых может неверно считаться данный параметр:
ВАЖНО: Если вы используете тестовую среду ROBOKASSA, передавая параметр IsTest=1 или включив его галочкой в настройках вашего модуля/бота, то необходимо использовать ТОЛЬКО ТЕСТОВУЮ пару технических паролей (см. закладку "Технические настройки" в Карточке магазина).
"Неверный параметр счёта"
Проверьте правильность передаваемых как обязательных, так и необязательных параметров счета.
"Неверная сумма платежа"
Ошибка возникает по причине того, что при переадресации клиента на платежную страницу сервиса ROBOKASSA для выставления счета, вы не передаете нам сумму, на которую необходимо исполнить платеж. Либо передаете сумму равную 0.
"Время отведённое на оплату счёта истекло"
Ошибка показывает, что время отведённое на проведение платежа этим способом истекло.
Ознакомиться с имеющимися временными ограничениями по способам оплаты Вы можете здесь.
"Услуга рекуррентных платежей не разрешена магазину"
Функция проведения рекуррентных платежей сначала должна быть согласована и подключена для вашего магазина нашими менеджерами. В противном случае платежи с подобной надстройкой работать не будут.
"Неверные параметры для инициализации рекуррентного платежа"
Некорректные параметры указаны при инициализации рекуррентного платежа. Сверьтесь с соответствующим разделом нашей технической документации и проверьте настройки рекуррентных платежей у себя на сайте.
"Повторная оплата счета с тем же номером невозможна"
В момент формирования запроса на инициализацию оплаты вы передаете нам значение параметра InvId (номер заказа/счета), которое уже использовалось вами прежде. Этот параметр должен принимать с каждой переадресацией в сервис ROBOKASSA уникальное значение. Ошибка показывает, что один из клиентов уже оплатил данный номер заказа ранее, а сейчас вы переадресуете к нам другого плательщика, выставляя ему тот же номер счета. Поправьте момент с изменением значения параметра InvId.
"Ошибка на старте операции"
При инициализации оплаты в системе произошла ошибка, вследствие которой платеж был отменен, не стартовав. Просьба инициировать оплату еще раз. При неудаче обратитесь в нашу поддержку.
"Тестовый номер счета не может быть использован для проведения оплаты"
Не представляется возможным использовать один и тот же номер заказа (InvId) как в тестовой, так и в боевой среде. Со временем тестовые инвойсы удаляются, но в некоторый промежуток времени подобные попытки оплаты будут отменяться.
"Ошибка конвертации валюты"
В параметре OutSumCurrency передано недопустимое значение, отличное от USD, EUR и KZT.
"Внутренние ошибки сервиса"
В случае возникновения данных ошибок, просьба обратиться в поддержку нашего сервиса ROBOKASSA через раздел «Поддержка» вашего личного кабинета.
По этим ссылкам Вы можете скачать архивы с примерами реализации скрипта, на нескольких языках программирования:
Рассмотрим, какие параметры и переменные используются в скриптах и какие значения для них могут быть использованы. А также, что из всего этого нужно и для чего.
Обязательные параметрыMerchantLoginБез них ничего работать не будет!
Идентификатор магазина в ROBOKASSA, который Вы придумали при создании магазина.
Требуемая к получению сумма (буквально — стоимость заказа, сделанного клиентом). Формат представления — число, разделитель — точка, например: 123.45.
Сумма должна быть указана в рублях.
Но, если стоимость товаров у Вас на сайте указана, например, в долларах, то при выставлении счёта к оплате Вам необходимо указывать уже пересчитанную сумму из долларов в рубли. См. необязательный параметр OutSumCurrency.
Описание покупки, можно использовать только символы английского или русского алфавита, цифры и знаки препинания. Максимальная длина — 100 символов. Эта информация отображается в интерфейсе ROBOKASSA и в Электронной квитанции, которую мы выдаём клиенту после успешного платежа. Корректность отображения зависит от необязательного параметра Encoding (см. Необязательные параметры).
Контрольная сумма - хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. Рассчитывается по базе, содержащей следующие параметры, разделенные символом ':', с добавлением Пароль#1 — (этот пароль Вы придумали, на этапе заполнения раздела Технические настройки): MerchantLogin:OutSum:InvId:Пароль#1 — если параметр InvId был передан, и: MerchantLogin:OutSum::Пароль#1 — если параметр InvId передан не был.
Это очень важный параметр, который обеспечивает безопасность при прохождении платежа и целостность передаваемых данных. Корректное его составление гарантирует, что злоумышленник не сможет подделать какие-либо данные в операции оплаты.
Если Вы не планируете делать сложный скрипт или страницу оплаты, то можно сразу перейти к разделу Простейший магазин без формирования уникального номера счета.
IncCurrLabelПредлагаемый способ оплаты. Тот вариант оплаты, который Вы рекомендуете использовать своим покупателям (если не задано, то по умолчанию открывается оплата Банковской картой). Если параметр указан, то покупатель при переходе на сайт ROBOKASSA попадёт на страницу оплаты с выбранным способом оплаты.Например:
Пользователь может изменить его в процессе оплаты.
Доступные значения для параметра IncCurrLabel — Alias валют, Вы можете получить с использованием соответствующего интерфейса описанного в разделе: XML интерфейсы. Интерфейс получения списка валют.
Номер счета в магазине. Необязательный параметр, но мы настоятельно рекомендуем его использовать.
Значение этого параметра должно быть уникальным для каждой оплаты. Может принимать значения от 1 до 2147483647 (231-1). Если значение параметра пустое, или равно 0, или параметр вовсе не указан, то при создании операции оплаты ему автоматически будет присвоено уникальное значение.
Используйте данную возможность только в очень простых магазинах, где не требуется какого-либо контроля оплаты.
Если параметр передан, то он должен быть включён в расчёт контрольной суммы (SignatureValue)
Язык общения с клиентом (в соответствии с ISO 3166-1). Определяет на каком языке будет страница ROBOKASSA, на которую попадёт покупатель. Может принимать значения: en, ru.
Если параметр не передан, то используются региональные настройки браузера покупателя. Для значений отличных от ru или en используется английский язык.
Кодировка, в которой отображается страница ROBOKASSA. По умолчанию: Windows-1251. Этот же параметр влияет на корректность отображения описания покупки (Description) в интерфейсе ROBOKASSA, и на правильность передачи Дополнительных пользовательских параметров, если в их значениях присутствует язык отличный от английского.
Email покупателя автоматически подставляется в платёжную форму ROBOKASSA. Пользователь может изменить его в процессе оплаты.
Срок действия счета. Этот параметр необходим, чтобы запретить пользователю оплату позже указанной магазином даты при выставлении счета. Следует обратить внимание, что в некоторых случаях, если оплата производится в оффлайне, например через терминал или в салоне связи, то оплата может произойти и позже указанного срока действия счета.
Дата передаётся в формате, рекомендованном стандартом ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffffZZZZZ), где:
Способ указать валюту, в которой магазин выставляет стоимость заказа. Этот параметр нужен для того, чтобы избавить магазин от самостоятельного пересчета по курсу. Является дополнительным к обязательному параметру OutSum. Если этот параметр присутствует, то OutSum показывает полную сумму заказа, конвертированную из той валюты, которая указана в параметре OutSumCurrency, в рубли по курсу ЦБ на момент оплаты. Принимает значения: USD, EUR и KZT.
Передача этого параметра (Ip конечного пользователя) желательна для усиления безопасности, предотвращению фрода и противодействию мошенникам. Этот параметр пользователь передает при оплате. При расчете контрольной суммы UserIp ставится перед Пароль#1 (кроме использования параметра Receipt).
Если этот параметр передан, то он должен быть встроен в расчет контрольной суммы SignatureValue.
Они также относятся к необязательным параметрам, но несут совершенно другую смысловую нагрузку. Это такие параметры, которые ROBOKASSA никак не обрабатывает, но всегда возвращает магазину в ответных вызовах.
Если:
То при старте операции оплаты Вы можете передавать всю эту информацию.
При завершении операции оплаты, мы будем возвращать Вам эти дополнительные параметры. Формироваться они должны следующим образом:
Всегда начинаться с: Shp_; SHP_; shp_
Выглядеть они могут так: Shp_1=1;Shp_1=2 — или так: Shp_oplata=1;Shp_oplata=2 — или вот так: Shp_login=Vasya; Shp_name=Вася.
При получении уведомлений от 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), передавая обычные параметры и указывая номер счета, оплаченного на первом этапе.
ГОТОВЫЙ ПЛАТЕЖНЫЙ МОДУЛЬ ОТ НАШИХ ПАРТНЕРОВ
Воспользуйтесь готовым решением от нашего партнера «AINOX.RU» — это облачный платежный модуль для Robokassa с поддержкой рекуррентных платежей. С помощью Ainox вы можете запустить платежи по подписке за 15 минут, без программиста и даже без сайта.
Зарегистрируйтесь по этой ссылке и получите 30 дней пробного периода бесплатную поддержку и помощь в настройке «под ключ».
Этот параметр показывает, что выставление данного счета будет повторяющимся. Принимает значение Recurring = true.
Магазин передает это параметр в вызове, направляемом на URL https://auth.robokassa.ru/Merchant/Recurring и указывает в нем номер счета первого платежа в серии повторяющихся платежей. Кроме того, в этом вызове передаются обычные обязательные и необязательные параметры, со следующими исключениями:
Пример запроса с 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>
Если в работе вашего магазина(ов) имеется необходимость распределять поступающие платежи между несколькими вашими магазинами или магазинами партнёров, то необходимо сделать Сплитование (разделение) платежа.
Важно! Данная услуга доступна только по предварительному согласованию. Для её подключения создайте запрос через свой Личный кабинет.
В случае проведения платежа, который должен быть распределён между несколькими магазинами к стандартному запросу на проведение платежа добавляется параметр – Split
В этом параметре передается информация о магазинах, участвующих в платеже, и распределении суммы платежа по ним.
Информация о магазинах передается в виде списка через запятую:
Split=информация_о_мастер_магазине,информация_о_магазине_2,информация_о_магазине_3…
По каждому магазину передается три параметра:
Формат передачи информации по магазину:
идентификатор_магазина:сумма:номер_счета
Каждый Сплит платёж проводится от имени одного магазина - это магазин называется Мастер.
Информация об этом магазине обязательно должна присутствовать в параметрах сплитования, и находится на первом месте при их перечислении.
Идентификатор магазина в ROBOKASSA, который был придуман при создании магазина.
Передается в виде 123.45, с разделителем целой и дробной части “.” точка.
Суммы передаются для всех магазинов в платеже.
Если одному из магазинов не требуется проводить зачисление, его доля в этом платеже нулевая, то в качестве значения суммы передаётся 0.00
Важно! Общая сумма всех передаваемых значений сумм в сплите должна быть равна значению параметра OutSum
Целое число. Может принимать значения от 1 до 2147483647 (231-1). Значение этого параметра должно быть уникальным для каждой оплаты, каждого из магазинов. Если значение параметра равно 0, или параметр вовсе не указан, то при создании операции оплаты ему автоматически будет присвоено уникальное значение.
Если параметр номер счета отсутствует, то символ-разделитель “:” все равно должен быть указан.
Если в основном запросе на проведение платежа передаётся параметр InvId, то идентичное значение должно быть указано для Мастер магазина.
Примеры передачи данных
Split=master:225.50:12345,shop2:20.00:321,shop3:10.34:456
Split=master:225.50:12345,shop2:20.00:,shop3:10.34:
Пример использования параметра Split в запросе:
<?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 = "255.84"; // информация о сплите // information about split $Split = "demo:225.50:12345,shop2:20.00:321,shop3:10.34:456"; // формирование подписи // 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=Split value=$Split>". "<input type=submit value='Оплатить'>". "</form></html>"; ?>
В соответствии с требованием Закона РФ, все без исключения операции с использованием электронных средств платежа должны проходить через специализированную контрольно-кассовую технику, и данные о них должны передаваться через операторов фискальных данных в налоговую инспекцию в режиме реального времени.
Передача фискальных данных при использовании официальных виджетов и модулей оплаты:
Вам необходимо выполнить простые настройки модуля на стороне сайта. Это встроенная функция, после ее настройки вся необходимая информация для чека будет передаваться из карточек товара вашего интернет-магазина (актуально для официальных модулей для Битрикс24, InSales, WordPress WooCommerce, OpenCart, Joomla, VirtueMart, 1С-Битрикс).
WIX: товарная номенклатура передаётся по умолчанию, без каких-либо дополнительных настроек.
Amo CRM: необходимо выполнить настройку модуля во вкладке "Настройки платежа" и включить фискализацию чеков, после чего наименования товаров и услуг будут передаваться в чек из счёта, который будет создан в новой сделке.
МойСклад: необходимо выполнить настройку модуля во вкладке "Платежи" и включить фискализацию чеков. После этого наименования товаров и услуг будут передавать в чек из счёта, который будет создан во вкладке "Счета покупателям".
Передача номенклатуры при использовании виджетов и модулей оплаты сторонних разработчиков:
Если у вас используется готовая интеграция под платформу сайта от сторонних разработчиков, такая функция есть в настройках модуля/виджета - или отсутствует полностью, и ее невозможно будет добавить. Необходимо внимательно ознакомиться с настройками на стороне вашего сайта, либо уточнить информацию о настройке передачи номенклатуры у разработчиков данного модуля/виджета.
Передача номенклатуры в рамках «самописного» сайта:
Если вы разрабатываете сайт самостоятельно, то передача номенклатуры осуществляется посредством передачи дополнительного параметра в запросе на проведение платежа.
Обращаем Ваше внимание, что для решений Робочеки и Облачное в чеке не может быть более ста товарных позиций.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", "nomenclature_code": "04620034587217" } ] }
Параметр включается в контрольную подпись запроса (после номера счета магазина и после UserIp (Ip конечного пользователя)). Например: MerchantLogin:OutSum:InvId:Receipt:Пароль#1.
Внимание! Поле sum содержит полную стоимость за все единицы данного товара вместе, учитывая (если есть) скидки, бонусы и специальные/премиальные цены на отдельные единицы товара (например, третий товар за половину стоимости или за пять единиц товара скидка 12%).
Внимание! В связи с тем, что значение этого параметра может иметь большую длину, мы рекомендуем передавать запросы с этим параметром только методом POST, во избежание превышения максимальной длины строки запроса.
Важно! Согласно 54-ФЗ необязательно передавать номенклатуру до 1 февраля 2021 года, если к бизнесу применяются следующие системы налогообложения:
Это упрощает техническую подготовку проекта, поскольку не требует реализации параметра Receipt, однако не освобождает как от необходимости отчитываться перед налоговыми органами так и от обязанности использовать обновлённые ККТ.
Описание параметров snoСистема налогообложения.
Необязательное поле, если у организации имеется только один тип налогообложения.
Перечисление со значениями:
Массив данных о позициях чека.
Обязательное поле. Наименование товара. Строка, максимальная длина 64 символа. Если в наименовании товара Вы используете специальные символы, например кавычки, то их обязательно необходимо экранировать.
Обязательное поле. Полная сумма в рублях за все количество данного товара с учетом всех возможных скидок, бонусов и специальных цен.
Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков.
Обязательное поле. Количество/вес конкретной товарной позиции.
Десятичное число: целая часть не более 5 знаков, дробная часть не более 3 знаков.
Признак способа расчёта.
Возможные значения параметра:
Этот параметр необязательный. Если этот параметр не передан клиентом, то в чеке будет указано значение параметра по умолчанию из Личного кабинета, если же параметр передан клиентом, то именно эти значения параметра будут переданы в АТОЛ.
Признак предмета расчёта.
Возможные значения параметра:
Этот параметр необязательный. Если этот параметр не передан клиентом, то в чеке будет указано значение параметра из Личного кабинета, если же параметр передан клиентом, то именно это значение параметра будут переданы в АТОЛ.
Это поле устанавливает налоговую ставку в ККТ. Определяется для каждого вида товара по отдельности, но за все единицы конкретного товара вместе.
Допустимые значения:
Маркировка товара, передаётся в виде кода товара. Максимальная длина – 32 байта (32 символа).
Параметр является обязательным только для тех магазинов, которые продают товары подлежащие обязательной маркировке. В соответствии с распоряжением правительства РФ №792-р.
Код маркировки расположен на упаковке товара, рядом со штрих-кодом.
Подробное описание типов маркировки и принципа работы с ними находится здесь.
<?php // 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 = "550"; // invoice summ // receipt (JSON array -> urlencode) $receipt = "Your Urlencode Receipt"; $receipt_urlencode = urlencode($receipt); // build CRC value $crc = md5("$mrh_login:$out_summ:$inv_id:$receipt:$mrh_pass1"); // build URL $url = "https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=$mrh_login&". "OutSum=$out_summ&InvId=$inv_id&Description=$inv_desc&". "Receipt=$receipt_urlencode&SignatureValue=$crc"; // print URL if you need echo "<a href='/ru/$url'>Payment link</a>"; ?>
В связи с переходом на новый формат передачи фискальных данных в ФНС (формат 1.05), начиная с 01.07.2019 магазины, осуществляющие расчеты с признаками способа расчета «аванс», «предоплата», «предоплата 100%» обязаны после доставки товаров (оказания услуг) выдавать покупателю итоговый кассовый чек на общую сумму всех внесенных покупателем авансовых платежей (предоплат).
Для этого мы реализовали возможность сформировать второй кассовый чек, с признаком способа расчёта «полный расчёт».
ВАЖНО:
Для формирования второго чека необходимо сформировать запрос в формате 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", "nomenclature_code": "RU-123456-ABC1234567" } ], "client": { "email": "test@test.ru", "phone": "71234567890" }, "payments": [ { "type": 2, "sum": 100 } ], "vats": [ { "type": "none", "sum": 0 } ] }
Основные параметры запроса соответствуют параметрам первого фискального чека.
Помимо этого необходимо добавить дополнительные обязательные параметры:
MerchantIDИдентификатор магазина в ROBOKASSA, который Вы придумали при создании магазина
Идентификатор для второго чека, любое число (не должен совпадать с OriginId).
Значение только целое число.
Номер заказа магазина (InvId), по которому уже есть чек и для которого выбивается второй чек.
Значение только целое число.
Типа чека. Может принимать только одно значение "sell".
Адрес сайта, на котором осуществлена продажа. Значение строка.
Итоговая сумма чека в рублях.
Десятичное положительное число: целая часть не более 8 знаков, дробная часть не более 2 знаков.
Признак способа расчёта.
В качестве значения обязательно должно быть передано "full_payment" - Полный расчёт.
Данные о покупателе.
Cодержит любое из полей или все поля одновременно:
Тип и сумма платежа или чека.
Содержит:
Должен принимать значение:
«2» – предварительная оплата (зачет аванса и (или) предыдущих платежей).
Тип и сумма налога.
Содержит:
Допустимые значения:
«none» – без НДС;
«vat0» – НДС по ставке 0%;
«vat10» – НДС чека по ставке 10%;
«vat110» – НДС чека по расчетной ставке 10/110;
«vat20» – НДС чека по ставке 20%;
«vat120» – НДС чека по расчетной ставке 20/120.
Внимание! Все запросы отправляются только в кодировке UTF8
В каждом запросе необходимо произвести замену «+» на «-» и «/» на «_», прежде чем кодировать в base64.
и стираем на конце все знаки =, если имеются.
и стираем на конце все знаки =, если имеются.
Отправка должна быть методом POST на URL: https://ws.roboxchange.com/RoboFiscal/Receipt/Attach
ResultСode{ "ResultCode": "0", "ResultDescription": "ok", "OpKey": "A6739663-BA55-4FA1-8D5D-621FE863DB53-v4OKjovkFY" }
Статус получения данных от Клиента, может принимать значения:
Описание результата обработки чека.
Необязательное поле.
Для того чтобы узнать результат формирования фискального чека, необходимо создать запрос вида:
Параметры запроса MerchantIdВнимание! Все запросы отправляются только в кодировке UTF8
Идентификатор магазина, который Вы придумали при создании магазина.
Номер заказа магазина (InvId).
Рассчитывается по базе: <все поля Json запроса закодированные в BASE64URL ><Пароль#1>— (этот пароль Вы придумали, на этапе заполнения раздела Технические настройки.
и стираем на конце все знаки =, если имеются.
и кодируем это все в md5:
Теперь этот md5 снова в base64:
и стираем на конце все знаки =, если имеются.
https://ws.roboxchange.com/RoboFiscal/Receipt/Status
Описание возвращаемых параметров Code{ "Code": "0", "Description": "ok", "Statuses": [ { "Id": null, "Code": "2", "Description": "Done", "FnNumber": "9289540300624259", "FiscalDocumentNumber": "178744", "FiscalDocumentAttribute": "4279510152", "FiscalDate": null }, { "Id": null, "Code": "2", "Description": "Done", "FnNumber": "9289420300621979", "FiscalDocumentNumber": "186589", "FiscalDocumentAttribute": "4237315093", "FiscalDate": null } ] }
Статус регистрации чека. Может принимать значения:
Описание результата формирования чека.
Набор фискальных данных, полученный от ФНС.
Содержит:
Сервис SMS-сообщений поможет быстро и оперативно получать информацию о поступлении оплаты в Ваш магазин, а также передавать информацию для Ваших клиентов – сообщать о порядке прохождения и формирования заказа. После каждой покупки, совершённой в Вашем магазине, ROBOKASSA предоставляет возможность отправить 3 SMS-сообщения покупателю.
Для подключения сервиса SMS-рассылок информирования об оплате заказа в магазине следует:
Для подключения сервиса SMS-рассылок для информирования покупателей следует:
К сервису отправки SMS подключается каждый магазин по отдельности (если их несколько).Стоимость услуги можно посмотреть здесь ("Тарифы" - "Комиссии Компании за подключение и использование Функции «SMS-рассылка»").
Параметры запроса loginSMS-сообщения могут быть отправлены только в том случае, если у Вас на балансе хватает денежных средств для осуществления отправки.
строка, содержащая Ваш Идентификатор магазина в Личном кабинете клиента на сайте ROBOKASSA.
строка, содержащая номер телефона в международном формате без символа «+» (79051234567).
строка в кодировке UTF-8 длиной до 128 символов, содержащая текст отправляемого SMS.
строка, содержащая электронную подпись подпись — хеш, рассчитываемый при отправке 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!
целочисленное значение, указывающее на количество SMS, доступное после этого запроса (данное значение заполняется только в случае успешного исполнения запроса).
целочисленное значение кода ошибки обработки (0 – успешная обработка).
текстовое описание возникшей в процессе обработки запроса ошибки.
Запрос можно считать успешно исполненным если поле result = true и errorCode = 0.
Коды ошибок, специфичные для этого интерфейса
Уведомления предназначены для информирования владельца магазина о поступившей оплате за заказ.
Для подключения Уведомлений перейдите в
Подпишитесь на Уведомления в Telegram или браузере.
и получайте мгновенное Уведомление об оплаченном заказе:
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, в противном случае код ошибки. Если во время выполнения запроса произошла ошибка, то в ответе не будет содержаться дополнительных элементов с запрашиваемыми данными.
Текстовое описание результата выполнения запроса.
Общие коды ошибок, которые могут возвращаться всеми запросами:
Возвращает список валют, доступных для оплаты заказов указанного магазина/сайта.
Используется для указания значений параметра IncCurrLabel, также используется для отображения доступных вариантов оплаты непосредственно на Вашем сайте, если Вы желаете дать больше информации своим клиентам.
Название методаGetCurrencies
Идентификатор магазина, строка. Подробнее см. "Создание Магазина".
Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.).
Возможные значения:
Описание возвращаемых данных Groups<?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>
Группы валют; могут использоваться для более удобного отображения валют в пользовательском интерфейсе.
Код группы.
Текстовое описание группы.
Валюты, входящие в группу.
Код валюты.
Наименование валюты.
Нет.
Возвращает список способов оплаты, доступных для оплаты заказов указанного магазина/сайта.
Используется для отображения доступных способов оплаты непосредственно на Вашем сайте, если Вы желаете дать больше информации своим клиентам. Основное отличие от Списка валют – здесь не показывается детальная информация по всем вариантам оплаты, здесь отображаются группы/методы оплаты.
GetPaymentMethods
Идентификатор магазина, строка. Подробнее см. Создание Магазина.
Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.).
Возможные значения:
Описание возвращаемых данных Methods<?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>
Доступные способы оплаты.
Код способа оплаты.
Текстовое описание способа оплаты.
Нет.
Позволяет рассчитать сумму, которую должен будет заплатить покупатель, с учётом комиссий ROBOKASSA (согласно тарифам) и тех систем, через которые покупатель решил совершать оплату заказа. Может быть использован как для Ваших внутренних расчётов, так и для дополнительного информирования клиентов на Вашем сайте.
Только для физических лиц.Название метода
GetRates
Идентификатор магазина, строка. Подробнее см. Создание Магазина.
Код валюты, для которой нужно произвести расчет суммы к оплате. Если оставить этот параметр пустым, расчет будет произведен для всех доступных валют.
Сумма, которую хочет получить магазин. Исходя из этой суммы и текущих курсов валют для каждой валюты/варианта оплаты в списке будет рассчитана сумма, которую должен будет заплатить клиент.
Язык для локализованных значений в ответе (названий валют, методов оплаты и т. д.).
Возможные значения:
Описание возвращаемых данных Groups<?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>
Группы валют. Могут использоваться для более удобного отображения валют в пользовательском интерфейсе.
Код группы.
Текстовое описание группы.
Валюты, входящие в группу.
Код валюты.
Наименование валюты.
Сумма, которую должен будет заплатить пользователь с учетом комиссии сервиса.
Нет.
Позволяет рассчитать сумму к получению, исходя из текущих курсов ROBOKASSA, по сумме, которую заплатит пользователь.
Только для физических лиц.Название метода
CalcOutSumm
Идентификатор магазина, строка. Подробнее см. Создание Магазина.
Код валюты, для которой нужно произвести расчет суммы к оплате.
Сумма, которую должен будет заплатить пользователь.
Описание возвращаемых данных OutSum<?xml version="1.0" encoding="UTF-8"?> <CalcSummsResponseData xmlns="http://auth.robokassa.ru/Merchant/WebService/"> <Result> <Code>integer</Code> </Result> <OutSum>decimal</OutSum> </CalcSummsResponseData>
Сумма к получению интернет магазином.
Нет.
Возвращает детальную информацию о текущем состоянии и реквизитах оплаты.
Необходимо помнить, что операция инициируется не в момент ухода пользователя на оплату, а позже – после подтверждения его платежных реквизитов, т.е. Вы вполне можете не находить операцию, которая по Вашему мнению уже должна начаться.
OpState
Идентификатор магазина, строка. Подробнее см. Создание Магазина.
Номер счета магазина, целое число.
Контрольная сумма – хэш, число в 16-ричной форме и любом регистре (0-9, A-F), рассчитанное методом указанным в Технических настройках магазина. Базой для расчёта служат все обязательные параметры, разделенные символом «:», с добавлением Пароль#2, (указывается при заполнении раздела Технических настроек) т. е.: MerchantLogin:InvoiceID:Пароль#2
Пример запроса методом HTTP GET
Описание возвращаемых данных State<?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>
Текущее состояние оплаты.
Код текущего состояния операции оплаты счета. Возможные значения:
От пользователя ещё не поступила оплата по выставленному ему счёту или платёжная система, через которую пользователь совершает оплату, ещё не подтвердила факт оплаты.
Оплата не была произведена. Покупатель отказался от оплаты или не совершил платеж, и операция отменилась по истечении времени ожидания. Либо платёж был совершён после истечения времени ожидания. В случае возникновения спорных моментов по запросу от продавца или покупателя, операция будет перепроверена службой поддержки, и в зависимости от результата может быть переведена в другое состояние.
Операция перешла в состояние зачисления средств на баланс продавца. В этом статусе платёж может задержаться на некоторое время. Если платёж «висит» в этом состоянии уже долго (более 20 минут), это значит, что возникла проблема с зачислением средств продавцу.
Полученные от покупателя средства возвращены на его счёт (кошелёк), с которого совершалась оплата.
Внештатная остановка. Произошла внештатная ситуация в процессе совершения операции (недоступны платежные интерфейсы в системе, из которой/в которую совершался платёж и т.д.) Или операция была приостановлена системой безопасности. Операции, находящиеся в этом состоянии, разбираются нашей службой поддержки в ручном режиме.
Платёж проведён успешно, деньги зачислены на баланс продавца, уведомление об успешном платеже отправлено продавцу.
Дата/время ответа на запрос.
Дата/время последнего изменения состояния операции.
Информация об операции оплаты счета.
Валюта, которой платил клиент.
Сумма, оплаченная клиентом, в единицах валюты IncCurrLabel.
Номер счёта (кошелёк, номер банковской карты) клиента в платежной системе, через которую производилась оплата.
Способ оплаты, выбранный клиентом.
Код способа оплаты.
Текстовое описание.
Валюта, в которой получает средства магазин.
Сумма, зачисленная на счет магазина, в единицах валюты OutCurrLabel.
Дата/время передаются в формате, рекомендованном стандартом ISO 8601 (YYYY-MM-DDThh:mm:ss.fffffff;ZZZZZ), где:
Например: 2010-02-11T16:07:11.6973153+03:00
С помощью XML-интерфейса расчёта суммы к получению, можно заплатить комиссию ROBOKASSA за покупателя.
Только для физических лиц.
Рассмотрим пример.
Пусть товар или услуга на Вашем сайте стоит 100 рублей. Если Вы переадресуете покупателя на страницу оплаты ROBOKASSA с этой суммой, то наша система прибавит к 100 рублям свою комиссию, для примера – 5%. В результате покупателю будет выставлен счёт на 105 рублей. Теперь воспользуемся данным XML интерфейсом и сделаем так, чтобы покупатель заплатил 100 рублей, а не 105, то есть, чтобы Ваш магазин компенсировал ROBOKASSA 5% комиссии.
Расчёт должен выполняться до переадресации клиента.
Если товар или услуга на Вашем сайте стоит 100 рублей, то сначала Вы, с помощью XML интерфейса, рассчитываете сумму, которую получит Ваш магазин, если покупатель заплатит ровно 100 рублей выбранным способом оплаты. Пример запроса для магазина:
ROBOKASSA возвращает Вам рассчитанную сумму, пусть это будет 95.24 рублей.
Обратите внимание, что расчёт будет правильным только для выбранного способа оплаты!
Теперь Вы можете сформировать запрос на инициализацию оплаты и указать в качестве параметра OutSum значение 95.24, а в качестве IncCurrLabel – $inccurrlabel.
Не забудьте, что в запросе на инициализацию оплаты необходимо указывать параметр IncCurrLabel с той же меткой валюты, которую Вы использовали при расчёте суммы.
Такой магазин не может каким-либо способом контролировать процесс получения платежей и Вам, скорее всего, придется в ручном режиме проставлять статусы оплаты заказов в магазине и отгружать товар покупателям.
Основная схема работы магазина:
В разделе Технические настройки необходимо заполнить поля:
Для такого магазина и скрипт необходим самый простой. В принципе необходим даже не скрипт, а ссылка для перехода на совершение оплаты.
Для работы Вам понадобится самый простой текстовый редактор, например - Блокнот.
Рассмотрим процедуру создания такой ссылки по шагам:
Заменим [значение] соответствующими данными, (подробнее можно почитать тут).
Например, для исходных данных:
MerchantLogin = demo
(идентификатор Вашего магазина из раздела Технические настройки)
OutSum = 11
(cтоимость товара у Вас на сайте, рубли)
Description = Покупка в демо магазине
(описание покупки)
В результате получаем ссылку:
В полученной ссылке отсутствует только последнее значение – SignatureValue. Его необходимо вычислить.
Строка данных, от которой его считают выглядит так:
MerchantLogin:OutSum::Пароль #1
– подставляем в неё соответствующие значения и получаем:
demo:11::[Пароль #1]
[Пароль #1] – это пароль, придуманный Вами при заполнении раздела Технические настройки.
Обратите внимание,что обязательный параметр InvId присутствует в подсчете SignatureValue, хотя и с пустым значением.
Для вычисления Контрольной суммы, SignatureValue, по алгоритму MD5 можно использовать один из on-line калькуляторов, например,
http://www.codenet.ru/services/md5/ или подобный.
Собираем готовую ссылку для размещения на Вашем сайте:
(По этой ссылке Вы можете совершить настоящий платёж на 11 рублей в нашем Демонстрационном магазине.)
В результате всех этих действий Вы получите ссылку для размещения на своём сайте без какого-либо дополнительного программирования. И начинайте принимать платежи.
Схема работы магазина:
Получена оплата:
Цена: стоимость заказа
inv_id: номер заказа
Метод оплаты: метод, которым был оплачен заказ
shp_...
С уважением,
Проект ROBOKASSA
В разделе Технические настройки следует прописать:
Для такого магазина необходим несложный скрипт.
Для работы Вам понадобится самый простой текстовый редактор, например - Блокнот.
Рассмотрим процедуру создания такой ссылки по шагам.
Воспользуемся шаблоном запроса для перехода на оплату.
В работе рекомендуется использовать самый простой текстовый редактор – Блокнот.
Получаем ссылку вида:
В результате всех этих действий Вы получите ссылку для размещения на своём сайте, без какого-либо дополнительного программирования. И можете начинать принимать платежи.
Использование всех возможностей ROBOKASSA, таких как Дополнительные пользовательские параметры и XML-интерфейсы, позволит Вам настроить максимально глубокую интеграцию между нашей системой и Вашим интернет-магазином. Это позволит обеспечить большую гибкость в использовании ROBOKASSA, и позволит Вам обслуживать своих клиентов на качественно новом уровне.
XML-интерфейсы позволяют предварительно получать курсы валют ROBOKASSA и список принимаемых валют, рассчитывать как сумму к получению магазином, так и сумму к оплате для покупателя. Что значительно расширяет Ваши возможности по построению удобного пользовательского интерфейса Вашего сайта.
Также Вы можете в любой момент времени проверить состояние оплаты заказа. Это даст Вам большую стабильность и повышенную безопасность. К примеру, Ваша система может перед автоматической выдачей товара проверять состояние оплаты заказа непосредственно у ROBOKASSA.
А передача Дополнительных пользовательских параметров, даёт Вам возможность настроить работу своего сайта с максимальным комфортом для Ваших клиентов и сотрудников. Так использование этих параметров позволит Вам распределить денежные потоки внутри своего ресурса относительно тех вариантов услуг или товаров, которые Вы продаёте.
Ещё один вариант использования этих параметров – это дополнительная идентификация Ваших клиентов, что очень часто бывает необходимо для корректного зачисления платежа.
Если Вы хотите, чтобы клиент мог оплатить счет только после проверки заказа менеджером и согласования с клиентом комплекта поставки, а также если Вы не имеете сайта, а работаете, например, по телефону, Вам очень сложно разобраться в технических деталях подключения и не требуется программист – Вам необходимо использовать следующий вариант работы. В Личном кабинете Вам доступен раздел «Выставление счетов», который представляет собой простой и понятный интерфейс по созданию письма клиенту со ссылкой на оплату конкретного заказа, проверенного Вашим менеджером и согласованного с клиентом. Для реализации такого механизма работы с ROBOKASSA Вам необходимо:
Зарегистрироваться на нашем сайте www.robokassa.ru.
После создания магазина, в разделе Технические настройки нужно прописать два пароля (обязательное условие).
В полях ResultURL нужно выбрать метод отсылки данных E-Mail и указать электронный почтовый адрес, на который Вы планируете получать уведомления об успешных платежах, для дальнейшей обработки их Вашими менеджерами.
Больше никаких дополнительных настроек не требуется, при условии, что Вы планируете работать только в ручном режиме.
Если у Вас на сайте товары представлены в единственном экземпляре, и при формировании заказа товар резервируется под конкретного покупателя на какой-то промежуток времени, то Вам необходимо учесть следующие моменты:
Если говорить более подробно, то:
Есть ещё одна категория ситуаций, на которую следует обратить внимание – оплату пользователь произвёл, но либо после истечения времени ожидания (обычно электронными валютами), либо система, через которую проводилась оплата, не прислала нам подтверждения этой оплаты, и у нас она отменилась по истечение срока ожидания, либо платёж был совершён с ошибкой, и требуется дополнительная идентификация и корректировка платежа в ручном режиме.
После чего клиент сообщает, что он оплатил, но ничего не получил. И начинает искать свои деньги и товар.
Это может произойти в тот же день, спустя несколько часов, или спустя несколько месяцев.
Если оплата действительно подтверждена, ROBOKASSA предпримет все необходимые действия, завершит платёж и отправит Вам оповещение об этом. Соответственно произойти это может спустя продолжительное количество времени. Обычно, не более суток, но иногда задержка может быть существенной.
Тестовый режим предназначен для отладки взаимодействия между магазином и сервисом ROBOKASSA и особенно полезен для магазина, который еще не был активирован.
(Тестовый режим так же может быть использован и после активации магазина)
Тестовая среда представляет из себя интерфейс «платёжных страниц» ROBOKASSA, но без возможности провести оплату. Она позволяет отладить процесс оплаты.
Тестовая среда облегчает подключение магазинов к интерфейсам сервиса ROBOKASSA. Она позволяет получать детальное описание ошибок, возникающих при проверке передаваемых параметров, имитировать получение различных состояний операции без необходимости проведения реального платежа.
Для работы в тестовом режиме обязателен параметр IsTest.
Внимание! Для работы в тестовом режиме используется специальный тестовый набор паролей, не совпадающих с основными рабочими паролями Вашего магазина. Они прописываются в специальном блоке в Технических настройках Вашего магазина. Это делается для обеспечения безопасности Вашего интернет-магазина, чтобы злоумышленник не имел возможности «обмануть» Ваш интернет-магазин.
Для работы в тестовом режиме магазину необходим дополнительный набор паролей, которые не должны совпадать с Пароль #1 и Пароль #2. Они прописываются в специальном разделе Технических настроек магазина. Там же выбирается Алгоритм расчёта хэша для тестовых платежей. Алгоритм расчета контрольной суммы для тестового режима должен совпадать с рабочим.
Для того, что бы со стороны магазина инициировать тестовую операцию оплаты, в скрипт к остальным параметрам необходимо добавить параметр IsTest со значением 1.
Если данный параметр вообще отсутствует, или в качестве значения параметра IsTest передан 0, или значение параметра пусто, то такой запрос не считается тестовым и происходит инициализация обычной операции оплаты.
Рассмотрим подробно тестирование оплаты через свой магазин с помощью модифицированного скрипта:
Здесь уже заменены [значение] соответствующими данными, (подробнее можно почитать тут), следует проделать аналогичные шаги для Вашего тестируемого магазина:
MerchantLogin = Test1999
(идентификатор магазина из раздела Технические настройки);
Pass1 = Пароль#1
(Пароль#1 из тестовых настроек);
InvId = 678678
(номер счета);
OutSum = 100
(cтоимость товара, рубли);
Description = Товары для животных
(описание покупки);
IsTest = 1
(тестовый параметр, указатель на тестовую оплату);
После того как Вы нажали кнопку «Оплатить» на странице Вашего Личного кабинета, произойдет переход на страницу тестовой оплаты сайта ROBOKASSA.
Предложенный способ оплаты можно изменить. Кликнув по одному из предложенный внизу страницы вариантов, или открыть полный список, кликнув по ссылке "Показать все способы оплаты".
Выбрав любой другой. Например:
После того, как Вы нажмёте кнопку «Оплатить», Вы попадёте на специальную страницу тестовой оплаты где можно выбрать один из двух возможных вариантов завершения платежа: "Успешная оплата" или "Неудачная оплата".
Пример успешно прошедшей тестовой оплаты.
При этом на Ваш Result URL будет отправлено уведомление об успешно прошедшей оплате.
Пример неуспешной тестовой оплаты.
Обратите внимание, что тестовые оплаты не отображаются в поиске операций в Личном кабинете клиента.
<? $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>"; ?>
Все приведённые примеры предполагают, что в Технических настройках магазина в качестве Алгоритма расчёта хэша используется MD5.
Скачать архив с примерами реализации кода, можно здесь.
# 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>";
# 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; }
# 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; }
Скачать архив с примерами реализации кода, можно здесь.
// 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>";
// 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)
// 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";
Скачать архив с примерами реализации кода, можно здесь.
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, sOutSum, nInvId, 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; } }
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; } }
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; } }
Для разъяснения некоторых вопросов рекомендуем ознакомиться с документом по ссылке.