Важно! Все исправления/обновления данной документации вносятся в Историю изменений
Документ содержит техническое описание процесса оплаты заказов интернет–магазина посредством использования сервисов платежного шлюза.
Документ предназначен для технических специалистов Заказчика, которые отвечают за разработку сервиса оплаты банковскими картами в интернет–магазине Заказчика с использованием процессинговой системы.
В документе используются сокращения, приведенные в таблице 1.
Таблица 1. Список сокращений
сокращение | расшифровка |
---|---|
ИМ | Интернет Магазин |
ПС | защищённая Платёжная Страница |
ПО | Программное Обеспечение |
ПШ | Платёжный Шлюз eGo |
БО ПС | БэкОфис Процессинговой Системы - специализированный web-ресурс, позволяющий осуществлять контроль за прохождением платежей |
При взаимодействии интернет-магазина (далее ИМ) и платёжного шлюза (далее ПШ) используются RPC SOAP WEB–сервисы (далее сервис). В качестве транспортного протокола используется протокол HTTPS.
Для вызовов всех методов сервиса необходима BASIC HTTP аутентификация ИМ. Данные для доступа (login, pass) предоставляются Заказчику в рамках настройки подключения ИМ к ПШ. Если не указано иное, то в ответ на успешное выполнение метода сервиса возвращается стандартный RPC SOAP конверт без полезной нагрузки. Если при вызове метода сервиса происходит исключительная ситуация, в результате которой невозможна обработка запроса, то в ответ на запрос возвращается SOAP Fault, а в поле faultstring – содержится код ошибки выполнения запроса (см. справочник результатов выполнения запроса, п. 7.1).
Общая схема процесса оплаты заказа состоит из следующих шагов:
Регистрация заказа:
Заказчик в ИМ формирует заказ, ИМ определяет его стоимость и направляет запрос на регистрацию заказа в ПШ.
Переход пользователя на страницу авторизации:
из полученных в ответ на регистрацию данных от ПШ, ИМ формирует адрес для перевода Заказчика на ПС.
Оплата заказа:
Заказчик на ПС вводит данные карты, ПШ производит проверку внесенных данных карты и подлинности владельца карты по технологии 3D Secure, выполняется авторизация платежа.
Возврат пользователя на страницу магазина:
ПШ отображает Заказчику результат авторизации операции и переводит браузер Заказчика на адрес указанный в параметрах запроса регистрации.
Получение результатов оплаты:
ИМ запрашивает результаты оплаты у ПШ и в случае успеха выполняет оформление заказа.
Выполнение платежа:
система ПШ, на основании выполненных авторизаций формирует файл финансовых транзакций, банк-экваер в установленные сроки выполняет перечисление денежных средств предприятию.
Для оплаты заказа, ИМ направляет запрос на регистрацию в ПШ. Параметры number и cost являются обязательными, остальные – используются в расширенных сценариях оплаты, а так же в целях автоматизированного фрод–мониторинга, задач отчётности и аналитики.
Сервис: order
Метод: register
Параметры запроса:
Структура информации о заказчике, параметр customer, состоит из:
Ответ сервиса состоит из:
В случае успешного ответа на запрос регистрации заказа, ИМ перенаправляет браузер заказчика на страницу ПШ методом HTTP GET с параметрами redirect_url (адрес) + session (идентификатор сессии), который был получен в ответ на запрос register п. 3.1.
Пользователь осуществляет ввод данных банковской карты на платёжной странице ИМ, после чего выполняются процедуры аутентификации и авторизации, согласно установленной технологии.
В случае успешной авторизации (блокировки) необходимой суммы на счете Заказчика, его браузер перенаправляется по URL, переданному в параметре ReturnURLOk п. 3.1. В случае отказа в авторизации браузер Заказчика перенаправляется по URL, переданному в параметре ReturnURLFault п. 3.1.
После успешной регистрации заказа, ИМ в любой момент может уточнить статус оплаты заказа.
Сервис: status
Метод: get_by_order
Параметры запроса:
Параметры ответа:
Структура информации о платежных сессиях, параметр attempts, состоит из:
Структура информации о устройствах, параметр devices, состоит:
Структура информации о пользователе, параметр customer, состоит из:
Структура информации о заказе, параметр number, состоит из:
Структура информации о распределении платежей по элементам заказа и системам расчета, параметр clearing, состоит из:
Структура информации о сумме к оплате, параметр amount, состоит из:
Структура информации о списке авторизованных платежей, параметр payments, состоит из:
Структура информации о списке элементов в заказе, параметр items, состоит из:
Структура информации о списке платёжных документов, использованных для оплаты, параметр documents, состоит из:
Информация о статусе оплаты возвращается только в случае успешного выполнения запроса.
Информация о форме оплаты возвращается только в случае успешной оплаты заказа. Если происходит ошибка при выполнении запроса, то метод возвращает faultcode – код ошибки выполнения запроса (см. справочник результатов выполнения запроса, п. 7.1).
Методы get_by_order_period | get_by_payment_period сервиса status используются для получения статусов заказов, за период создания/оплаты заказа соответственно.
Сервис: status
Методы: get_by_payment_period | get_by_order_period
Параметры запроса:
Величина периода не должна превышать 2 часов.
Параметры ответа: Список заказов, каждый из которых представляет собой ответ из п. 4.1
Опционально ПШ имеет возможность оповещать ИМ посредством вызова SOAP сервиса на стороне предприятия. Адрес сервиса оповещения передается в заявке на подключение ИМ. При изменении статуса заказа на оплату конечного статуса ПШ вызывает метод notify сервиса ИМ. Структура запроса полностью совпадает с ответом метода get_by_order сервиса status.
Метод: notify
Функционал, описанный в п. 3 и п. 4, является базовым вариантом настройки функционала оплаты картами. В этом случае, клиенты ИМ получают возможность оплаты товаров/услуг на сайте, а ИМ – возможность принять средства и получить информацию об совершенной авторизации.
Метод cancel используется в случае если ИМ до истечении переданного времени на оплату хочет прекратить процесс оплаты заказа в ПШ. Рекомендуется использовать этот метод во избежаение двойной оплаты, если Заказчик изменил свой выбор способа оплаты.
Сервис: order
Метод: cancel
Параметры запроса:
В случае если характер деятельности ИМ предусматривает ситуации, когда при успешной оплате, товар или услуга не может быть оказана, со стороны ИМ необходимо подтверждение или отмена платежа. При подключение предприятие в заявке указывает, что автоматическое подтверждение платежа со стороны ПШ не требудется. В этом случае заказ после успешной оплаты принимает статус not_acknowledged, а система ПШ ожидает запроса confirm или reject для подтверждения или отмены платежа соответственно.
Сервис: order
Метод: confirm
Параметры запроса:
Если ИМ не может принять оплату, то ИМ должен вызвать метод reject сервиса order для аннулирования платежа п. 5.3.
Функционал подтверждения оплаты также доступен в БО ПС – Блок «Параметры заказа», кнопка «Подтверждение платежа».
Сервис: order
Метод: reject
Параметры запроса:
Функционал отмены заказа также доступен в БО ПС – Блок «Параметры заказа», кнопка «Откат заказа».
Чтобы выполнить возврат платежа ИМ должен вызвать метод refund сервиса order.
Сервис: order
Метод: refund
Параметры запроса:
В случае если выполняется возврат только части заказа, то в запросе возврата рекомендуем указывать параметр items – список возвращаемый элементов заказа, состоящих из:
Сумма элементов amount из items должна быть равна сумме возврата заказа.
Функционал возврата полной (или части) стоимости заказа также доступен в БО ПС – Блок «Управление платежами», кнопка «Возврат платежа».
Функционал корзины услуг позволяет повысить информирование клиента о составе заказа, а так же сформировать для Заказчика дополнительное предложение товаров или услуг.
Полный список типов товаров и услуг находится в справочнике: Типы товаров и услуг п. 7.6
Для реализации данного кейса ИМ необходимо настроить передачу параметров items блока description, каждый из которых состоит из:
Данный блок параметров заполняется
Регулярные платежи – это платежи без участия пользователя, которые совершаются по установленному расписанию, в течении установленного периода времени подписки. Для того, чтобы использовать данный функционал ИМ при регистрации первого платежа необходимо передавать в блоке postdata параметр Recurring, с названием заведенного в ПШ профиля подписки.
Требования:
Пример:
<name>Recurring</name>
<value>default</value>
Для отмены регулярных платежей до срока истечения подписки необходимо вызвать метод cancel сервиса order.
Сервис: order
Метод: cancel
Параметры запроса:
Повторные платежи – это платежи, которые выполняются по “привязанной” (на стороне ПШ) к аутентифицированному ИМ-ом Заказчику карте. Для начала работы с данным функционалом ИМ выполняет установочный платеж, в рамках которого на стороне ПШ регистрируется переданный ИМ идентификатор Заказчика и формируется связь с введенной Заказчиком картой. В результатах оплаты установочного платежа возвращается в том числе заполненное поле token необходимое для последующих платежей.
Требования:
Для выполнения второго и последующих оплат ИМ регистрирует заказ с параметром Showcase в блоке postdata cо значением token. По возвращенной ссылке из клиентского устройства необходимо отправить запрос согласно установленному протоколу.
Пример:
<name>Recurring</name>
<value>default</value>
По-умолчанию, к идентификатору ИМ в ПШ привязывается стандартный вариант ПС. При желании ИМ может кастомизировать ПС в стилистике сайте – для этого специалисту, отвечающему за интеграцию с ПШ, необходимо запросить у службы тех. поддержки макеты платежных страниц.
Привязать несколько платежных страниц, различающихся по дизайну. Данная возможность позволяет отображать разные ПС разным сегментам потребителей услуг, которые предоставляет ИМ (пример: кастомизированные страницы отдельно для физических и юридических лиц).
Требования: кастомизированные ПС размещаются в системе ПШ. После завершения работ по дизайну страниц, их необходимо выслать на адрес службы тех. поддержки для рассмотрения и выгрузки в систему.
Для отображения выбранной ПС, ИМ необходимо передавать параметр Showcase, содержащийся в блоке postdata (сервис order метод register), с идентификатором той или иной ПС.
Пример:
<name>Showcase</name>
<value>pp_white</value>
Также, данный параметр используется в случае если, ИМ использует разные типы открываемых платежных страниц – полный перечень содержится в п. 7.7 – Типы платежных сессий.
Отображения ПС на иностранном языке. Список языков находится в п. 7.5 – Языки пользовательского интерфейса.
Требования: если ИМ выбирает иностранный язык, для которого в ПШ нет перевода, специалист ИМ должен запросить у службы тех. поддержки файл локализации для самостоятельного перевода.
Для отображения ПС в выбранном языке, ИМ необходимо передавать параметр Language, содержащийся в блоке postdata (сервис order метод register), с идентификатором языка.
Пример:
<name>Language</name>
<value>en</value>
Отображения текстовое описание заказа на странице ввода реквизитов банковской карты.
Для отображения комментария, ИМ должен настроить передачу параметра Comment, содержащийся в блоке postdata (сервис order метод register).
Пример:
<name>Comment</name>
<value>ваш текст</value>
Выбор карты по умолчанию.
Для отображения предварительного выбранной Заказчиком карты платежной системы, ИМ должен настроить передачу в блоке postdata параметра ChoosenCardType.
Пример:
<name>ChoosenCardType</name>
<value>VI</value>
Для ограничение возможности использования платёжных карт, с целью противодействия мошенничеству или для проведения маркетинговых акций, предприятие может отправить заявку на создание профиля карт. При регистрации заказа, к оплате которого должны применятся ограничения по приёму карт, ИМ должен передавать в блоке postdata параметр AllowedCards с кодом созданного профиля.
Пример:
<name>AllowedCards</name>
<value>Business</value>
ИМ может направить запрос в ПШ, содержащий в себе одновременно данные и для регистрации заказа в системе и для авторизации средств на карте клиента. Такой вариант взаимодействия используется в случае, если ИМ реализует форму для ввода данных карты на своей стороне.
Требования: необходимо наличие сертификата PCI DSS у ИМ.
Сервис: order
Метод: register
Для реализации данного функционала, ИМ необходимо добавить в базовый запрос параметр cards.
В дополнение к этому блоку данных рекомендуется передавать информацию об устройстве, с которого была совершена оплата. Для этого ИМ необходимо передавать параметр device, который содержится в блоке description.
Важно! При таком варианте взаимодействия с ПШ, параметры ReturnURLOk|ReturnURLFault не используются, вместо этого в случае прохождения процедуры аутентификации по технологии 3DSecure, браузер клиента перенаправляется по адресу указанному в параметре ReceiptURL, блока postdata.
Данный функционал позволяет передать данные нескольких карт в том случае, если клиент сомневается в достаточности средств на счете. Для реализации этого функционала ИМ необходимо добавить в базовый запрос параметр cards в необходимом количестве.
Если ИМ при регистрации заказа вносит email адрес плательщика, то по факту оплаты к нему на указанный адрес поступает уведомление (от ПШ) о совершенной авторизации. Данное уведомление носит информативный характер, но вместе с тем содержит основную информацию о совершенной сделке (краткая информация о ИМ, тип операции, id платежа в системе процессинга, дату, код и сумму авторизации). По-умолчанию, данные уведомления отправляются по факту успешной/неуспешной авторизации, а также ее отмены.
Если у ИМ возникает потребность в получении данных чеков (собственный или плательщика), ИМ может использовать метод get_checks сервиса ticket для их получения.
Сервис: ticket
Метод: get_checks
Параметры запроса:
код ошибки | описание | рекомендуемые действия |
---|---|---|
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 | отсутствуют настройки фискализации продаж | свяжитесь со службой тех. поддержки |
категория ошибки | код ошибки | возможные причины | рекомендуемые действия |
---|---|---|---|
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 – любая другая ошибка | Повторите отправку запроса. В том случае если проблема сохраняется – свяжитесь со службой тех. поддержки |
статус | описание |
---|---|
registered | заказ зарегистрирован и ожидает оплаты |
in_progress | начата обработка платежа |
authorized | успешная оплата, идёт оформление товара/услуги |
failed | сбой в обработке заказа |
acknowledged | успешная оплата, оформление успешно завершено |
not_acknowledged | успешная оплата, оформление не выполнено |
not_authorized | оплата заказа не удалась |
canceled | оформление не удалось, оплата отменена |
refunded | произведён возврат успешно оформленного заказа |
Сокращение | Расшифровка |
---|---|
redirect | платежная страница |
iframe | платежная страница адаптированная для встраивания через iframe элемент |
mobile | мобильная платежная страница |
rest | передача данных карты с сервера предприятия |
token | повторная оплата по сохраненной карте |
Сокращение | Расшифровка |
---|---|
ru | русский |
en | английский |
de | немецкий |
cn | китайский |
Сокращение | Расшифровка |
---|---|
airticket | авиабилеты |
insurance | страхование |
aezh | аэроэкспресс |
service | сервисный сбор |
hotel | отель |
good | товары |
contract | договор |
Статус | Описание |
---|---|
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 | перенесены ссылки на дистрибутивные системы |