Описание базового функционала

Важно! Все исправления/обновления данной документации вносятся в Историю изменений

##1.1 Назначение документа

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

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

##1.2 Список сокращений В документе используются сокращения, приведенные в таблице 1.

Таблица 1. Список сокращений

Сокращение Расшифровка
ИМ Интернет-магазин
ПС Защищенная платежная страница
ПО Программное обеспечение
ПШ Платежный шлюз eGo
БО ПС Бэкофис процессинговой системы - специализированный web-ресурс, позволяющий осуществлять контроль за прохождением платежей

#2. Общие положения

При взаимодействии интернет-магазина (далее ИМ) и платёжного шлюза (далее ПШ) используются RPC SOAP WEB–сервисы (далее сервис). В качестве транспортного протокола используется протокол HTTPS.

Для вызовов всех методов сервиса необходима BASIC HTTP аутентификация ИМ. Данные для доступа (login, pass) предоставляются Заказчику в рамках настройки подключения ИМ к ПШ. Если не указано иное, то в ответ на успешное выполнение метода сервиса возвращается стандартный RPC SOAP конверт без полезной нагрузки. Если при вызове метода сервиса происходит исключительная ситуация, в результате которой невозможна обработка запроса, то в ответ на запрос возвращается SOAP Fault, а в поле faultstring – содержится код ошибки выполнения запроса (см. справочник результатов выполнения запроса, п. 7.1).

#3. Базовый сценарий оплаты заказа Общая схема процесса оплаты заказа состоит из следующих шагов:

  1. Регистрация заказа: Заказчик в ИМ формирует заказ, ИМ определяет его стоимость и направляет запрос на регистрацию заказа в ПШ.

  2. Переход пользователя на страницу авторизации: из полученных в ответ на регистрацию данных от ПШ, ИМ формирует адрес для перевода Заказчика на ПС

  3. Оплата заказа: Заказчик на ПС вводит данные карты, ПШ производит проверку внесенных данных карты и подлинности владельца карты по технологии 3D Secure, выполняется авторизация платежа.

  4. Возврат пользователя на страницу магазина: ПШ отображает Заказчику результат авторизации операции и переводит браузер Заказчика на адрес указанный в параметрах запроса регистрации.

  5. Получение результатов оплаты: ИМ запрашивает результаты оплаты у ПШ и в случае успеха выполняет оформление заказа.

  6. Выполнение платежа: система ПШ, на основании выполненных авторизаций формирует файл финансовых транзакций, банк-экваер в установленные сроки выполняет перечисление денежных средств предприятию.

##3.1 Регистрация

Для оплаты заказа, ИМ направляет запрос на регистрацию в ПШ. Параметры NUMBER и COST являются обязательными, остальные – используются в расширенных сценариях оплаты, а так же в целях автоматизированного фрод–мониторинга, задач отчетности и аналитики.

Метод: register Сервис: order

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

Структура информации о заказчике, параметр customer, состоит из:

Ответ сервиса состоит из:

##3.2 Переход пользователя на страницу авторизации В случае успешного ответа на запрос регистрации заказа, ИМ перенаправляет браузер заказчика на страницу ПШ методом HTTP GET с параметрами redirect_url (адрес) + session (идентификатор сессии), который был получен в ответ на запрос register (см. п. 3.1).

##3.3 Оплата заказа Пользователь осуществляет ввод данных банковской карты на платёжной странице ИМ, после чего выполняются процедуры аутентификации и авторизации, согласно установленной технологии.

##3.4 Возврат пользователя на страницу ИМ В случае успешной авторизации (блокировки) необходимой суммы на счете Заказчика, его браузер перенаправляется по URL, переданному в параметре ReturnURLOk (см. п. 3.1). В случае отказа в авторизации браузер Заказчика перенаправляется по URL, переданному в параметре ReturnURLFault (см. п. 3.1).

#4. Получение статуса оплаты заказа

##4.1 Получение статуса по номеру заказа После успешной регистрации заказа, ИМ в любой момент может уточнить статус оплаты заказа.

Метод: get_by_order Сервис: status

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

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

Структура информации о платежных сессиях, параметр attempts, состоит из:

Структура информации о устройствах, параметр devices, состоит:

Структура информации о пользователе, параметр customer, состоит из:

Структура информации о заказе, параметр number, состоит из:

Структура информации о распределении платежей по элементам заказа и системам расчета, параметр clearing, состоит из:

Структура информации о сумме к оплате, параметр amount, состоит из:

Структура информации о списке авторизованных платежей, параметр payments, состоит из:

Структура информации о списке элементов в заказе, параметр items, состоит из:

Структура информации о списке платёжных документов, использованных для оплаты, параметр documents, состоит из:

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

Информация о форме оплаты возвращается только в случае успешной оплаты заказа. Если происходит ошибка при выполнении запроса, то метод возвращает faultcode – код ошибки выполнения запроса (см. справочник результатов выполнения запроса, п. 7.1).

##4.2 Получение результатов оплаты за период Методы get_by_order_period/get_by_payment_period сервиса status используются для получения статусов заказов, за период создания/оплаты заказа соответственно.

Методы: get_by_payment_period  get_by_order_period Сервис: status

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

Величина периода не должна превышать 2 часов.

Параметры ответа: Список заказов, каждый из которых представляет собой ответ из (п. 4.1)

##4.3 Оповещение об изменении статуса оплаты Опционально ПШ имеет возможность оповещать ИМ посредством вызова SOAP сервиса на стороне предприятия. Адрес сервиса оповещения передается в заявке на подключение ИМ. При изменении статуса заказа на оплату конечного статуса ПШ вызывает метод notify сервиса ИМ. Структура запроса полностью совпадает с ответом метода get_by_order сервиса status.

#5. Дополнительные сценарии Функционал, описанный в п. 3 и п. 4, является базовым вариантом настройки функционала оплаты картами. В этом случае, клиенты ИМ получают возможность оплаты товаров/услуг на сайте, а ИМ – возможность принять средства и получить информацию об совершенной авторизации.

##5.1 Отмена регистрации заказа Метод cancel используется в случае если ИМ до истечении переданного времени на оплату хочет прекратить процесс оплаты заказа в ПШ. Рекомендуется использовать этот метод во избежаение двойной оплаты, если Заказчик изменил свой выбор способа оплаты.

Методы: cancel Сервис: order

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

##5.2 Подтверждение оплаты В случае если характер деятельности ИМ предусматривает ситуации, когда при успешной оплате, товар или услуга не может быть оказана, со стороны ИМ необходимо подтверждение или отмена платежа. При подключение предприятие в заявке указывает, что автоматическое подтверждение платежа со стороны ПШ не требудется. В этом случае заказ после успешной оплаты принимает статус not_acknowledged, а система ПШ ожидает запроса confirm или reject для подтверждения или отмены платежа соответственно.

Методы: confirm Сервис: order

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

Если ИМ не может принять оплату, то ИМ должен вызвать метод reject сервиса order для аннулирования платежа (см п. 5.3).

Функционал подтверждения оплаты также доступен в БО ПС – Блок «Параметры заказа», кнопка «Подтверждение платежа».

##5.3 Аннулирование оплаты

Методы: reject Сервис: order

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

Функционал отмены заказа также доступен в БО ПС – Блок «Параметры заказа», кнопка «Откат заказа».

##5.4 Возврат платежа/части заказа Чтобы выполнить возврат платежа ИМ должен вызвать метод refund сервиса order.

Методы: refund Сервис: order

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

В случае если выполняется возврат только части заказа, то в запросе возврата рекомендуем указывать параметр items – список возвращаемый элементов заказа, состоящих из:

Сумма элементов amount из items должна быть равна сумме возврата заказа.

Функционал возврата полной (или части) стоимости заказа также доступен в БО ПС – Блок «Управление платежами», кнопка «Возврат платежа».

##5.5 Корзина товаров и услуг.

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

Для реализации данного кейса ИМ необходимо настроить передачу параметров items блока description, каждый из которых состоит из:

Данный блок параметров заполняется

##5.6 Регулярные платежи (подписка) Регулярные платежи – это платежи без участия пользователя, которые совершаются по установленному расписанию, в течении установленного периода времени подписки. Для того, чтобы использовать данный функционал ИМ при регистрации первого платежа необходимо передавать в блоке postdata параметр Recurring, с названием заведенного в ПШ профиля подписки.

Требования:

  1. Для создания профиля подписки, ИМ должен заполнить заявку, которая предоставляется службой тех. поддержи по запросу.
  2. У ИМ должен быть договор с банком-эквайером, предусматривающий выполнение регулярных платежей.

Пример:

  <name>Recurring</name>
  <value>default</value>

###5.6.1 Отмена подписки

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

Методы: cancel Сервис: order

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

##5.7 Повторные платежи Повторные платежи – это платежи, которые выполняются по “привязанной” (на стороне ПШ) к аутентифицированному ИМ-ом Заказчику карте. Для начала работы с данным функционалом ИМ выполняет установочный платеж, в рамках которого на стороне ПШ регистрируется переданный ИМ идентификатор Заказчика и формируется связь с введенной Заказчиком картой. В результатах оплаты установочного платежа возвращается в том числе заполненное поле token необходимое для последующих платежей.

Требования:

  1. ИМ должен вести базу Заказчиков и должным образом обеспечивать аутентификацию Заказчика.
  2. У ИМ должен быть договор с банком-эквайером на эквайринг платежей такого типа.

###5.7.1 Последующие платежи Для выполнения второго и последующих оплат ИМ регистрирует заказ с параметром Showcase в блоке postdata cо значением token. По возвращенной ссылке из клиентского устройства необходимо отправить запрос согласно установленному протоколу.

Пример:

  <name>Recurring</name>
  <value>default</value>

#6. Дополнительный функционал ##6.1 Кастомизация платежной страницы По-умолчанию, к идентификатору ИМ в ПШ привязывается стандартный вариант ПС. При желании ИМ может кастомизировать ПС в стилистике сайте – для этого специалисту, отвечающему за интеграцию с ПШ, необходимо запросить у службы тех. поддержки макеты платежных страниц.

  1. Привязать несколько платежных страниц, различающихся по дизайну. Данная возможность позволяет отображать разные ПС разным сегментам потребителей услуг, которые предоставляет ИМ (пример: кастомизированные страницы отдельно для физических и юридических лиц).

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

    Для отображения выбранной ПС, ИМ необходимо передавать параметр Showcase, содержащийся в блоке postdata (сервис order метод register), с идентификатором той или иной ПС.

    Пример:

       <name>Showcase</name>
       <value>pp_white</value>

    Также, данный параметр используется в случае если, ИМ использует разные типы открываемых платежных страниц – полный перечень содержится в п. 7.7 – Типы платежных сессий.

  2. Отображения ПС на иностранном языке. Список языков находится в п. 7.5 – Языки пользовательского интерфейса.

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

    Для отображения ПС в выбранном языке, ИМ необходимо передавать параметр Language, содержащийся в блоке postdata (сервис order метод register), с идентификатором языка.

    Пример:

       <name>Language</name>
       <value>en</value>
  3. Отображения текстовое описание заказа на странице ввода реквизитов банковской карты.

    Для отображения комментария, ИМ должен настроить передачу параметра Comment, содержащийся в блоке postdata (сервис order метод register).

    Пример:

       <name>Comment</name>
       <value>ваш текст</value>
  4. Выбор карты по умолчанию.

    Для отображения предварительного выбранной Заказчиком карты платежной системы, ИМ должен настроить передачу в блоке postdata параметра ChoosenCardType.

    Пример:

       <name>ChoosenCardType</name>
       <value>VI</value>

##6.2 Ограничение доступных к оплате карт. Для ограничение возможности использования платежных карт, с целью противодействия мошенничеству или для проведения маркетинговых акций, предприятие может отправить заявку на создание профиля карт. При регистрации заказа к оплате которого должны применятся ограничения по приему карты ИМ должен передавать в блоке postdata параметр AllowedCards, с кодом созданного профиля.

Пример:

  <name>AllowedCards</name>
  <value>Business</value>

##6.3 Платежная страница на стороне предприятия ИМ может направить запрос в ПШ, содержащий в себе одновременно данные и для регистрации заказа в системе и для авторизации средств на карте клиента. Такой вариант взаимодействия, как правило, используется в том случае, если ИМ реализует форму для ввода данных на своей стороне.

Требования: необходимо наличие сертификата PCI DSS у ИМ, который предоставляется .

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

cards (сервис order метод register) состоящий из:

В дополнение к этому блоку данных рекомендуется передавать информацию об устройстве, с которого была совершена оплата. Для этого ИМ необходимо передавать параметр device, который содержится в блоке description, (сервис order метод register) состоящий из:

Важно! При таком варианте взаимодействия с ПШ, параметры ReturnURLOk/ReturnURLFault не используются, вместо этого в случае прохождения процедуры аутентификации по технологии 3DSecure, браузер клиента перенаправляется по адресу указанному в параметре ReceiptURL, блока postdata.

###6.3.1 Оплата несколькими картами Данный функционал позволяет передать данные нескольких карт в том случае, если клиент сомневается в достаточности средств на счете. Для реализации этого функционала ИМ необходимо добавить в базовый запрос параметр cards в необходимом количестве.

##6.4 Получение электронного чека с результатами авторизации Если ИМ при регистрации заказа вносит email адрес плательщика, то по факту оплаты к нему на указанный адрес поступает уведомление (от ПШ) о совершенной авторизации. Данное уведомление носит информативный характер, но вместе с тем содержит основную информацию о совершенной сделке (краткая информация о ИМ, тип операции, id платежа в системе процессинга, дату, код и сумму авторизации). По-умолчанию, данные уведомления отправляются по факту успешной/неуспешной авторизации, а также ее отмены.

Если у ИМ возникает потребность в получении данных чеков (собственный или плательщика), ИМ может использовать метод get_checks сервиса ticket для их получения.

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

#7. Справочники

7.1 Результаты выполнения запроса

Код ошибки Описание Рекомендуемые действия
ALREADY_PROCESSED операция по данному заказу уже выполнена, повтор невозможен Проверьте номер заказа и убедитесь в его корректности. Повторите отправку запроса с новым номером
ACCESS_DENIED запрос к ПШ отклонен / доступ запрещён Проверьте корректность используемых для аутентификации данных (shop_id, user, pass) и адрес обращения. Убедитесь, что службе тех.поддержки были сообщены все ip адреса, с которых может идти обращение к ПШ.
SYSTEM_ERROR сбой в работе ПШ Повторите отправку запроса
SYSTEM_ERROR некорректно составленный запрос Проверьте правильность отправленного запроса. Исправьте ошибку, повторите попытку обращения
FATAL_ERROR критическая ошибка Прекратите отправку запросов. Свяжитесь со службой тех.поддержки
ORDER_ERROR неверные параметры заказа Проверьте правильность отправленного запроса. Исправьте ошибку, повторите попытку обращения
INVALID_ORDER неизвестный для системы заказ Проверьте правильность указанного в запросе номера заказа
PRICING_ERROR ошибка при проверке стоимости заказа Проверьте стоимость услуги в дистрибутивной системе и стоимость в запросе. Повторите отправку запроса
BOOKING_ERROR ошибка при проверке статуса заказа Проверьте корректность параметров number и host в элементе Items. Повторите отправку запроса
WRONG_AMOUNT переданная стоимость заказа неверна Проверьте итоговую стоимость заказа и стоимость в запросе. Повторите отправку запроса
SESSION_ERROR ошибка при установке сессии Повторите отправку запроса
MAX_ATTEMPTS превышено возможное количество попыток оплаты В системе существует антифрод настройка, ограничивающая количество возможных попыток оплатить заказ. Если такая ошибка получена – стоит обратить внимание на Клиента
REPEAT_NEEDED запрос не может быть обработан в данный момент Повторите отправку запроса
UNKNOWN_TAX_SOURCE в значении параметра source допущена ошибка или запрос содержит код провайдера фискальных данных, который не был настроен Перепроверьте запрос. Если ошибки нет свяжитесь со службой тех.поддержки
INVALID_TAX_DATA допущена ошибка в переданном блоке данных Проверьте правильность отправленного запроса. Исправьте ошибку, повторите попытку обращения
AMBIGUOUS_TAXATION_SYSTEM значение параметра sno отсутвует в запросе Проверьте правильность отправленного запроса. Если ошибки нет свяжитесь со службой тех.поддержки
UNKNOWN_TAXATION_SYSTEM переданный в запросе код sno отсутвует в настройках ИМ Проверьте правильность отправленного запроса. Если ошибки нет свяжитесь со службой тех.поддержки
NO_TAXATION_SYSTEM отсутствуют настройки фискализации продаж Свяжитесь со службой тех.поддержки

7.2 Результаты авторизации платежа

категория ошибки код ошибки возможные причины рекомендуемые действия
user(связанные с Клиентом) timeout — истекло время на оплату Задан слишком короткий таймлимит на оплату,Клиент слишком долго вводил данные карты Проверьте параметр timelimit. Рекомендуемое значение – не менее 5-7 минут
user cancel – клиент отказался от оплаты Клиент ушел с ПС / обновил ПС / нажал кнопку «Отказ от оплаты» Даже при долгой обработке,запроса необходимо убедить Клиента не покидать ПС
user duplicate — дублированная транзакция
shop (связанные с системой ИМ) network – система ИМ недоступна ПШ не получил 200 код в ответ на отправленный запрос Проверьте доступность сервисов ИМ
shop wrong_amount — изменилась стоимость товара ИМ указывал неверную стоимость в запросе Проверьте параметр cost в запросе с исходной стоимостью товара/услуги
shop status – заказ не может быть оплачен по причине некорректного статуса Данный заказ либо уже оплачен либо уже отменен Проверьте корректность указанного номера заказа и его текущий статус
shop common – любая другая ошибка Свяжитесь со службой тех.поддержки
shop session — ошибка получения сессии Проблема связи между ИМ и ПШ Свяжитесь со службой тех.поддержки
bank (связанные с банком или МПС) network – недоступен Недоступность авторизационных хостов Повторите отправку запроса. В том случае если проблема сохраняется – свяжитесь со службой тех.поддержки
bank account — реквизиты карты указаны неверно Клиент неверно ввел данные карты Клиенту необходимо вновь попробовать оплатить
bank i-prohibition - в интернете платить по карте нельзя Онлайн оплаты запрещены по данной карте Клиенту необходимо обратится в банк-эмитент карты
bank funds – недостаточно денежных средств Нехватка денежных средств на счете клиента Клиенту необходимо обратится в банк-эмитент карты
bank limit — превышен лимит операций Превышен порог установленного количества оплат по карте Клиенту необходимо обратится в банк-эмитент карты
bank common – отказ банка Клиенту необходимо вновь попробовать оплатить. В том случае если проблемасохраняется – свяжитесь со службой тех.поддержки
system - (связанные с сервисами ПШ) error — системный сбой Недоступность сервисов ПШ Повторите отправку запроса. В том случае если проблемасохраняется – свяжитесь со службой тех.поддержки
system in_progress — операция не завершена Сервисы ПШ все еще обрабатывают направленный запрос Проверьте статус заказа через некоторое время. Если запрос не был обработан - переотправьте его. В том случае если проблемасохраняется – свяжитесь со службой тех.поддержки
system fraud - сработали фильтры фрод-системы Система фрод-мониторинга определила данную операцию как мошенничество Свяжитесь с Клиентом
system 3dsecure – ошибка при аутентификации держателя карты 3ds код не введен / введен неверно / карта не вовлечена в 3ds в то время как его ввод обязателен
system common – любая другая ошибка Повторите отправку запроса. В том случае если проблемасохраняется – свяжитесь со службой тех.поддержки

7.3 Статусы заказа

Статус Описание
registered заказ зарегистрирован и ожидает оплаты
in_progress начата обработка платежа
authorized успешная оплата, идёт оформление товара/услуги
failed сбой в обработке заказа
acknowledged успешная оплата, оформление успешно завершено
not_acknowledged успешная оплата, оформление не выполнено
not_authorized оплата заказа не удалась
canceled оформление не удалось, оплата отменена
refunded произведён возврат успешно оформленного заказа

7.4 Типы платежных сессий

Сокращение Расшифровка
redirect платежная страница
iframe платежная страница адаптированная для встраивания через iframe элемент
mobile мобильная платежная страница
rest передача данных карты с сервера предприятия
token повторная оплата по сохраненной карте

7.5 Языки пользовательского интерфейса

Сокращение Расшифровка
ru русский
en английский
de немецкий
cn китайский

7.6 Типы товаров и услуг

Сокращение Расшифровка
airticket авиабилеты
insurance страхование
aezh аэроэкспресс
service сервисный сбор
hotel отель
good товары
contract договор

7.7 Статусы 3DS аутентификации

Статус Описание
attempted карта не вовлечена в программу 3ds проверки
unavailable 3ds аутентификация недоступна
started начат процесс ввода данных
created таймаут получения результата 3ds аутентификации
unprovided функционал недоступен в данный момент
authenticated проверка выполнена успешно
ready процесс проверки начат
not_used проверка не проводилась
not_determined не получен ответ от банка на запрос вовлеченности карты в 3ds
not_authenticated проверка выполнена не успешно
not_enrolled карта не вовлечена в программу 3ds проверки

История изменений

Дата Версия Краткое описание внесенных исправлений
29.12.2015 1.1 добавлено пояснение к параграфу 5.6.1
19.01.2016 1.2 перенесены ссылки на дистрибутивные системы