Аутентификация 3‑D Secure
Общая информация
Обзор
Аутентификация пользователя с использованием протокола 3‑D Secure (Three-Domain Secure) предназначена для безопасного проведения интернет-оплат с использованием платёжных карт. Она может выполняться с применением различных методов проверки подлинности пользователя: например, через указание пользователем одноразового проверочного кода (One Time PIN, OTP), с помощью проверки отпечатка пальца пользователя на его мобильном устройстве или без каких-либо действий со стороны пользователя, на основе информации о платеже и пользователе. В разных случаях могут поддерживаться различные методы проверки.
В аутентификации 3‑D Secure могут задействоваться три домена:
- Домен эквайера. В рамках работы с платёжной платформой ecommpay к нему относятся веб-сервис мерчанта, платёжная платформа и связанный с ней 3DS-сервер.
- Домен совместимости. К нему относятся серверы каталогов (Directory Servers, DS) международных платёжных систем.
- Домен эмитента. К нему относятся серверы управления доступом (Access Control Servers, ACS) эмитента (и страницы аутентификации).
Между этими доменами осуществляется обмен сообщениями, необходимыми для аутентификации пользователя. К таким сообщениям относятся запрос на проверку возможности проведения аутентификации (Verifying Enrolment Request, VEReq) и ответ на него (Verifying Enrolment Response, VERes), а также запрос на аутентификацию пользователя (Challenge Request, CReq) и ответ с информацией о результате аутентификации (Challenge Response, CRes).
Следует учитывать, что информация о возможности аутентификации пользователя и о версии протокола, по которой необходимо выполнять аутентификацию, хранится на сервере управления доступом, и эту информацию можно получить только после отправки запроса на проведение платежа. Также со стороны веб-сервиса и платёжной платформы невозможно отслеживать действия пользователей на странице аутентификации — доступно только получение информации о результате аутентификации.
Варианты аутентификации
Аутентификация 3‑D Secure может выполняться в следующих вариантах:
- Аутентификация без участия пользователя (frictionless flow). Выбор эмитентом этого варианта, как правило, способствует повышению проходимости и улучшению пользовательского опыта.
- Аутентификация с подтверждением пользователем своей личности (challenge flow). Подтверждение личности может выполняться, например, с использованием одноразового кода или биометрических данных, если такая возможность поддерживается эмитентом.
Со стороны мерчанта выбрать требуемый вариант аутентификации нельзя, поддерживается только указание предпочтений по такому выбору, но итоговое решение принимается на стороне эмитента. Также, помимо указания предпочтений в запросах на проведение платежа можно передавать ряд других необязательных параметров, применение которых может повысить вероятность выбора варианта аутентификации frictionless flow.
billing
) и HTTP-заголовок User-Agent, полученный со стороны браузера (параметр browser
). Информация об этих и других параметрах представлена далее.Схемы работы
В платёжной платформе ecommpay аутентификация 3‑D Secure может выполняться при проведении карточных одностадийных и двухстадийных оплат, а также при проверках действительности платёжных карт. При этом может использоваться одна из двух схем выполнения аутентификации: базовая (proxy) и расширенная (native).
Базовая схема (Proxy) | Расширенная схема (Native) |
---|---|
|
|
Перейти от использования базовой схемы к использованию расширенной можно в любое время, без дополнительных согласований со специалистами ecommpay. Для этого достаточно передать в запросе на проведение платежа параметры, обязательные для расширенной схемы. Эти параметры перечислены далее, в разделе Формат запросов на проведение платежей.
Пользовательские сценарии
В зависимости от используемой схемы, варианта аутентификации, выбранного эмитентом, и других факторов процесс аутентификации может выглядеть по-разному. Так, при аутентификации пользователю могут отображаться страница ожидания на стороне веб-сервиса или платформы и ACS-страница на стороне эмитента.
На примере расширенной схемы пользовательский сценарий может выглядеть следующим образом.
Схемы работы
Базовая схема
В платёжной платформе информирование мерчанта о необходимости аутентификации 3‑D Secure осуществляется через оповещения, при приёме которых, как обычно при работе с платформой, необходимо отправлять ответы.
В базовой схеме оповещения о необходимости аутентификации содержат объект acs
, и в качестве реагирования на такие оповещения необходимо перенаправить пользователя на страницу эмитента, принять сведения о результате аутентификации и отправить эти сведения в запросе на продолжение платежа. Время ожидания в платформе такого запроса составляет, как правило, 30 минут и измеряется с момента выявления необходимости аутентификации и до получения запроса от веб-сервиса. Если время ожидания истекло и запрос не принят — платёж автоматически отклоняется.
После поступления в платёжную платформу информации о результате аутентификации проведение платежа продолжается. В случае, если подключено каскадное проведение платежей, может понадобиться принять одно или несколько дополнительных оповещений о необходимости аутентификации 3‑D Secure. Если полученное оповещение содержит параметр cascading_with_redirect
со значением true
, необходимо:
- Отобразить пользователю страницу с сообщением об ошибке и получить его согласие на повторную аутентификацию.
- Отреагировать на оповещение необходимым способом.
Информацию о каскадном проведении платежей можно получить в соответствующей статье или у специалистов технической поддержки .
Информация о форматах запросов и оповещений приведена далее; общая информация о работе с API — в разделе Организация взаимодействия.
Расширенная схема
В платёжной платформе информирование о необходимости аутентификации 3‑D Secure осуществляется через оповещения, при приёме которых необходимо отправлять ответы. Такое информирование не осуществляется только в тех случаях, когда со стороны эмитента принято решение об аутентификации пользователя без предоставления дополнительных сведений. В этих случаях со стороны веб-сервиса не требуется действий, отличных от стандартных при проведении платежа, а информация о результате аутентификации передаётся в итоговом оповещении.
При использовании расширенной схемы оповещение о необходимости аутентификации содержит объект iframe
(в объекте threeds2
). В качестве реагирования на это оповещение необходимо:
- Отобразить пользователю элемента iframe с использованием данных из оповещения.
- Принять от сервера управления доступом (ACS) эмитента уведомление о приёме данных и отправить в платёжную платформу запрос на инициирование аутентификации.
- В случае выбора эмитентом варианта аутентификации frictionless flow — принять информацию о результате аутентификации, а в случае выбора варианта аутентификации challenge flow выполнить следущие действия:
- принять от платёжной платформы оповещение с объектом
redirect
(в объектеthreeds2
) и отправить ответ о приёме этого оповещения; - перенаправить пользователя на страницу аутентификации в течение 30 секунд после приёма оповещения;
- принять от эмитента данных о результате аутентификации;
- отправить в платформу запрос на продолжение проведение платежа с учётом результата аутентификации (
3ds_result
) в течение 30 минут после выявления необходимости аутентификации.
- принять от платёжной платформы оповещение с объектом
После поступления в платёжную платформу информации о результате аутентификации проведение платежа продолжается. В случае, если подключено каскадное проведение платежей, может понадобиться принять одно или несколько дополнительных оповещений с объектом redirect
. Если такое оповещение содержит параметр cascading_with_redirect
со значением true
, необходимо:
- Отобразить пользователю страницу с сообщением об ошибке и получить его согласие на повторную аутентификацию.
- Отреагировать на оповещение необходимым способом.
Информацию о каскадном проведении платежей можно получить в соответствующей статье или у специалистов технической поддержки support@ecommpay.com.
Информация о форматах оповещений и запросов, используемых в этой схеме, приведена в разделе Форматы промежуточных сообщений для расширенной схемы; общая информация о работе с Gate API — в разделе Организация взаимодействия.
Формат запросов на проведение платежей
Общая информация
Формат запроса на проведение платежа не влияет на возможность выполнения аутентификации 3‑D Secure и должен соответствовать описанному в статье Организация взаимодействия. Набор параметров, обязательных для этого платежа, должен соответствовать набору, описанному в статье про соответствующий тип платежа, включая разрешение экрана пользователя (параметр screen_res
), его адрес электронной почты и номер его телефона (параметры email
и phone
соответственно) для оплат, и дополняться, в случае использования расширенной схемы, объектом acs_return_url
с адресами веб-сервиса для перенаправления к нему пользователя и для получения уведомления от эмитента.
Вместе с тем, в числе необязательных параметров рекомендуется передавать информацию о платеже (такую как предпочтительный вариант аутентификации и выбранный способ доставки) и о пользователе (такую как платёжный адрес пользователя) — это может повысить вероятность выбора варианта аутентификации frictionless flow, то есть варианта аутентификации пользователя без каких-либо действий с его стороны. Со стороны веб-сервиса мерчанта можно передавать как все, так и только некоторые из этих параметров. К базовому минимуму можно отнести платёжный адрес пользователя (параметры объекта billing
) и значение HTTP-заголовка User-Agent, полученного со стороны его браузера (параметр browser
).
Обязательные параметры
При использовании расширенной схемы в запросах на проведение платежей необходимо передавать объект acs_return_url
со следующими параметрами.
Параметр | Описание |
---|---|
|
Адрес веб-сервиса для перенаправления пользователя после аутентификации, является обязательным при использовании расширенной схемы |
|
Адрес веб-сервиса для получения уведомления о том, что данные приняты сервером управления доступом. Является обязательным при использовании расширенной схемы |
Рекомендуемые параметры
При использовании базовой и расширенной схем в запросах на проведение платежей рекомендуется передавать следующую информацию о платеже и пользователе.
Параметр | Описание | |
---|---|---|
|
Объект с информацией о пользователе | 2 |
|
Значение HTTP-заголовка Accept, полученного со стороны браузера пользователя | 2-12 |
|
Значение HTTP-заголовка User-Agent, полученного со стороны браузера пользователя | 2-22 |
|
Глубина цвета браузера пользователя в битах на пиксель | 2-32 |
|
Индикатор поддержки сценариев Java браузером пользователя | 2-42 |
|
Индикатор поддержки сценариев JavaScript браузером пользователя | 2-52 |
|
Код языка, установленного в браузере пользователя | 2-62 |
|
Разрешение экрана устройства пользователя, в пикселях и с символом x в качестве разделителя (например, 360x640 ) |
2-72 |
|
Название часового пояса браузера пользователя (например, Europe/London ) |
2-82 |
|
Разница между временем браузера пользователя и UTC, указывается в минутах (например, -120 ) |
2-92 |
|
Указатель совпадения платёжного адреса пользователя с адресом доставки, указанным в объекте Возможные значения:
|
2-102 |
|
Номер домашнего телефона пользователя, может содержать только цифры, от четырёх до двадцати четырёх (например, 44991234567 ) |
2-112 |
|
Номер рабочего телефона пользователя, может содержать только цифры, от четырёх до двадцати четырёх (например, 44997654321 ) |
2-122 |
|
Объект, содержащий информацию об учётной записи пользователя на стороне мерчанта | 2-132 |
|
Дополнительная информация об учётной записи пользователя, например её идентификатор; в произвольном формате с использованием до шестидесяти четырёх символов | 2-13-12-13 |
|
Количество попыток проведения оплаты за последние 24 часа, не более трёх символов (999 ) |
2-13-22-13 |
|
Количество попыток проведения оплаты за последние 365 дней, не более трёх символов (999 ) |
2-13-32-13 |
|
Количество дней с момента создания учётной записи пользователя. Возможные значения:
|
2-13-42-13 |
|
Дополнительная информация об аутентификации на стороне веб-сервиса в произвольном формате. Параметр может содержать не более 255 символов | 2-13-52-13 |
|
Указатель способа последней аутентификации пользователя на стороне веб-сервиса. Возможные значения:
|
2-13-62-13 |
|
Дата и время последней аутентификации пользователя на стороне веб-сервиса в формате ДД-ММ-ГГГГчч:мм |
2-13-72-13 |
|
Дата создания учётной записи в формате ДД-ММ-ГГГГ |
2-13-82-13 |
|
Дата последних изменений в учётной записи, за исключением изменения или сброса пароля, в формате ДД-ММ-ГГГГ |
2-13-92-13 |
|
Количество дней с момента последних изменений в учётной записи, за исключением изменения или сброса пароля. Возможные значения:
|
2-13-102-13 |
|
Дата последнего изменения или сброса пароля в формате ДД-ММ-ГГГГ |
2-13-112-13 |
|
Количество дней с момента последнего изменения или сброса пароля. Возможные значения:
|
2-13-122-13 |
|
Дата добавления платёжных данных карты в формате ДД-ММ-ГГГГ |
2-13-132-13 |
|
Количество дней с момента сохранения данных платёжной карты, используемой для проведения платежа, в учётной записи пользователя. Возможные значения:
|
2-13-142-13 |
|
Количество попыток сохранения новых платёжных данных карты за последние 24 часа, не более трёх символов (999 ) |
2-13-152-13 |
|
Количество покупок, совершённых через эту учётную запись за последние 6 месяцев, не более четырёх символов (9999 ) |
2-13-162-13 |
|
Индикатор подозрительной активности. Возможные значения:
|
2-13-172-13 |
|
Адрес электронной почты пользователя | 2-142 |
|
Номер телефона пользователя, может содержать только цифры, от четырёх до двадцати четырёх | 2-152 |
|
Объект с информацией о платёжном адресе пользователя | 2-162 |
|
Улица платёжного адреса пользователя | 2-16-12-16 |
|
Город платёжного адреса пользователя | 2-16-22-16 |
|
Страна платёжного адреса пользователя в формате ISO 3166-1 alpha-2 | 2-16-32-16 |
|
Почтовый индекс платёжного адреса пользователя | 2-16-42-16 |
|
Код штата, провинции или региона страны в формате ISO 3166-2, например DEV для графства Девон.При указании значения этого параметра также необходимо указать значение параметра |
2-16-52-16 |
|
Объект, содержащий информацию о доставке | 2-172 |
|
Адрес доставки, не более ста пятидесяти символов | 2-17-12-17 |
|
Дата первого использования адреса доставки, указанного в параметрах этого объекта, в формате ДД-ММ-ГГГГ |
2-17-22-17 |
|
Количество дней с момента первого использования адреса доставки, указанного в параметрах этого объекта. Возможные значения:
|
2-17-32-17 |
|
Название города доставки, не более пятидесяти символов | 2-17-42-17 |
|
Код страны доставки в формате ISO 3166-1 alpha-2 (например, GB) | 2-17-52-17 |
|
Адрес электронной почты в случае доставки на этот адрес. Может содержать не более 255 символов | 2-17-62-17 |
|
Срок доставки. Возможные значения:
|
2-17-72-17 |
|
Индикатор совпадения имени пользователя с именем получателя. Возможные значения:
|
2-17-82-17 |
|
Почтовый индекс доставки, не более шестнадцати символов | 2-17-92-17 |
|
Код штата, провинции или региона страны в формате ISO 3166-2, например DOR для графства Дорсет.При указании значения этого параметра также необходимо указать значение параметра |
2-17-102-17 |
|
Способ доставки, выбранный пользователем. Возможные значения:
|
2-17-112-17 |
|
Объект с данными о предыдущей аутентификации пользователя | 2-182 |
|
Идентификатор предыдущей операции пользователя на стороне эмитента, не более тридцати шести символов. В качестве этого идентификатора необходимо использовать значение, полученное в параметре acs_operation_id оповещения о результате проведения предыдущего платежа |
2-18-12-18 |
|
Указатель варианта предыдущего прохождения аутентификации пользователем, полученное в параметре Возможные значения:
|
2-18-22-18 |
|
Дата и время предыдущей успешной аутентификации пользователя. В качестве значения необходимо использовать данные, полученные в параметре mpi_timestamp оповещения о результате проведения предыдущего платежа |
2-18-32-18 |
|
Объект со сведениями о платеже | 3 |
|
Указатель предпочтения по использованию варианта аутентификации challenge flow. Возможные значения:
|
3-13 |
|
Размер окна для открытия страницы аутентификации. Возможные значения:
|
3-23 |
|
Планируемая дата поступления товара или услуги в формате ДД-ММ-ГГГГ |
3-33 |
|
Индикатор предварительного заказа. Возможные значения:
|
3-43 |
|
Индикатор первичной или повторной покупки данного товара или услуги пользователем. Возможные значения:
|
3-53 |
|
Объект с информацией об оплате предоплаченными или подарочными картами | 3-63 |
|
Общая сумма оплаты предоплаченными или подарочными картами в минорных единицах валюты | 3-6-13-6 |
|
Код валюты оплаты предоплаченными или подарочными картами в формате ISO 4217 alpha-3 (например, GBP) | 3-6-23-6 |
|
Количество предоплаченных или подарочных карт, использованных для оплаты | 3-6-33-6 |
Форматы промежуточных сообщений для базовой схемы
Формат оповещения о необходимости аутентификации
При использовании базовой схемы аутентификации от платёжной платформы к веб-сервису передаётся оповещение с данными для перенаправления пользователя. Оповещение передаётся в стандартном формате, описание которого представлено в разделе Оповещения.
Данные для перенаправления пользователя передаются в объекте acs
. К таким данным относятся: сообщение CReq (в параметре pa_req
) для направления запроса на прохождение аутентификации 3‑D Secure эмитенту, адрес страницы аутентификации (acs_url
) и данные мерчанта в платёжной системе — Merchant Data (md
).
Формат запроса на перенаправление
Для перенаправления пользователя на страницу аутентификации или страницу провайдера необходимо направить запрос на адрес, полученный в оповещении о необходимости аутентификации. Это должен быть POST-запрос со следующими объектами и параметрами:
action
— адрес страницы, на которую необходимо перенаправить пользователя, полученный в параметреacs_url
оповещения;PaReq
— сообщение CReq, полученное в параметреpa_req
оповещения;TermUrl
— адрес для перенаправления пользователя к веб-сервису после аутентификации;MD
— данные мерчанта в международной платёжной системе (Merchant Data), полученные в параметреmd
оповещения.
Для удобства можно воспользоваться готовым примером — Пример HTML-формы, — заменив параметры на актуальные для платежа.
Формат уведомления о результате аутентификации
Данные о результате аутентификации передаются к веб-сервису в параметре pares
.
Формат запроса на продолжение платежа
Для продолжения проведения платежа с учётом результата аутентификации необходимо отправить в платёжную платформу POST-запрос к конечной точке /v2/payment/card/3ds_result. В этом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;signature
— подпись к данным запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью).
pares
— сведения о результате аутентификации 3‑D Secure, полученные в уведомлении.
Таким образом, корректный запрос на продолжение проведения платежа с учётом результата аутентификации 3‑D Secure должен содержать идентификаторы проекта и платежа, подпись и данные о результате аутентификации.
Форматы промежуточных сообщений для расширенной схемы
Формат оповещения с данными для объекта iframe
При расширенной схеме аутентификации через Gate от платёжной платформы к веб-сервису могут передаваться оповещения с данными для формирования объекта iframe. Для этих оповещений используется стандартный формат, описание которого представлено в разделе Оповещения.
Оповещения с данными для формирования объекта iframe не передаются, если со стороны эмитента без использования данных об устройстве пользователя принято одно из следующих решений:
- Выполнить проверку пользователя с перенаправлением на страницу аутентификации (вариант challenge flow). В этом случае со стороны веб-сервиса необходимо принять и обработать оповещение с данными для перенаправления (подробнее — ниже).
- Аутентифицировать пользователя (вариант frictionless flow). В этом случае со стороны веб-сервиса необходимо принять и обработать оповещение о результате проведения платежа.
Следующий пример содержит данные для формирования объекта iframe. Эти данные необходимо использовать следующим образом: адрес из параметра url
— в атрибуте action
, а данные из других параметров — в тегах input
.
Формат оповещения о необходимости аутентификации
При использовании расширенной схемы аутентификации через Gate от платёжной платформы к веб-сервису могут передаваться оповещения с данными для перенаправления пользователя на страницу аутентификации (ACS URL) эмитента. Оповещения передаются в стандартном формате, описание которого представлено в разделе Оповещения. Оповещения с данными для перенаправления пользователя на страницу аутентификации не передаются в случаях, если на стороне эмитента выбран вариант аутентификации frictionless flow. Вместо такого оповещения со стороны веб-сервиса необходимо принять и обработать оповещение о результате проведения платежа.
Следующий пример содержит данные для перенаправления пользователя на страницу аутентификации. Эти данные необходимо использовать следующим образом: адрес из параметра url
— в атрибуте action
, а данные из других параметров — в тегах input
.
Формат уведомления о приёме данных об устройстве пользователя
При расширенной схеме аутентификации от сервера управления доступом (ACS) эмитента на URL веб-сервиса, указанный в запросе на проведение платежа (в параметре 3ds_notification_url
), передаётся уведомление о приёме данных об устройстве пользователя. Это уведомление передаётся в формате эмитента.
Формат запроса на инициирование аутентификации
При расширенной схеме аутентификации для инициирования аутентификации необходимо отправить в платёжную платформу POST-запрос к конечной точке /v2/payment/card/3ds_check_iframe. В запросе к этой конечной точке должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay;payment_id
— идентификатор платежа, уникальный в рамках проекта;signature
— подпись к данным запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью).
threeds_completion_indicator
— указатель получения уведомления о приёме данных в течение десяти секунд после открытия объекта iframe. Необходимо передать значениеtrue
при получении уведомления и значениеfalse
при его отсутствии в заданный период.
Таким образом, корректный запрос на инициирование аутентификации 3‑D Secure должен содержать идентификаторы проекта и платежа и подпись.
Формат уведомления о результате аутентификации
При использовании расширенной схемы аутентификации через Gate данные о результате аутентификации передаются к веб-сервису в формате эмитента. Эти данные передаются в параметре cres
уведомления.
Формат запроса на продолжение платежа
При базовой и расширенной схемах аутентификации через Gate для продолжения проведения платежа с учётом результата аутентификации необходимо отправить в платёжную платформу POST-запрос к конечной точке /v2/payment/card/3ds_result. В этом запросе должны использоваться следующие объекты и параметры:
general
— объект, содержащий основные идентификационные сведения запроса:project_id
— идентификатор проекта, полученный от ecommpay;payment_id
— идентификатор платежа, уникальный в рамках проекта;signature
— подпись к данным запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью).
cres
— данные о результате аутентификации 3‑D Secure, полученные в уведомлении от сервера управления доступом.
Таким образом, корректный запрос на продолжение проведения платежа с учётом результата аутентификации 3‑D Secure должен содержать идентификаторы проекта и платежа, подпись и данные о результате аутентификации.
Формат оповещений о результатах платежей
Информация о результате платежа передаётся от платёжной платформы к веб-сервису в оповещении стандартного формата, описание которого представлено в разделе Оповещения.
В случае выполнения аутентификации 3‑D Secure при проведении платежа в объекте 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@ecommpay.com.