Аутентификация по протоколу 3‑D Secure 2

С 14 сентября 2019 года вступили в силу требования к аутентификации покупателей (Strong Customer Authentication, SCA), введенные второй директивой Европейского союза об оказании платежных услуг (PSD2: Revised Directive on Payment Services, Directive (EU) 2015/2366). В соответствии с этими требованиями все организации, задействованные в оказании электронных платежных услуг на территории Европейской экономической зоны, должны использовать новую версию протокола 3‑D Secure — EMV® 3‑D Secure, или 3‑D Secure 2.

В этом разделе представлены общие сведения об аутентификации 3‑D Secure 2 и актуальная информация о поддержке этой аутентификации в платежной платформе Rocketpay с обзором нововведений, схемами работы и описанием изменений в форматах запросов и оповещений.

Обзор

3‑D Secure 2 — это новая версия протокола 3‑D Secure (Three-Domain Secure), который обеспечивает безопасное проведение интернет-оплат с использованием платежных карт. К основным преимуществам 3‑D Secure 2 по сравнению с 3‑D Secure 1 относятся:

  • Расширение возможностей проведения платежей за счет поддержки аутентификации в мобильных приложениях (без необходимости задействовать браузер).
  • Повышение безопасности платежей за счет отказа от использования статических паролей (таких как пароли из списка, полученного от эмитента) и перехода к более надежным методам аутентификации, например с использованием биометрических данных пользователя, а также за счет расширения состава передаваемых при аутентификации данных.
  • Повышение удобства платежей за счет добавления варианта аутентификации с подтверждением личности пользователя эмитентом, без каких-либо действий со стороны пользователя.

Вариант аутентификации без каких-либо действий пользователя называется frictionless flow. Другой вариант — challenge flow — предусматривает подтверждение пользователем своей личности, например с помощью одноразового кода (аналогично 3‑D Secure 1) или биометрических данных, если такая возможность поддерживается эмитентом.



Выбор между этими вариантами осуществляется на стороне эмитента. Для этого могут применяться интеллектуальные механизмы проверки подлинности с использованием разнообразной информации о пользователе и платеже, в том числе переданной со стороны мерчанта. Это может быть, например, информация об учетной записи пользователя на стороне веб-сервиса и об адресе доставки. Чтобы повысить вероятность выбора варианта frictionless flow, такую информацию рекомендуется передавать в запросах на проведение платежа.

Как и в случае с 3‑D Secure 1, при аутентификации 3‑D Secure 2 используются три домена:

  • Домен эквайера. В рамках работы с платежной платформой Rocketpay к нему относятся веб-сервис мерчанта, платежная платформа и связанный с ней 3DS-сервер (3DS Server).
  • Домен совместимости. К нему относятся серверы каталогов (Directory Servers, DS) международных платежных систем.
  • Домен эмитента. К нему относятся серверы управления доступом (Access Control Servers, ACS) эмитента (и, соответственно, страница аутентификации).

Следует учитывать, что информация о возможности проведения аутентификации пользователя хранится на 3DS-сервере, и следовательно эту информацию можно получить только после отправки запроса на проведение платежа. Также платежная платформа не располагает информацией о действиях пользователей на странице аутентификации, а только получает результат прохождения аутентификации.

Подробнее о порядке взаимодействия между этими доменами см. в разделе Схемы работы через Gate.

Вопросы и ответы

В этом разделе содержатся ответы на вопросы о протоколе 3‑D Secure 2, его поддержке и возможностях его использования.

Общие вопросы о протоколе:

Вопросы о переходе к использованию протокола:

Вопросы об использовании протокола:

За дополнительной информацией по этим и другим вопросам обращайтесь к курирующему менеджеру Rocketpay.

Что меняется при переходе от 3‑D Secure 1 к 3‑D Secure 2?

К общим изменениям относятся:

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

В пользовательском сценарии добавляется вариативность: с возможным промежуточным перенаправлением пользователя, с поддержкой двух вариантов аутентификации (frictionless flow и challenge flow) и с допустимыми нововведениями в способе подтверждения пользователем своей подлинности (например, с использованием биометрических данных).

К изменениям во взаимодействиях веб-сервисов с платежной платформой Rocketpay относятся поддержка новых параметров для запросов и изменения структур данных в оповещениях. Кроме того, при переходе к работе с 3‑D Secure 2 осуществляется регистрация мерчантов в программах аутентификации Visa Secure и Mastercard Identity Check и на платежных страницах необходимо использовать логотипы этих программ.

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

Для получения информации о регистрации в программах Visa Secure и Mastercard Identity Check и о замене логотипов следует обращаться к курирующему менеджеру Rocketpay.

Что меняется в пользовательском сценарии аутентификации?

Если при использовании протокола 3‑D Secure 1 аутентификация выполняется с перенаправлением пользователя от веб-сервиса к странице аутентификации (ACS) эмитента, то при использовании протокола 3‑D Secure 2 количество перенаправлений может варьироваться:

  • В зависимости от используемой на стороне веб-сервиса схемы аутентификации: при использовании схемы с тем же алгоритмом, что и в схеме для поддержки 3‑D Secure 1, перед перенаправлением на страницу аутентификации (ACS) выполняется промежуточное перенаправление пользователя на страницу ожидания платежной платформы, а при использовании схемы с новым алгоритмом такое перенаправление не выполняется.
  • В зависимости от выбранного на стороне эмитента варианта аутентификации: при выборе варианта challenge flow пользователь перенаправляется на страницу аутентификации (ACS), а при выборе варианта frictionless flow такое перенаправление не выполняется.

Также для пользователя возможны изменения в способе подтверждения своей подлинности: например, со стороны эмитента может запрашиваться подтверждение с использованием биометрических данных.

Каким образом используются биометрические данные пользователя?

Протоколом аутентификации 3‑D Secure 2 предусмотрена возможность использования биометрических данных пользователя для подтверждения его личности. Для этого на стороне эмитента и на стороне устройства пользователя должны поддерживаться обработка и хранение биометрических данных. При этом порядок и варианты подтверждения личности с использованием таких данных регулируются эмитентом.

Примером использования биометрических данных может быть подтверждение личности пользователя с использованием сканера отпечатков пальцев или сканера объемно-пространственной формы лица (такого как Face ID) на его мобильном устройстве.

Можно ли заранее узнать о необходимости аутентификации пользователя?

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

Есть ли такие виды платежей, при проведении которых не требуется аутентификация 3‑D Secure 2?

Да. К платежам, на которые не распространяются требования PSD2 к аутентификации, относятся:

  • Оплата с использованием платежных карт не из Европейской экономической зоны.
  • Оплата с использованием анонимных предоплаченных платежных карт, например с использованием подарочной карты.
  • Оплата по инициативе мерчанта (Merchant-initiated transactions, MIT) в случаях, когда первоначальная операция выполнялась с аутентификацией 3‑D Secure 2 независимо от ее варианта: challenge flow или frictionless flow.

В платежной платформе поддерживается определение этих видов платежей и аутентификация 3‑D Secure 2 для них не выполняется.

Кроме того, есть виды платежей, которые в соответствии с решениями эмитентов могут относиться к исключениям и проводиться без аутентификации 3‑D Secure 2. Это:

  • Платежи на суммы до 30 евро, в случаях, когда с момента последней успешной аутентификации проведено не более пяти платежей и общая сумма этих платежей не превышает 100 евро.
  • Платежи с низким уровнем риска, с учетом порогов, определяемых в соответствии с PSD2.
  • Платежи в пользу тех мерчантов, которые по инициативе или с согласия держателя карты занесены в список доверенных.
  • Платежи, инициируемые юридическими лицами с использованием процессов и протоколов, обеспечивающих высокий уровень защиты от мошенничества (так называемые безопасные корпоративные платежи).

Работа с такими исключениями в платежной платформе пока не поддерживается.

Использование исключений гарантирует проведение платежа без аутентификации 3‑D Secure 2?

Нет. В случае проведения платежа, который относится к исключениям, решение о необходимости аутентификации 3‑D Secure 2 остается за эмитентом. С его стороны может быть направлен «мягкий отказ» (soft decline), означающий необходимость выполнения аутентификации 3‑D Secure 2. При получении такого отказа со стороны мерчанта следует повторно направить запрос на проведение платежа с теми же платежными данными, которые были переданы в первоначальном запросе.

Что нужно сделать для поддержки 3‑D Secure 2?

Для поддержки 3‑D Secure 2 на стороне веб-сервиса необходимо:

  1. Согласовать с курирующим менеджером Rocketpay возможность, порядок и сроки перехода к 3‑D Secure 2.
  2. Выполнить необходимые доработки.
  3. Совместно со специалистами технической поддержки Rocketpay провести тестирование и запуск новой функциональности (подробнее о данных для тестирования — в ответе на вопрос ниже).

Что необходимо изменить для работы с Gate?

При использовании Gate веб-сервис может поддерживать одну из следующих схем аутентификации 3‑D Secure 2:

  • Базовая схема — алгоритм, аналогичный применяемому для 3‑D Secure 1 (с теми же параметрами в запросах и оповещениях). При использовании этой схемы на платежных страницах необходимо отображать новые логотипы программ аутентификации международных платежных систем, а в остальном взаимодействие веб-сервиса с платежной платформой остается прежним.
  • Расширенная схема — новый алгоритмом, позволяющий избежать промежуточных перенаправлений пользователя. В этой схеме на стороне веб-сервиса необходимо обеспечить прием оповещений с новыми параметрами и поддержку нового алгоритма перенаправления пользователя на страницу аутентификации (ACS). Дополнительно можно обеспечить прием уведомлений от сервера управления доступом и отправку запросов нового типа и использовать эту возможность для некоторых или для всех платежей. (Подробнее см. Схемы работы через Gate.)

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

После подключения базовой схемы возможен упрощенный переход к использованию расширенной схемы, без обращения к курирующему менеджеру и специалистам технической поддержки. Для такого перехода достаточно начать передавать в запросах на проведение платежей объект acs_return_url с параметром return_url (подробнее о параметре — в разделе Формат запроса на платеж через Gate). В этом случае платежи, в запросах на проведение которых передается return_url, проводятся по расширенной схеме, а остальные — по базовой.

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

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

Данные платежных карт Visa:

  • с выбором варианта аутентификации frictionless flow:
    • 4477000000000006 — успешный платеж (статус платежа success);
    • 4012000000020063 — отказ в проведении платежа (статус платежа decline);
  • с выбором варианта аутентификации challenge flow:
    • 4314220000000056 — успешный платеж (статус платежа success);
    • 4012000000020089 — отказ в проведении платежа (статус платежа decline);

Данные платежных карт Mastercard:

  • с выбором варианта аутентификации frictionless flow:
    • 5252000000000004 — успешный платеж (статус платежа success);
    • 5544330000000029 — отказ в проведении платежа (статус платежа decline);
  • с выбором варианта аутентификации challenge flow:
    • 5413330000000019 — успешный платеж (статус платежа success);
    • 5544330000000045 — отказ в проведении платежа (статус платежа decline);

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

Можно ли использовать 3‑D Secure 2 для всех оплат картами Visa, Mastercard и Maestro?

Нет, возможность использования нового протокола для конкретной оплаты зависит от готовности эмитента и провайдеров, участвующих в ее проведении. Эмитенты Европейской экономической зоны должны поддерживать 3‑D Secure 2 с 14 сентября 2019-го года, а эмитенты других регионов — к концу 2020-го года.

Нужно ли поддерживать 3‑D Secure 1 при переходе к 3‑D Secure 2?

В связи с тем, что аутентификация с использованием протокола 3‑D Secure 2 необходима и возможна не во всех случаях, при переходе к 3‑D Secure 2 на стороне веб-сервиса нужно поддерживать и 3‑D Secure 1. В частности, в соответствии с рекомендацией международной платежной системы Mastercard, если аутентификация с использованием протокола 3‑D Secure 2 не выполнена из-за сбоя на стороне платежной системы или эмитента либо из-за того, что эмитент не поддерживает протокол 3‑D Secure 2, со стороны платежной платформы выполняется попытка аутентификации с использованием протокола 3‑D Secure 1.

Можно ли мерчанту выбрать аутентификацию 3‑D Secure 1 вместо 3‑D Secure 2?

Нет, необходимость использования того или иного протокола определяется на стороне 3DS-сервера и зависит от возможностей эмитента. Мерчант не может повлиять на этот выбор.

Как узнать какая аутентификация выполнялась?

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

Можно ли проводить платежи без выполнения аутентификации 3‑D Secure (non-3DS)?

Со стороны мерчанта допустим отказ от аутентификации. При этом необходимо учитывать следующее:

  • С 1 февраля 2020-го года эмитенты, действующие на территории Европейской экономической зоны, должны отклонять все платежи без аутентификации 3‑D Secure 2, кроме платежей двух видов: не подпадающих под действие PSD2 и отнесенных в соответствии с PSD2 к допустимым исключениям (подробнее — в ответе на вопрос об этих видах платежей). Отказ от аутентификации при проведении платежей с использованием карт, эмитированных в Европейской экономической зоне, возможен только для платежей, не подпадающих под действие PSD2.
  • В случае отказа от аутентификации ответственность за мошеннические платежи полностью перекладывается на мерчанта.

Для уточнения условий отказа следует обращаться к курирующему менеджеру Rocketpay.

Обзор изменений

Для поддержки 3‑D Secure 2 в платежной платформе вводится ряд изменений, предполагающих использование одной из двух схем аутентификации: базовой, основанной на уже существующей схеме аутентификации 3‑D Secure 1, но включающей в себя промежуточные перенаправления пользователя, или расширенной, позволяющей избежать промежуточных перенаправлений, но требующей доработок на стороне веб-сервиса. Общая информация обо всех изменениях, а также о действиях, необходимых со стороны мерчантов для поддержки 3‑D Secure 2, представлена в этом разделе.

СХЕМА ИЗМЕНЕНИЯ ДЕЙСТВИЯ
Базовая
  • Добавлены объекты и параметры для запросов к следующим конечным точкам:

    Новые объекты и параметры не обязательны, но их использование рекомендуется для того, чтобы повысить вероятность выбора варианта аутентификации frictionless flow.

  • Расширена структура оповещения о результате проведения платежа. В оповещениях о результатах тех платежей, при проведении которых выполнялась аутентификация 3‑D Secure 2, передаются новые параметры.
  • Поддержан новый алгоритм перенаправления пользователя в процессе аутентификации: с формированием HTML-страницы на стороне веб-сервиса и перенаправлением пользователя на страницу ожидания платежной платформы
  • Требуется заменить логотипы программ аутентификации международных платежных систем: Mastercard Secure Code на Mastercard Identity Check и Verified by Visa на Visa Secure.
  • Если на стороне веб-сервиса поддерживался протокол 3‑D Secure 1, то допустимо не дорабатывать программный код, но для повышения вероятности выбора варианта аутентификации frictionless flow рекомендуется выполнить доработки с учетом изменений в платежной платформе
Расширенная
  • Добавлены объекты и параметры для запросов к следующим конечным точкам:

    Новые объекты и параметры не обязательны, но их использование рекомендуется для того, чтобы повысить вероятность выбора варианта аутентификации frictionless flow.

  • Расширена структура оповещения о результате проведения платежа. В оповещениях о результатах тех платежей, при проведении которых выполнялась аутентификация 3‑D Secure 2, передаются новые параметры.
  • Поддержан новый алгоритм перенаправления пользователя в процессе аутентификации: с открытием на стороне веб-сервиса объекта iframe и перенаправлением пользователя на страницу аутентификации.
  • Добавлена конечная точка /v2/payment/card/3ds_check_iframe. Запросы к этой точке необходимы только в тех случаях, когда в запросах на проведение платежей передается параметр 3ds_notification_url с адресом для получения уведомления о приеме данных об устройстве пользователя. Использование такой возможности задается со стороны мерчанта.
  • Добавлен параметр cres для указания информации о результате аутентификации 3‑D Secure 2 в запросах на продолжение платежей к конечной точке /v2/payment/card/3ds_result.
  • Изменена структура оповещений с данными для перенаправления пользователя
  • Требуется заменить логотипы программ аутентификации международных платежных систем: Mastercard Secure Code на Mastercard Identity Check и Verified by Visa на Visa Secure.
  • Необходимо доработать программный код с учетом изменений в платежной платформе

Схемы работы через Gate

Аутентификация пользователя с использованием протокола 3‑D Secure 2 может выполняться при проведении одностадийной и двухстадийной оплаты с применением платежных карт, а также при проверке действительности карт. При работе через Gate для аутентификации поддерживаются две схемы: базовая или расширенная.

Базовая схема

Для выполнения аутентификации по базовой схеме со стороны веб-сервиса необходимо:

  1. Принять от платежной платформы оповещение с данными для перенаправления пользователя и отправить ответ о приеме этого оповещения.
  2. Перенаправить пользователя на страницу ожидания платежной платформы с использованием данных из оповещения в течение 30 секунд после приема этого оповещения.
  3. Принять данные о результате аутентификации.
  4. Отправить в платежную платформу запрос на продолжение проведение платежа с учетом результата аутентификации — 3ds_result.

Если аутентификация с использованием протокола 3‑D Secure 2 не выполнена из-за сбоя на стороне эмитента или платежной системы либо из-за того, что эмитент не поддерживает протокол 3‑D Secure 2, со стороны платежной платформы инициируется попытка аутентификации пользователя с использованием протокола 3‑D Secure 1. При этом со стороны веб-сервиса не требуется дополнительных действий, однако пользователь может получить от эмитента не только проверочный код и уведомление об успешном платеже, но и уведомление об отклонении платежа.

Далее представлена базовая схема аутентификации 3‑D Secure 2 в контексте оплаты в одну стадию.

Рис.: Выполнение аутентификации 3‑D Secure 2 по базовой схеме

  1. В платежной платформе выполняется обработка запроса и выявляется необходимость аутентификации 3‑D Secure.
  2. От платежной платформы к 3DS‑серверу, связанному с платежной платформой, передается запрос на проверку возможности аутентификации с использованием одной из версий протокола 3‑D Secure: 1 или 2.
  3. На стороне 3DS‑сервера проверяется возможность аутентификации.
  4. От 3DS‑сервера к платежной платформе направляются данные для перенаправления пользователя.
  5. Платежная платформа направляет в веб-сервис оповещение с данными для перенаправления пользователя.
  6. От веб-сервиса к платежной платформе направляется ответ о приеме данных.
  7. Со стороны веб-сервиса выполняется перенаправление пользователя на страницу ожидания платежной платформы.
  8. Пользователю отображается страница ожидания платежной платформы.
  9. Со стороны платежной платформы выполняется открытие объекта iframe.
  10. С помощью объекта iframe выполняются сбор данных об устройстве пользователя и отправка этих данных к серверу управления доступом (Access Control Server) эмитента.
  11. От сервера управления доступом к платежной платформе направляется уведомление о приеме этих данных.
  12. От платежной платформы к 3DS-серверу передается запрос на аутентификацию пользователя.
  13. Запрос передается от 3DS‑сервера к серверу каталогов международной платежной системы (Directory Server).
  14. Запрос передается от сервера каталогов к серверу управления доступом.
  15. На стороне эмитента выполняется аутентификация пользователя. При этом в случае выбора эмитентом варианта аутентификации frictionless flow от сервера управления доступом к платежной платформе (через сервер каталогов и 3DS-сервер) передается информация о результате аутентификации и пользователь перенаправляется в веб-сервис, а в случае выбора варианта аутентификации challenge flow выполняются следующие шаги:
    • От сервера управления доступом к серверу каталогов и далее к 3DS-серверу и платежной платформе передаются данные для перенаправления пользователя на страницу аутентификации (ACS URL).
    • Со стороны платежной платформы выполняется перенаправление пользователя на страницу аутентификации.
    • Пользователю отображается страница аутентификации, после чего он осуществляет требуемые действия.
    • На стороне эмитента выполняется проверка подлинности пользователя.
    • От сервера управления доступом к серверу каталогов и далее к 3DS-серверу передается информация о результате проверки.
    • От 3DS‑сервера к серверу каталогов и далее к серверу управления доступом передается ответ о приеме этой информации.
    • От сервера управления доступом выполняется перенаправление пользователя на страницу ожидания платежной платформы.
    • Пользователю отображается страница ожидания платежной платформы.
    • Платежная платформа перенаправляет пользователя в веб-сервис, одновременно передавая данные о результате аутентификации.
    • Пользователю отображается страница ожидания веб-сервиса.
  16. От веб-сервиса на заданный URL Rocketpay передается запрос на продолжение проведения платежа с учетом результата аутентификации.
  17. Запрос поступает в платежную платформу.
  18. В платежной платформе выполняется прием запроса с проверкой его корректности.
  19. Платежная платформа направляет в веб-сервис ответ с информацией о получении запроса и его корректности.

Расширенная схема

При использовании расширенной схемы со стороны веб-сервиса можно задавать необходимость отправки уведомления о приеме данных об устройстве пользователя от сервера управления доступом в веб-сервис. Для этого используется параметр 3ds_notification_url.

Для выполнения аутентификации по расширенной схеме со стороны веб-сервиса необходимо:

  1. Принять от платежной платформы оповещение с данными для формирования объекта iframe и отправить ответ о приеме этого оповещения.
  2. Открыть объект iframe с использованием данных из оповещения.
  3. Если в запросе на проведение платежа был передан параметр 3ds_notification_url — принять от сервера управления доступом (ACS) эмитента уведомление о приеме данных и отправить в платежную платформу запрос на инициирование аутентификации. Если этот параметр не был передан, данный шаг не используется.
  4. В случае выбора эмитентом варианта аутентификации frictionless flow — принять данные о результате аутентификации, а в случае выбора варианта аутентификации challenge flow выполнить следущие действия:
    • принять от платежной платформы оповещение с данными для перенаправления пользователя на страницу аутентификации и отправить ответ о приеме этого оповещения;
    • перенаправить пользователя на страницу аутентификации в течение 30 секунд после приема оповещения;
    • принять данные о результате аутентификации;
    • отправить в платформу запрос на продолжение проведение платежа с учетом результата аутентификации — 3ds_result.

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

Если аутентификация с использованием протокола 3‑D Secure 2 не выполнена из-за сбоя на стороне эмитента или платежной системы либо из-за того, что эмитент не поддерживает протокол 3‑D Secure 2, со стороны платежной платформы инициируется попытка аутентификации пользователя с использованием протокола 3‑D Secure 1. Такая попытка может быть инициирована на любом этапе, в том числе после перенаправления пользователя на страницу аутентификации. Со стороны веб-сервиса при этом необходимо принять и обработать оповещение с данными для перенаправления в формате, описанном в разделе Аутентификация по протоколу 3‑D Secure 1, а пользователь может получить от эмитента не только проверочный код и уведомление об успешном платеже, но и уведомление об отклонении платежа.

Далее представлена расширенная схема аутентификации 3‑D Secure 2 с отображением двух способов уведомления о приеме данных об устройстве пользователя и двух вариантов аутентификации (frictionless flow и challenge flow) в контексте оплаты в одну стадию.

Рис.: Выполнение аутентификации 3‑D Secure 2 по расширенной схеме

  1. В платежной платформе выполняется обработка запроса и выявляется необходимость аутентификации 3‑D Secure.
  2. От платежной платформы к 3DS‑серверу, связанному с платежной платформой, передается запрос на проверку возможности аутентификации с использованием одной из версий протокола 3‑D Secure: 1 или 2.
  3. На стороне 3DS‑сервера проверяется возможность аутентификации.
  4. От 3DS‑сервера к платежной платформе направляются данные для формирования объекта iframe.
  5. Платежная платформа направляет в веб-сервис оповещение с данными для формирования объекта iframe.
  6. От веб-сервиса к платежной платформе направляется ответ о приеме данных.
  7. На стороне веб-сервиса выполняется открытие объекта iframe.
  8. С помощью объекта iframe выполняются сбор данных об устройстве пользователя и отправка этих данных к серверу управления доступом (Access Control Server) эмитента.
  9. В зависимости от того, был ли указан в запросе на проведение платежа параметр 3ds_notification_url с адресом, уведомление о приеме этих данных отправляется от сервера управления доступом либо к веб-сервису, либо к платежной платформе. Если уведомление направляется в веб-сервис, то выполняются следующие шаги:
    • От веб-сервиса на заданный URL Rocketpay передается запрос на инициирование аутентификации пользователя.
    • Запрос поступает в платежную платформу.
    • В платежной платформе выполняется прием запроса с проверкой его корректности.
    • Платежная платформа направляет в веб-сервис ответ с информацией о получении запроса и его корректности.
  10. От платежной платформы к 3DS-серверу передается запрос на аутентификацию пользователя.
  11. Запрос передается от 3DS‑сервера к серверу каталогов международной платежной системы (Directory Server).
  12. Запрос передается от сервера каталогов к серверу управления доступом.
  13. На стороне эмитента выполняется аутентификация пользователя. При этом в случае выбора эмитентом варианта аутентификации frictionless flow от сервера управления доступом к платежной платформе (через сервер каталогов и 3DS-сервер) передается информация о результате аутентификации, а в случае выбора варианта аутентификации challenge flow выполняются следующие шаги:
    • От сервера управления доступом к серверу каталогов и далее к 3DS-серверу и платежной платформе передаются данные для перенаправления пользователя на страницу аутентификации (ACS URL).
    • Платежная платформа направляет в веб-сервис оповещения с данными для перенаправления.
    • Со стороны веб-сервиса выполняется перенаправление пользователя на страницу аутентификации.
    • Пользователю отображается страница аутентификации, после чего он осуществляет требуемые действия.
    • На стороне эмитента выполняется проверка подлинности пользователя.
    • От сервера контроля доступа к серверу каталогов и далее к 3DS-серверу передается информация о результате проверки.
    • От 3DS‑сервера к серверу каталогов и далее к серверу управления доступом передается ответ о приеме этой информации.
    • Со стороны сервера управления доступом выполняется перенаправление пользователя в веб-сервис с передачей данных о результате аутентификации.
    • Пользователю отображается страница ожидания веб-сервиса.
    • От веб-сервиса на заданный URL Rocketpay передается запрос на продолжение проведения платежа с учетом результата аутентификации.
    • Запрос поступает в платежную платформу.
    • В платежной платформе выполняется прием запроса с проверкой его корректности.
    • Платежная платформа направляет в веб-сервис ответ с информацией о получении запроса и его корректности.

Формат запроса на платеж через Gate

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

При переходе к 3‑D Secure 2 для запросов на проведение платежей используется стандартный формат с поддержкой параметров, которые не являются обязательными, но рекомендуются для повышения вероятности выбора варианта аутентификации frictionless flow.

Общее описание форматов запросов при работе через Gate представлено в разделе Общий порядок интеграции, а описание объектов и параметров, использование которых рекомендуется для повышения вероятности выбора варианта аутентификации frictionless flow, — в этом разделе.

Объект acs_return_url

Объект содержит параметры, необходимые для перенаправления пользователя к веб-сервису после выполнения аутентификации, а также для получения уведомления о приеме данных от сервера управления доступом (ACS) эмитента при использовании расширенной схемы аутентификации.

ПАРАМЕТР ТИП ОПИСАНИЕ
return_url string Адрес веб-сервиса для перенаправления пользователя после аутентификации, является обязательным при использовании расширенной схемы
3ds_notification_url string Адрес веб-сервиса для получения уведомления о том, что данные приняты сервером управления доступом. Является обязательным, если на стороне мерчанта необходимо получать такие уведомления в рамках аутентификации по расширенной схеме

Параметры в объекте customer

Параметры из объекта customer, рекомендуемые для повышения вероятности выбора варианта аутентификации frictionless flow, условно можно разделить на следующие группы:

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

Описания этих параметров представлены в таблицах далее.

Табл. 1. Информация о браузере и устройстве пользователя
ПАРАМЕТР ТИП ОПИСАНИЕ
accept_header string Значение HTTP-заголовка Accept, полученного со стороны браузера пользователя
browser string Значение HTTP-заголовка User-Agent, полученного со стороны браузера пользователя
color_depth integer Глубина цвета браузера пользователя в битах на пиксель
java_enabled boolean Индикатор поддержки сценариев Java браузером пользователя
js_enabled boolean Индикатор поддержки сценариев JavaScript браузером пользователя
language string Код языка, установленного в браузере пользователя
screen_res string Разрешение экрана устройства пользователя в пикселях (например, 360x640)
timezone_name string Название часового пояса браузера пользователя (например, Europe/London)
timezone_offset string Разница между временем браузера пользователя и UTC, указывается в минутах (например, -120)
Табл. 2. Информация об учетной записи пользователя на стороне веб-сервиса
ПАРАМЕТР ТИП ОПИСАНИЕ
address_match boolean

Указатель совпадения платежного адреса пользователя с адресом доставки, указанным в объекте shipping

home_phone string Номер домашнего телефона пользователя, может содержать только цифры, от четырех до двадцати четырех (например, 44991234567)
work_phone string Номер рабочего телефона пользователя, может содержать только цифры, от четырех до двадцати четырех (например, 44997654321)
account — объект, содержащий информацию об учетной записи пользователя на стороне мерчанта
additional string Дополнительная информация об учетной записи пользователя, например ее идентификатор; в произвольном формате с использованием до шестидесяти четырех символов
activity_day integer Количество попыток проведения оплаты за последние 24 часа, не более трех символов (999)
activity_year integer Количество попыток проведения оплаты за последние 365 дней, не более трех символов (999)
age_indicator string Количество дней с момента создания учетной записи пользователя. Возможные значения:
  • 01 — платеж проводится без аутентификации в учетной записи,
  • 02 — учетная запись создана в день проведения платежа,
  • 03 — менее 30 дней,
  • 04 — от 30 до 60 дней,
  • 05 — более 60 дней
auth_data string Дополнительная информация об аутентификации на стороне веб-сервиса в произвольном формате. Параметр может содержать не более 255 символов
auth_method string Указатель способа последней аутентификации пользователя на стороне веб-сервиса. Возможные значения:
  • 01 — доступ без аутентификации;
  • 02 — аутентификация с использованием данных, сохраненных на стороне мерчанта;
  • 03 — аутентификация с использованием Federated ID (например, Google Account или Facebook);
  • 04 — аутентификация с использованием аутентификатора, соответствующего стандартам Fast IDentity Online (FIDO)
auth_time string Дата и время последней аутентификации пользователя на стороне веб-сервиса в формате ДД-ММ-ГГГГчч:мм
date string Дата создания учетной записи в формате ДД-ММ-ГГГГ
change_date string Дата последних изменений в учетной записи, за исключением изменения или сброса пароля, в формате ДД-ММ-ГГГГ
change_indicator string Количество дней с момента последних изменений в учетной записи, за исключением изменения или сброса пароля. Возможные значения:
  • 01 — изменения в день проведения платежа,
  • 02 — менее 30 дней,
  • 03 — от 30 до 60 дней,
  • 04 — более 60 дней
pass_change_date string Дата последнего изменения или сброса пароля в формате ДД-ММ-ГГГГ
pass_change_indicator string Количество дней с момента последнего изменения или сброса пароля. Возможные значения:
  • 01 — пароль не был изменен или сброшен,
  • 02 — пароль был изменен или сброшен в день проведения платежа,
  • 03 — менее 30 дней,
  • 04 — от 30 до 60 дней,
  • 05 — более 60 дней
payment_age string Дата добавления платежных данных карты в формате ДД-ММ-ГГГГ
payment_age_indicator string Количество дней с момента сохранения данных платежной карты, используемой для проведения платежа, в учетной записи пользователя. Возможные значения:
  • 01 — платеж проводится без аутентификации в учетной записи,
  • 02 — данные карты сохранены в день проведения платежа,
  • 03 — менее 30 дней,
  • 04 — от 30 до 60 дней,
  • 05 — более 60 дней
provision_attempts integer Количество попыток сохранения новых платежных данных карты за последние 24 часа, не более трех символов (999)
purchase_number integer Количество покупок, совершенных через эту учетную запись за последние 6 месяцев, не более четытрех символов (9999)
suspicious_activity string Индикатор подозрительной активности. Возможные значения:
  • 01 — без подозрений,
  • 02 — с подозрительной активностью
Табл. 3. Информация об адресах и номере телефона пользователя
ПАРАМЕТР ТИП ОПИСАНИЕ
email string Адрес электронной почты пользователя
phone string Номер телефона пользователя, может содержать только цифры, от четырех до двадцати четырех
billing — объект с информацией о платежном адресе пользователя
address string Улица платежного адреса пользователя
city string Город платежного адреса пользователя
country string Страна платежного адреса пользователя в формате ISO 3166-1 alpha-2
postal string Почтовый индекс платежного адреса пользователя
Табл. 4. Информация о доставке товара или услуги пользователю
ПАРАМЕТР ТИП ОПИСАНИЕ
shipping — объект, содержащий информацию о доставке
address string Адрес доставки, не более 150 символов
address_usage string Дата первого использования адреса доставки, указанного в параметрах этого объекта, в формате ДД-ММ-ГГГГ
address_usage_indicator string Количество дней с момента первого использования адреса доставки, указанного в параметрах этого объекта. Возможные значения:
  • 01 — указанный адрес используется впервые,
  • 02 — менее 30 дней назад,
  • 03 — от 30 до 60 дней назад,
  • 04 — более 60 дней назад
city string Название города доставки, не более 50 символов
country string Код страны доставки в формате ISO 3166-1 alpha-2, например GB для Великобритания
delivery_email string Адрес электронной почты в случае доставки на этот адрес. Может содержать не более 255 символов
delivery_time string Срок доставки. Возможные значения:
  • 01 — электронная доставка в день покупки,
  • 02 — доставка в день покупки,
  • 03 — доставка на следующий день после покупки,
  • 04 — доставка более чем через один день после покупки
name_indicator string Индикатор совпадения имени пользователя с именем получателя. Возможные значения:
  • 01 — имена совпадают,
  • 02 — имена не совпадают
postal string Почтовый индекс доставки, не более 16 символов
region_code string Код штата, провинции или региона страны в формате ISO 3166-2, например SPE для Санкт-Петербурга.

При указании значения этого параметра также необходимо указать значение параметра country в объекте shipping

type string Способ доставки, выбранный пользователем. Возможные значения:
  • 01 — доставка на платежный адрес держателя карты;
  • 02 — доставка на другой подтвержденный адрес;
  • 03 — доставка на адрес, не совпадающий с платежным и не являющийся подтвержденным;
  • 04 — доставка в магазин;
  • 05 — электронная доставка;
  • 06 — без доставки (например, в случае покупки билетов на мероприятие);
  • 07 — другое
Табл. 5. Данные о предыдущей аутентификации пользователя
ПАРАМЕТР ТИП ОПИСАНИЕ
mpi_result — объект с данными о предыдущей аутентификации пользователя
acs_operation_id string Идентификатор предыдущей операции пользователя на стороне эмитента, не более 36 символов. В качестве этого идентификатора необходимо использовать значение, полученное в параметре acs_operation_id оповещения о результате проведения предыдущего платежа
authentication_flow string

Указатель варианта предыдущего прохождения аутентификации пользователем, полученное в параметре authentication_flow оповещения о результате проведения предыдущего платежа.

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

  • 01 — frictionless flow,
  • 02 — challenge flow
authentication_timestamp string Дата и время предыдущей успешной аутентификации пользователя. В качестве значения необходимо использовать данные, полученные в параметре mpi_timestamp оповещения о результате проведения предыдущего платежа

Параметры в объекте payment

ПАРАМЕТР ТИП ОПИСАНИЕ
challenge_indicator string Указатель предпочтения по использованию варианта аутентификации challenge flow. Возможные значения:
  • 01 — без предпочтений;
  • 02 — предпочтительно не выполнять;
  • 03 — предпочтительно выполнять;
  • 04 — обязательно выполнять;
  • 05 — не выполнять, анализ рисков выполнен на стороне мерчанта;
  • 06 — не выполнять, применить сценарий Data Only;
  • 07 — не выполнять, Strong Customer Authentication уже выполнена иным способом;
  • 08 — не выполнять, мерчант включен в список доверенных для этого пользователя;
  • 09 — обязательно выполнять, предпочтительно предложить пользователю добавить мерчанта в список доверенных
challenge_window string Размер окна для открытия страницы аутентификации. Возможные значения:
  • 01 — 250 x 400 пикселей,
  • 02 — 390 x 400 пикселей,
  • 03 — 500 x 600 пикселей,
  • 04 — 600 x 400 пикселей,
  • 05 — полноэкранный режим
preorder_date string Планируемая дата поступления товара или услуги в формате ДД-ММ-ГГГГ
preorder_purchase string Индикатор предварительного заказа. Возможные значения:
  • 01 — не является предварительным заказом,
  • 02 — является предварительным заказом
reorder string Индикатор первичной или повторной покупки данного товара или услуги пользователем. Возможные значения:
  • 01 — первичная покупка,
  • 02 — повторная покупка
gift_card — объект с информацией об оплате предоплаченными или подарочными картами
amount integer Общая сумма оплаты предоплаченными или подарочными картами в дробых единицах валюты
currency string Код валюты оплаты предоплаченными или подарочными картами в формате ISO 4217 alpha-3 (например, GBP)
count integer Количество предоплаченных или подарочных карт, использованных для оплаты

Параметр в объекте billing

ПАРАМЕТР ТИП ОПИСАНИЕ
region_code string Код штата, провинции или региона страны в формате ISO 3166-2, например MOS для Московской области.

При указании значения этого параметра также необходимо указать значение параметра billing_country

Форматы промежуточных сообщений

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

Формат оповещения с данными для iframe

При расширенной схеме аутентификации через Gate от платежной платформы в веб-сервис могут передаваться оповещения с данными для формирования объекта iframe. Для этих оповещений используется стандартный формат, описание которого представлено в разделе Оповещения (callbacks) в Gate.

Оповещения с данными для формирования объекта iframe не передаются, если со стороны эмитента без использования данных об устройстве пользователя принято одно из следующих решений:

  • Выполнить проверку пользователя с перенаправлением на страницу аутентификации (вариант challenge flow). В этом случае со стороны веб-сервиса необходимо принять и обработать оповещение с данными для перенаправления (подробнее — ниже).
  • Аутентифицировать пользователя (вариант frictionless flow). В этом случае со стороны веб-сервиса необходимо принять и обработать оповещение о результате проведения платежа.

Следующий пример содержит данные для формирования объекта iframe. Эти данные необходимо использовать следующим образом: адрес из параметра url — в атрибуте action, а данные из других параметров — в тегах input.

Рис.: Пример данных для формирования объекта iframe

{ 
  "threeds2":{ 
    "iframe":{ 
      "url":"https://example.com",
      "params":{
        "3DSMethodData":"eyAidGhyZWVNrkthelJSUFQwaWZYMCUzQ",
        "threeDSMethodData":"eyAidGhjNjMGQ4YWU4LTA2u0wyWmtObGRdwR"
      }
    }
  }
}

Рис.: Пример разметки HTML-страницы для объекта iframe

<iframe id="tdsMmethodTgtFrame" name="tdsMmethodTgtFrame" style="width: 1px; height: 1px; 
display: none;" src="javascript:false;" xmlns="http://example.com/xhtml">
	<!--.-->
</iframe>
<form id="tdsMmethodForm" name="tdsMmethodForm" action="https://example.com" method="post" target="tdsMmethodTgtFrame" xmlns="http://example.com/xhtml">
	<input type="hidden" name="3DSMethodData" value="eyAidGhyZWVNrkthelJSUFQwaWZYMCUzQ"/>
	<input type="hidden" name="threeDSMethodData" value="eyAidGhjNjMGQ4YWU4LTA2u0wyWmtObGRdwR"/>
</form>
<script type="text/javascript" xmlns="http://example.com/xhtml">
    document.getElementById("tdsMmethodForm").submit();
</script>

Оповещения с данными для перенаправления

Оповещение для аутентификации по базовой схеме

При использовании базовой схемы аутентификации через Gate платежная платформа передает в веб-сервис оповещение с данными для перенаправления пользователя. Оповещение передается в стандартном формате, описание которого представлено в разделе Оповещения (callbacks) в Gate.

В следующем примере данные из оповещения свидетельствуют о том, что для платежной карты с номером 424242******4243 пользователя customer_12 поддерживается аутентификация 3‑D Secure 2 и необходимо перенаправить пользователя на страницу ожидания платежной платформы. Оповещение содержит объект acs с необходимыми для этого данными: сообщением PAReq, адресом страницы ожидания платежной платформы и данными мерчанта в платежной системе.

Рис.: Пример данных для перенаправления

{
    "project_id": 42,
    "customer": {
        "id": "customer_12"
    },
    "payment": {
        "id": "456789",
        "type": "purchase",
        "status": "awaiting 3ds result",
        "date": "2019-07-19T06:21:40+0000",
        "method": "card",
        "sum": {
            "amount": 10000,
            "currency": "EUR"
        },
        "description": ""
    },
    "account": {
        "number": "424242******4243",
        "type": "visa",
        "card_holder": "JOHN JONSON",
        "expiry_month": "08",
        "expiry_year": "2025"
    },
    "operation": {
        "id": 13002103,
        "type": "auth",
        "status": "awaiting 3ds result",
        "date": "2019-07-19T06:21:40+0000",
        "created_date": "2019-07-19T06:21:37+0000",
        "request_id": "e2fd233d27c064fbe01af291039e6478341a0489-3...9",
        "sum_initial": {
            "amount": 10000,
            "currency": "EUR"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "EUR"
        },
        "provider": {
            "id": 414,
            "payment_id": "",
            "result_code": "0",
            "result_message": "",
            "endpoint_id": 414
        },
        "code": "9999",
        "message": "Awaiting processing",
        "description": "",
        "eci": "07"
    },
    "acs": {
       "pa_req":"inLgICAiYWNzVHIDAtMDAwMDAwMDAwNHv5hu", // Сообщение PAReq
       "acs_url":"https://example.com/ACS", // Адрес страницы ожидания платежной платформы
       "md":"eyJwdXJjaGFzZV9vcGVyYXRpb25faWRfaWJ9" // Данные мерчанта в платежной системе
    },
    "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}

Оповещения для аутентификации по расширенной схеме

При использовании расширенной схемы аутентификации через Gate от платежной платформы к веб-сервису могут передаваться оповещения с данными для перенаправления пользователя на страницу аутентификации (ACS URL) эмитента. Оповещения передаются в стандартном формате, описание которого представлено в разделе Оповещения (callbacks) в Gate. Оповещения с данными для перенаправления пользователя на страницу аутентификации не передаются в случаях, если на стороне эмитента выбран вариант аутентификации frictionless flow. Вместо такого оповещения со стороны веб-сервиса необходимо принять и обработать оповещение о результате проведения платежа.

Следующий пример содержит данные для перенаправления пользователя на страницу аутентификации. Эти данные необходимо использовать следующим образом: адрес из параметра url — в атрибуте action, а данные из других параметров — в тегах input.

Рис.: Пример данных для перенаправления пользователя

{ 
  "threeds2":{ 
    "redirect":{ 
      "url":"https://example.com/ACS",
      "params":{
        "creq":"ewogICAiYWNzVHJhbnNJCIDAtMDAwMDAwMDAwN2Q5Ip9",
        "threeDSSessionData":"240000549"
      }
    }
  }
}

Рис.: Пример разметки HTML-страницы для перенаправления пользователя

<!DOCTYPE html SYSTEM "about:legacy-compat">
<html class="no-js" lang="en" xmlns="http://example.com/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta charset="utf-8" />
    <title>3D Secure Processing</title>
    <link href="https://example.com/mpi.css" rel="stylesheet" type="text/css" />
  </head>
  <body>
    <div id="main">
      <div id="content">
        <div id="order">
          <h2>3D Secure Processing</h2>
          <img src="https://example.com/preloader.gif" alt="Please wait.." /> <img src="https://
example.com/verifiedbyvisa.png" alt="Verified by VISA" />
          <div id="formdiv">
            <script type="text/javascript">
              function hideAndSubmitTimed(formid) { timer=setTimeout("hideAndSubmit('"+formid+"');",
100);} function hideAndSubmit(formid) { var formx=document.getElementById(formid); tif (formx!=null)
{ formx.style.visibility="hidden"; formx.submit(); } }
            </script>
            <div>
              <form id="webform0" name="red2ACSv2" method="POST" action="https://
example.com/ACS" accept_charset="UTF-8"> 
<input type="hidden" name="_charset_" value="UTF-8" /> 
<input type="hidden" name="creq" value="ewogICAiYWNzVHJhbnNJCIDAtMDAwMDAwMDAwN2Q5Ip9" /> 
<input type="hidden" name="threeDSSessionData" value="240000476" /> 
<input type="submit" name="submitBtn" value="Please click here to continue" /> 
              </form>
            </div>
          </div>
          <script type="text/javascript">
           thideAndSubmitTimed('webform0');
          </script>
          <noscript>
            <div align="center"> <b>Javascript is turned off or not supported!</b> <br/> </div>
          </noscript>
        </div>
      </div>
    </div>
  </body>
</html>

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

Если в запросе на проведение платежа передан параметр 3ds_notification_url, то при расширенной схеме аутентификации через Gate сервер управления доступом (ACS) эмитента передает в веб-сервис уведомление о получении данных об устройстве пользователя (в формате эмитента), в противном случае уведомление передается в платежную платформу.

Рис.: Пример идентификатора операции на стороне 3DS-сервера

threeDSServerTransID=3abd37b3-afa6-53cf-8000-000000006455

Формат запроса на начало аутентификации

Если в запросе на проведение платежа передан параметр 3ds_notification_url, при расширенной схеме аутентификации через Gate для инициирования аутентификации необходимо отправить в платежную платформу POST-запрос к конечной точке /v2/payment/card/3ds_check_iframe, если нет — инициирование аутентификации выполняется на стороне платформы. В запросе к этой конечной точке должны использоваться следующие объекты и параметры:

  • general — объект, содержащий основные идентификационные сведения запроса:
    • project_id — идентификатор проекта, полученный от Rocketpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • signature — подпись к данным запроса, составленная после указания целевых параметров (подробнее — в разделе Подписывание и проверка подписи).
  • threeds_completion_indicator — указатель получения уведомления о приеме данных в течение десяти секунд после открытия объекта iframe. Необходимо передать значение true при получении уведомления и значение false при его отсутствии в заданный период.

Таким образом, корректный запрос на инициирование аутентификации 3‑D Secure 2 должен содержать идентификаторы проекта и платежа и подпись.

Рис.: Пример набора данных в запросе на инициирование аутентификации

{ 
  "general":{ 
    "project_id":42,
    "payment_id":"456789",
    "signature":"v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
  },
  "threeds_completion_indicator":true
}

Формат уведомления о результате аутентификации

Формат уведомления для аутентификации по базовой схеме

При использовании базовой схемы аутентификации через Gate данные о результате аутентификации передаются в веб-сервис в формате платежной платформы. Как и при аутентификации 3‑D Secure 1, данные о результате аутентификации передаются в параметре pares, однако для 3‑D Secure 2 используется другой формат этих данных.

Рис.: Пример данных об успешном прохождении аутентификации по базовой схеме

pares=eyJ4aWQiOiJNREF3TURBd01EQXdNREF5TkRBd01ERXhNVFU9IiwibWRTdGF0dXMiOjEsIm1kRXJyb3JNc2ciOiJBdXRoZW5
            0aWNhdGVkIiwiZW5yb2xsbWVuU3RhdHVzIjpudWxsLCJhdXRoZW50aWNhdGlvblN0YXR1cyI6IlkiLCJjYXZ2I
            joiUVVOVFJVMVZLMkI5UFV4MWFXRXBhMlJpTjJVPSIsImVjaSI6IjA1In0=

Рис.: Пример данных об ошибке при прохождении аутентификации по базовой схеме

pares=eyJ4aWQiOiJNREF3TURBd01EQXdNREF5TkRBd01ERXhNVFk9IiwibWRTdGF0dXMiOjAsIm1kRXJyb3JNc2ciOiJOb3QgYXV
            0aGVudGljYXRlZCIsImVucm9sbG1lblN0YXR1cyI6bnVsbCwiYXV0aGVudGljYXRpb25TdGF0dXMiOiJOIiwiY
            2F2diI6IiIsImVjaSI6IiJ9

Формат уведомления для аутентификации по расширенной схеме

При использовании расширенной схемы аутентификации через Gate данные о результате аутентификации передаются в веб-сервис в формате эмитента. Эти данные передаются в параметре cres уведомления.

Рис.: Пример данных об успешном прохождении аутентификации по расширенной схеме

cres=ewogICJhY3NUcmFuc0lEIiA6ICJkYTIyNjY0Mi1hYzJhLTQ0N2ItYWFiYS1lNWI2Nzc2MjdmZmMiLAogICJtZXNzYWdlVHl
             wZSIgOiAiQ1JlcyIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlRFNTZXJ2ZXJUcmFu
             c0lEIiA6ICI5ZjE3OWM0My02NjA2LTU3YWUtODAwMC0wMDAwMDAwMDA3ZGQiLAogICJ0cmFuc1N0YXR1cyIgO
             iAiWSIKfQ&threeDSSessionData=240000554

Рис.: Пример данных об ошибке при прохождении аутентификации по расширенной схеме

cres=ewogICAiYWNzUmVmZXJlbmNlTnVtYmVyIiA6ICJBQ1NFbXUyIiwKICAgImFjc1RyYW5zSUQiIDog%0D%0AIjAwMDAwMDA
             wLTAwMDUtNWE1YS04MDAwLTAxNmQzZTI2ZWU2YyIsCiAgICJtZXNzYWdlVHlwZSIg%0D%0AOiAiQ1JlcyIsCi
             AgICJtZXNzYWdlVmVyc2lvbiIgOiAiMi4xLjAiLAogICAidGhyZWVEU1NlcnZl%0D%0AclRyYW5zSUQiIDogI
             jhiMjM0Y2ZmLTkzNjAtNTc5Yy04MDAwLTAwMDAwMDAwMDlhNiIsCiAgICJ0%0D%0AcmFuc1N0YXR1cyIgOiAi
             TiIKfQ==&threeDSSessionData=240000622

Формат запроса на продолжение платежа

При базовой и расширенной схемах аутентификации через Gate для продолжения проведения платежа с учетом результата аутентификации необходимо отправить в платежную платформу POST-запрос к конечной точке /v2/payment/card/3ds_result. В этом запросе должны использоваться следующие объекты и параметры:

  • general — объект, содержащий основные идентификационные сведения запроса:
    • project_id — идентификатор проекта, полученный от Rocketpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • signature — подпись к данным запроса, составленная после указания целевых параметров (подробнее — в разделе Подписывание и проверка подписи).
  • При базовой схеме: параметр pares с данными о результате аутентификации 3‑D Secure 2, полученными в уведомлении от платежной платформы.
  • При расширенной схеме: параметр cres с данными о результате аутентификации 3‑D Secure 2, полученными в уведомлении от сервера управления доступом.

Таким образом, корректный запрос на продолжение проведения платежа с учетом результата аутентификации 3‑D Secure 2 должен содержать идентификаторы проекта и платежа, подпись и данные о результате аутентификации.

Рис.: Пример набора данных в запросе на продолжение проведения платежа

{
   "general": {
   "project_id": 42,
   "payment_id": "456789",
   "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
   },
   "cres": "ewogICJhY3NUcmFuc0lEIiA6ICJkYTIyNjY0Mi1hYzJhLTQ0N2ItYWFiYS1lNWI2Nzc2MjdmZmMi
LAogICJtZXNzYWdlVHlwZSIgOiAiQ1JlcyIsCiAgIm1lc3NhZ2VWZXJzaW9uIiA6ICIyLjEuMCIsCiAgInRocmVlR
FNTZXJ2ZXJUcmFuc0lEIiA6ICI5ZjE3OWM0My02NjA2LTU3YWUtODAwMC0wMDAwMDAwMDA3ZGQiLAogICJ0cmFuc1
N0YXR1cyIgOiAiWSIKfQ"
  // Данные о результате аутентификации
}

Формат оповещения о результате платежа

Информация о результате платежа передается от платежной платформы в веб-сервис в оповещении стандартного формата, описание которого представлено в разделе Оповещения (callbacks) в Gate.

В случае выполнения аутентификации 3‑D Secure 2 при проведении платежа в объекте mpi_result оповещения дополнительно могут передаваться следующие параметры:

  • mpi_operation_id — идентификатор операции на стороне 3DS‑сервера;
  • ds_operation_id — идентификатор операции на стороне cервера каталогов международной платежной системы;
  • acs_operation_id — идентификатор операции на стороне сервера управления доступом эмитента;
  • mpi_timestamp — дата и время аутентификации;
  • cardholder_info — информация об аутентификации, которую рекомендуется отобразить пользователю при уведомлении о результате проведения платежа;
  • authentication_flow — указатель использованного варианта аутентификации: 01 для frictionless flow или 02 для challenge flow.

По умолчанию эти параметры не передаются. Для того, чтобы получать их в оповещениях, необходимо обратиться в службу технической поддержки support@rocketpay.kz.

Рис.: Пример данных из оповещения о результате оплаты с аутентификацией 3‑D Secure 2

{
  "account": {
    "number": "424242******4243",
    "token": "f365bb1729f9b72fd9c09703a751c979f3becc679f29c3e35c91d18070d15654",
    "type": "visa",
    "card_holder": "JUDY DOE",
    "id": 45678,
    "expiry_month": "08",
    "expiry_year": "2025"
  },
  "customer": {
    "id": "customer_12",
    "phone": "44991234567"
  },
  "payment": {
    "date": "2019-01-11T13:02:42+0000",
    "id": "456789",
    "method": "card",
    "status": "success",
    "sum": {
      "amount": 400000,
      "currency": "USD"
    },
    "type": "purchase",
    "description": ""
  },
  "project_id": 42,
  "operation": {
    "id": 969000002636,
    "type": "sale",
    "status": "success",
    "date": "2019-01-11T13:02:42+0000",
    "created_date": "2019-01-11T13:01:45+0000",
    "request_id": "c6eed1eb14c629b4ef20b3b8086d...d04132c34b0088cbc0be4667c",
    "sum_initial": {
      "amount": 400000,
      "currency": "USD"
    },
    "sum_converted": {
      "amount": 400000,
      "currency": "USD"
    },
    "provider": {
      "id": 408,
      "payment_id": "330157196",
      "date": "2019-01-11T13:02:32+0000",
      "auth_code": "",
      "endpoint_id": "612266625"
    },
    "mpi_result":{
      "mpi_operation_id":"",
            // Идентификатор операции на стороне 3DS‑сервера
      "ds_operation_id":"",
            // Идентификатор операции на стороне сервера каталогов международной платежной системы
      "acs_operation_id":"",
            // Идентификатор операции на стороне сервера управления доступом эмитента
      "mpi_timestamp":"YYYYMMDDHHMM",
            // Дата и время выполнения аутентификации
      "cardholder_info":"Additional authentication is needed for this transaction",
            // Информация об аутентификации, которую рекомендуется отобразить пользователю
      "authentication_flow":"02"
            // Информация о варианте аутентификации
    },
    "code": "0",
    "message": "Success",
    "eci": "07"
  },
  "signature": "v7KNMpfogAxwRIL9tVftZ1ZZ5D/aZAeb0VMdeR+CqGrNxYyilUwSm...=="
}