Robokassa apple pay не работает

Содержание
  1. ROBOKASSA. Описание интерфейсов
  2. Общее описание сервиса
  3. Основные шаги по созданию и активации магазина
  4. Регистрация и активация в системе ROBOKASSA
  5. Регистрация нового клиента
  6. Авторизация и Заполнение основных регистрационных данных
  7. Прочие регистрационные данные
  8. Создание магазина
  9. Технические настройки
  10. Активация
  11. Готовое решение для оплаты на сайте
  12. Виджеты и модули оплаты
  13. Официальные модули ROBOKASSA
  14. AMO CRM
  15. Виджеты и модули оплаты сторонних разработчиков
  16. Демонстрационные магазины
  17. Оплата заданной суммы
  18. Оплата произвольной суммы
  19. Оплата с помощью iFrame
  20. Интерфейс оплаты
  21. Код кассы с одной кнопкой «Оплатить»
  22. Оплата произвольной суммы
  23. Пример кода с использованием всех параметров
  24. Варианты кнопок и форм
  25. Варианты кнопки оплаты
  26. Варианты формы со вводом суммы
  27. iFrame
  28. Рекомендации для разработчиков приложений под iOS
  29. Оповещение об оплате на ResultURL
  30. Переадресация пользователя при успешной оплате на SuccessURL
  31. Переадресация пользователя при отказе от оплаты на FailURL
  32. Описание параметров скрипта (модуля) ROBOKASSA
  33. Описание переменных, параметров и значений
  34. Дополнительные пользовательские параметры
  35. Периодические платежи
  36. Сплитование (разделение) платежей
  37. Фискализация для клиентов Robokassa.
  38. Формирование второго чека
  39. Последовательность формирования запроса в BASE64URL для второго чека
  40. Ответ на запрос создания чека
  41. Получение статуса чека
  42. Сервис отправки SMS
  43. Пример запроса методом HTTP GET
  44. Уведомления
  45. XML интерфейсы
  46. Общая информация
  47. Общие коды ошибок
  48. Интерфейс получения списка валют
  49. Формат ответа для запросов HTTP GET/POST
  50. Интерфейс получения списка доступных способов оплаты
  51. Формат ответа для запросов HTTP GET/POST
  52. Интерфейс получения состояния оплаты счета
  53. Формат ответа для запросов HTTP GET/POST
  54. Формат данных типа дата/время
  55. Виды магазинов
  56. Простейший магазин без формирования уникального номера счета
  57. Магазин формирующий уникальный номер счета
  58. Магазин с применением всех интерфейсов
  59. Ручная обработка заказов
  60. Некоторые особенности, которые необходимо учитывать при отправке пользователя на совершение оплаты.
  61. Работа в тестовом режиме. Отладка, проверка, настройка.
  62. Интерфейс оплаты
  63. Инициализация тестовой оплаты через магазин
  64. Процесс тестовой оплаты
  65. Пример кода на PHP с параметром IsTest
  66. Примеры
  67. Формирование URL переадресации пользователя на оплату
  68. Получение уведомления об исполнении операции (ResultURL)
  69. Проверка параметров в скрипте завершения операции (SuccessURL)
  70. Формирование URL переадресации пользователя на оплату
  71. Получение уведомления об исполнении операции (ResultURL)
  72. Проверка параметров в скрипте завершения операции (SuccessURL)
  73. Форма оплаты с вводом произвольной суммы и номенклатурой
  74. ASP.NET
  75. Формирование URL переадресации пользователя на оплату
  76. Получение уведомления об исполнении операции (ResultURL)
  77. Проверка параметров в скрипте завершения операции (SuccessURL)
  78. Требования к сайту магазина со стороны платёжных систем
  79. Требования к сайту магазина со стороны платёжной системы WebMoney
  80. Требования к магазину от GooglePay
  81. Рекомендации по бухгалтерскому учету

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Логин — это персональный Идентификатор конкретного сотрудника, имеющего доступ к Вашему Личному кабинету клиента сервиса 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.

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

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

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

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

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

Активация

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

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

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

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

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

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

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

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

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

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

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

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

Все наши официальные модули также доступны для скачивания на платформе GitHub.

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

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

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

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

Официальный модуль приема платежей Robokassa для WordPress WooCommerce Subscriptions с поддержкой периодических (рекуррентных) платежей. Robokassa — оплата WordPress WooCommerce Subscriptions

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

Официальный модуль приема платежей Robokassa для Drupal 8 Commerce 2.x. Robokassa — оплата Drupal

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

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

Официальный модуль приема платежей Robokassa для сервиса WIX. Robokassa — оплата WIX

Официальный модуль приема платежей Robokassa для СRM Мой Склад. Robokassa — оплата Мой Склад

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

Официальный модуль приема платежей Robokassa для MODX Revolution Minishop2.
Robokassa — оплата MODX Revolution Minishop2

AMO CRM

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

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

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

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

Встроенный модуль приема платежей Robokassa Битрикс24 — не требует платного тарифа.

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

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

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

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

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

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

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

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

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

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

Модуль приема платежей Robokassa для АвтоВебОфис. 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 для 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 для WordPress от разработчика Mofsy. Robokassa — оплата WordPress Mofsy

Модуль приема платежей Robokassa для Платформа OpenMall. Robokassa — оплата Платформа OpenMall

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

Модуль приема пожертвований через Robokassa Приход.ру. Robokassa – прием пожертвований

Модуль для приема платежей Robokassa для сервиса для автоматизации инфобизнеса с поддержкой периодических (рекуррентных) платежей

Модуль приема платежей 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 для генератора ботов BotMother. Robokassa — оплата BotMother

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


Модуль приема платежей Robokassa для платформы онлайн-обучения СORE. Robokassa — оплата CORE

Модуль приема платежей Robokassa для Setup.Ru. Robokassa — оплата Setup.Ru

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

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

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

Модуль приема платежей Robokassa для ПланФакт. Robokassa — оплата ПланФакт

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

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

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

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

Корзина покупок
Кол-во (шт.) Цена (руб.) Сумма (руб.)
Техническая документация по ROBOKASSA 1 6,00 6,00
Техническая документация по Robo.market 1 5,00 5,00
11,00

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

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

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

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

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

Читайте также:  Наушники беспроводные apple airpods pro копия

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

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

Оплата с помощью iFrame

В случае, если нужно предоставить покупателям возможность проводить оплату непосредственно на сайте магазина, можно использовать iFrame (дизайн кнопки задаётся магазином):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

iFrame

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

Во все наши официальные модули уже интегрирована поддержка iFrame.

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

Важное уточнение! При работе через iFrame перенаправление покупателя на Success URL после совершения оплаты или на Fail URL при отказе от оплаты не происходит поскольку покупатель не уходит с сайта продавца, а всё время остаётся на нём. Уведомление магазину на Result URL в случае успешной оплаты отправляется как и всегда.

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

ВАЖНО! Разместить данный скрипт необходимо рядом с кнопкой оплаты (обычно это основной массив сайта в тэге ).

Для старта оплаты необходимо вызвать метод Robokassa.StartPayment(paymentParameters).
Вызов метода можно разместить, например, в элементарном onClick — обработчике нажатия на кнопку «Оплатить».

Формируем запрос из привычных параметров.

Рекомендации для разработчиков приложений под iOS

При разработке мобильного приложения, которое будет использовать нашу платёжную форму через встроенный браузер, мы настоятельно рекомендуем использовать компонент 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

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

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

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

ВНИМАНИЕ! В случае, если вы используете фильтрацию входящих запросов, не забудьте прописать IP-адреса Робокассы в white-лист вашего сервера
185.59.216.0/24 (185.59.216.1 — 185.59.216.254)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

» Тестовый платёж не может быть создан. У магазина отсутствуют настройки тестовых параметров. «

Данная ошибка означает, что для попытки инициализации оплаты в тестовой среде у вас не заполнены необходимые пункты в блоке «Параметры проведения тестовых платежей» в закладке «Технические настройки».

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

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

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

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

  1. Используется некорректный Идентификатор магазина (MerchantLogin);
  2. Используется некорректный Пароль 1 (MerchantPass1);
  3. Используются дополнительные пользовательские параметры (shp_), которые добавлены в программный код кассы, но не занесены в формулу подсчета, или наоборот, в формуле подсчета они почему-то указаны, а в коде нет. Если shp_ используются, то они должны быть переданы в алфавитном порядке как в параметрах на оплату, так и в формуле подсчета Signature.

ВАЖНО: Если вы используете тестовую среду ROBOKASSA, передавая параметр IsTest=1 или включив его галочкой в настройках вашего модуля/бота, то необходимо использовать ТОЛЬКО ТЕСТОВУЮ пару технических паролей (см. закладку «Технические настройки» в Карточке магазина).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Значение этого параметра должно быть уникальным для каждой оплаты. Может принимать значения от 1 до 2147483647 (2 31 -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), где:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Когда будет treid in apple

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

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

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

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

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

Важно! Данная услуга доступна только по предварительному согласованию. Для её подключения создайте запрос через свой Личный кабинет.

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

ГОТОВЫЙ ПЛАТЕЖНЫЙ МОДУЛЬ ОТ НАШИХ ПАРТНЕРОВ
Воспользуйтесь готовым решением от нашего партнера «AINOX.RU» — это облачный платежный модуль для Robokassa с поддержкой рекуррентных платежей. С помощью Ainox вы можете запустить платежи по подписке за 15 минут, без программиста и даже без сайта.

Зарегистрируйтесь по этой ссылке и получите 30 дней пробного периода бесплатную поддержку и помощь в настройке «под ключ».

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

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

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

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

Сплитование (разделение) платежей

Если в работе вашего магазина(ов) имеется необходимость распределять поступающие платежи между несколькими вашими магазинами или магазинами партнёров, то необходимо сделать Сплитование (разделение) платежа .

Важно! Данная услуга доступна только по предварительному согласованию. Для её подключения создайте запрос через свой Личный кабинет.

В случае проведения платежа, который должен быть распределён между несколькими магазинами к стандартному запросу на проведение платежа добавляется параметр – Split

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

Информация о магазинах передается в виде списка через запятую:

По каждому магазину передается три параметра:

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

Формат передачи информации по магазину:

идентификатор_магазина:сумма:номер_счета

Каждый Сплит платёж проводится от имени одного магазина — это магазин называется Мастер.
Информация об этом магазине обязательно должна присутствовать в параметрах сплитования, и находится на первом месте при их перечислении.

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

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

Передается в виде 123.45, с разделителем целой и дробной части “.” точка.
Суммы передаются для всех магазинов в платеже.
Если одному из магазинов не требуется проводить зачисление, его доля в этом платеже нулевая, то в качестве значения суммы передаётся 0.00

Важно! Общая сумма всех передаваемых значений сумм в сплите должна быть равна значению параметра OutSum

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

Если параметр номер счета отсутствует, то символ-разделитель “:” все равно должен быть указан.

Если в основном запросе на проведение платежа передаётся параметр InvId, то идентичное значение должно быть указано для Мастер магазина.

Примеры передачи данных

  1. С передачей номера счёта :
  • Идентификатор мастер магазина: master , сумма мастер магазина : 225.50, номер счета мастер магазина : 12345;
  • Идентификатор магазина 2: shop 2, сумма: 20.00, номер счета: 321;
  • Идентификатор магазина 3: shop 3, сумма: 10.34, номер счета: 456.
  1. Без передачи номера счёта:

Split= master :225.50:12345,shop2:20.00:,shop3:10.34:

  • Идентификатор мастер магазина : master , сумма мастер магазина : 225.50, номер счета мастер магазина : 12345;
  • Идентификатор магазина 2: shop2, сумма: 20.00, номер счета не указан;
  • Идентификатор магазина 3: shop3, сумма: 10.34, номер счета не указан.

Пример использования параметра Split в запросе:

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

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

Передача фискальных данных при использовании официальных виджетов и модулей оплаты:

Вам необходимо выполнить простые настройки модуля на стороне сайта. Это встроенная функция, после ее настройки вся необходимая информация для чека будет передаваться из карточек товара вашего интернет-магазина (актуально для официальных модулей для Битрикс24, InSales, WordPress WooCommerce, OpenCart, Joomla, VirtueMart, 1С-Битрикс).

WIX: товарная номенклатура передаётся по умолчанию, без каких-либо дополнительных настроек.

Amo CRM : необходимо выполнить настройку модуля во вкладке «Настройки платежа» и включить фискализацию чеков, после чего наименования товаров и услуг будут передаваться в чек из счёта, который будет создан в новой сделке.

МойСклад: необходимо выполнить настройку модуля во вкладке «Платежи» и включить фискализацию чеков. После этого наименования товаров и услуг будут передавать в чек из счёта, который будет создан во вкладке «Счета покупателям».

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

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

Передача номенклатуры в рамках «самописного» сайта:

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

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

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

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

Формат параметра – json. Максимальное количество символов в запросе json, составляет 30000 символов.

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

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

Внимание! Поле sum содержит полную стоимость за все единицы данного товара вместе, учитывая (если есть) скидки, бонусы и специальные/премиальные цены на отдельные единицы товара (например, третий товар за половину стоимости или за пять единиц товара скидка 12%).

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

ВАЖНО! Значение параметра Receipt перед использованием в строке для подсчета контрольной суммы и отправкой его формой необходимо URL-кодировать.

ВАЖНО! Параметр Receipt не участвует в контрольной сумме, при уведомлении платежа ResultURL.

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

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

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

Массив данных о позициях чека.
Согласно требованиям ФФД ограничение по количеству от 1 до 100.

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

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

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

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

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

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

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

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

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

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

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

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

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

Маркировка товара, передаётся в том виде, как она напечатана на упаковке товара .

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

Код маркировки расположен на упаковке товара, рядом со штрих-кодом или в виде QR-кода.

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

Для того, чтобы проверить и скачать фискальный чек, вам необходимо зайти на сайт https://check.ofd.ru/ или воспользоваться формой ниже и ввести 3 параметра чека :

ФН — фискальный накопитель
ФД — фискальный документ
ФП (ФПД) — фискальный признак

Эти параметры вы сможете увидеть в чеке из раздела «Операции и возвраты» вашего личного кабинета.
После чего кликнуть на «найти чек».

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

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

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

По закону, при проведении операций с методом оплаты «аванс», «предоплата» и «предоплата 100%» необходимо формировать второй чек. Вы можете сделать это в Личном кабинете Robokassa (раздел «Операции и возвраты»). Конструктор итогового чека в личном кабинете выглядит следующим образом:

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

ВАЖНО:

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

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

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

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

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

Идентификатор для второго чека, любое число (не должен совпадать с OriginId ).
Значение только целое число.

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

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

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

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

Признак способа расчёта.

В качестве значения обязательно должно быть передано » full_payment» — Полный расчёт.

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

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

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

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

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

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

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

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

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

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

«none» – без НДС;

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

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

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

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

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

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

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

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

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

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

  • СоздаемSIGNATURE: для этого берем созданный запрос вbase64и приписываем к немуMerchantPass1магазина (например,robokassatest):
  • Теперь из полученной конструкции необходимо создатьhashв соответствии с тем, что выбрано у магазина в Технических настройках (md5 и тд):
  • Чтобы собрать финальный запрос, который отправляется уже наURLдля выбивания чека, необходимо сначала полученныйmd5снова закодировать вbase64:

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

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

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

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

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

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

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

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

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

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

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

Номер заказа магазина ( InvId ) .

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

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

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

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

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

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

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

  • Формируем полноценный запрос на статус чека из первоначального тела запроса вbase64и конечнойsignatureтакже вbase64, разделяя их снова точкой:
  • Отправляется это все вновь методом POST, но только уже на URL:
  • Если все правильно сформировали, то должны получить ответ вида (первый блок данных, это первый чек, второй блок — второй чек):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Iphone 13 или samsung galaxy 21ultra

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

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

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

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

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

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

Уведомления

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

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

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

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

XML интерфейсы

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

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

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

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

integer string Запрошенные данные (возвращаются только в случае успешного выполнения запроса) Required data

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Идентификатор магазина , строка. Подробнее см. Создание Магазина .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

MerchantLogin = demo

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

OutSum = 11

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Получаем ссылку вида:
https://auth.robokassa.ru/Merchant/Index.aspx?MerchantLogin=demo&OutSum=11&InvoiceID=0&Description=Покупка в демо магазине&SignatureValue=$crc

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    MerchantLogin = Test1999

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

    Pass1 = Пароль#1

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

    InvId = 678678

    OutSum = 100

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

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

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

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

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

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

    Выбрав любой другой. Например:

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

    После успешной оплаты на Ваш Result URL будет отправлено уведомление об успешно прошедшей оплате, а клиент попадет на страницу успешной оплаты.

    Пример неуспешной тестовой оплаты:

    Обратите внимание, что тестовые оплаты не отображаются в поиске операций в Личном кабинете клиента.

    Пример кода на PHP с параметром IsTest

    Примеры

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

    Формирование URL переадресации пользователя на оплату

    Получение уведомления об исполнении операции (ResultURL)

    Проверка параметров в скрипте завершения операции (SuccessURL)

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

    Формирование URL переадресации пользователя на оплату

    Получение уведомления об исполнении операции (ResultURL)

    Проверка параметров в скрипте завершения операции (SuccessURL)

    Форма оплаты с вводом произвольной суммы и номенклатурой

    ASP.NET

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

    Формирование URL переадресации пользователя на оплату

    Получение уведомления об исполнении операции (ResultURL)

    Проверка параметров в скрипте завершения операции (SuccessURL)

    Требования к сайту магазина со стороны платёжных систем

    Требования к сайту магазина со стороны платёжной системы WebMoney

    1. Необходимо разместить на своем сайте ссылку на сайт платёжной системы WebMoney в виде кнопки «Мы принимаем WebMoney»: https://www.webmoney.ru/rus/developers/logos.shtml
    2. На сайте должно быть опубликовано описание порядка оплаты товаров или услуг с помощью системы WebMoney Transfer. Это описание должно быть доступно всем пользователям без обязательной регистрации на сайте.
    3. Сайт не должен использоваться для распространения и рекламы товаров или услуг незаконного, криминального характера, не соответствующих общепринятым этическим и правовым нормам.
      Список таких товаров и услуг приведен в Приложении: http://www.wmtransfer.com/rus/cooperation/legal/syagreement1.shtml#2

    Требования к магазину от GooglePay

    Ознакомьтесь с условиями пользовательского соглашения GooglePay по ссылке.

    Условия указанного соглашения действуют полностью при использовании услуги в рамках сервиса ROBOKASSA.

    Рекомендации по бухгалтерскому учету

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

    Источник

    Оцените статью