Page History
...
Название | Обяза- тельное поле | Принимаемые значения | Значение по умолчанию | Описание | ||||
Merchant_ID | Да | Число | Идентификатор предприятия в системе АПК Ассист | |||||
Login | Да | Строка | Ваш логин | |||||
Password | Да | Строка | Ваш пароль | |||||
OrderNumber | Да/Нет | 128 символов | Номер заказа в системе расчетов предприятия. | |||||
OrderAmount | Да | Число, 15 знаков, два знака после разделителя (допустимые разделители «.», «,») | Сумма платежа в оригинальной валюте (например, 10.34) | |||||
OrderCurrency | Нет | 3 символа | Валюта юр.лица или предприятия | Код валюты, в которой указана сумма платежа OrderAmount (RUB, USD, EUR) | ||||
OrderComment | Нет | 4000 символов | Комментарий | |||||
Delay | Нет | 0 – - одностадийный механизм работы, | 0 | Признак авторизации банковской карты при двустадийном механизме работы
| ||||
Language | Нет | RU – - русский | Язык юр.лица или предприятия | Язык авторизационных страниц | ||||
ClientIP | Нет/Да | IP адрес покупателя. Параметр является обязательным для протокола 3-D Secure версии 2. | ||||||
Cardtype | Нет | 1 – - VISA | Идентификатор типа карты для оплаты. | |||||
Cardnumber | Да | Номер карты | ||||||
Cardholder | Нет* | 70 символов без цифр. Разделитель – - пробел. | Держатель карты. | |||||
Expiremonth | Да | 1-12 | Месяц окончания действия карты | |||||
Expireyear | Да | Год в формате YYYY | Год окончания действия карты | |||||
Cvc2 | Да | CVC2 код | ||||||
Lastname | Нет* | 70 символов без цифр | Фамилия покупателя | |||||
Firstname | Нет* | 70 символов без цифр | Имя покупателя | |||||
Middlename | Нет | 70 символов без цифр | Отчество покупателя | |||||
Нет* | 128 символов | E-mail покупателя | ||||||
Address | Нет | 256 символов | Адрес покупателя | |||||
HomePhone | Нет | 64 символа | Домашний телефон покупателя | |||||
WorkPhone | Нет | 20 символов | Рабочий телефон покупателя | |||||
MobilePhone | Нет | 20 символа | Мобильный телефон покупателя | Fax | Нет | 20 символа | Факс покупателя | |
Country | Нет | 3 символа | Код страны покупателя | |||||
State | Нет | 3 символа | Код региона покупателя | |||||
City | Нет | 70 символа | Город покупателя | |||||
Zip | Нет | 25 символа | Индекс предприятия связи покупателя | |||||
isConvert | Нет | 0 - Не конвертировать в базовую валюту 1 - Не конвертировать при возможности 2 - Всегда конвертировать | 1 | Флаг конвертации валюты платежа в базовую валюту | ||||
Format | Нет | 1 – - CSV | 1 | Формат выдачи результата. Если запрос передан в формате SOAP, то ответ также будет в SOAP, в остальных случаях в соответствии с переданным значением форматарезультатов. Передается только для запроса в формате POST (по умолчанию ответ будет выдан в формате CSV). Для других форматов ответ выдается в том же формате, в котором был выполнен запрос. | ||||
Signature | Нет | строка | Формируется строка по определенным правилам. На базе этой строки алгоритмом MD5 формируется дайджест. Дайджест подписывается закрытым RSA ключом мерчанта. Длина ключа - 1024. Полученная байтовая последовательность является подписью магазина. Подпись передается нам в виде дополнительного параметра, закодированного в виде строки BASE64.
| |||||
RecurringIndicator | Нет | 1 –рекуррентный - рекуррентный платеж 0 - обычный платеж | 0 | Признак рекуррентного платежа
| ||||
RecurringMinAmount | Нет/Да | Число, 15 знаков, два знака после разделителя (допустимые разделители «.», «,») | Минимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
| |||||
RecurringMaxAmount | Нет/Да | Число, 15 знаков, два знака после разделителя (допустимые разделители «.», «,») | Максимальная сумма рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
| |||||
RecurringPeriod | Нет/Да | Число, 3 цифры | Периодичность рекуррентных платежей в днях. Параметр обязателен при RecurringIndicator = 1
| |||||
RecurringMaxDate | Нет/Да | Строковое представление даты в формате DD.MM.YYYY | Дата окончания рекуррентных платежей. Параметр обязателен при RecurringIndicator = 1
| |||||
CustomerNumber | Нет | 32 символа | Внутренний номер клиента предприятия (мерчанта)
| |||||
SaveCard | Нет | 1 – - карта привязывается к данному номеру клиента; 0 – - карта не привязывается | 0 | В случае успешного платежа разрешает сохранять карту по данному номеру клиента для последующих платежей. Если карта для данного номера клиента уже была сохранена ранее, то параметр игнорируется. | ||||
Disable3DS | Нет | 0 – - проверять 3-D Secure согласно настройкам предприятия, 1 –- проводить платеж без 3-D Secure. | 0 | Признак отключения 3-D Secure.
| ||||
typeChallengeResponseNotificationUrl | Нет | 255 символов | URL, на который отправляется результат прохождения 3ds и перенаправляется покупатель после Challenge. | |||||
type | Нет | cardpayment - покупатель платит картой; fastpaypayment - cardpayment – покупатель платит картой; fastpaypayment – покупатель платит через СБП. | cardpayment | Тип платежа, выбранный плательщиком при оплате заказа (картой или через СБП). | ||||
account | Нет | 30 символов | Идентификатор получателя денежных средств (номер оплачиваемого телефона) |
...
Название | Значение |
ordernumber | Номер заказа |
billnumber | Полный уникальный номер операции в системе |
testmode | Тестовый режим |
ordercomment | Комментарий |
orderamount | Оригинальная сумма заказа |
ordercurrency | Оригинальная валюта заказа |
amount | Сумма операции |
currency | Валюта операции |
rate | Курс валюты |
firstname | Имя плательщика |
lastname | Фамилия плательщика |
middlename | Отчество плательщика |
Email плательщика | |
ipaddress | IP-адрес плательщика |
meantypename | Тип платежного средства |
Параметры карты покупателя* | |
meansubtype | Подтип платежного средства |
meannumber | Номер платежного средства |
cardholder | Держатель платежного средства |
cardexpirationdate | Срок действия карты |
issuebank | Название банка-эмитента |
bankcountry | Страна банка-эмитента |
Параметры заказа | |
orderdate | Дата заказа по Гринвичу (GMT) |
orderstate | Статус заказа |
responsecode | Код возврата |
message | Сообщение |
customermessage | Сообщение о результате для покупателя |
recommendation | Рекомендации |
approvalcode | Код авторизации |
protocoltypename | Протокол |
processingname | Процессинг |
operationtype | Тип операции |
packetdate | Дата формирования запроса по Гринвичу (GMT) |
signature | Подпись. Создается по следующему алгоритму: 1. Формируется объединённая строка из параметров (в их строковом представлении, в формате как они переданы в ответе): billnumber, ordernumber, responsecode, orderamount, ordercurrency, meannumber, approvalcode, orderstate, packetdate (без разделителей) |
pareq | Пакет запроса по 3D-Secure авторизации |
ascurl | Адрес для переадресации плательщика для прохождения 3D-Secure авторизации |
Параметры СБП** | |
fastpayurl | Ссылка с QR-кодом для оплаты |
fastpaytimeout | Срок действия ссылки для оплаты (дата и время) |
fastpaytype | Тип ссылки, qrdynamic – - динамическая |
*Параметры не передаются в случае присутствия в запросе значения fastpaypayment для типа платежа (оплата через СБП).
...
При оплате картой, требующей авторизации по 3D-Secure, АПК Ассист возвращает код ответа (responsecode) AS110. В пакет ответа по режиму silentpay также добавляются дополнительные поля, позволяющие ТСП обеспечить дополнительную аутентификацию плательщика по технологиям 3-D Secure (карты VISA), Mastercard SecureCode и MirAccept (карты Мир).
В настоящее время для Для дополнительной аутентификации плательщика большинство банков-эмитентов работает по возможно применение версии 1 или версии 2 протокола 3-D Secure по всем типам карт.
Для более надежного процесса аутентификации банки-эмитенты и платежные системы переходят на новую версию 2 и выше протокола для всех типов карт (VISA, Mastercard, МИР). Для поддержки протокола нового поколения предприятию нужно внести изменения в процесс аутентификации плательщика.
. Технология протокола версии 1 используется для карт VISA и Mastercard, эмитированных в РФ. Технология протокола версии 2 используется для карт МИР и UPI.
Для начала оплаты заказа предприятие отправляет Для начала оплаты заказа предприятие отправляет авторизационный запрос на сервер АПК Ассист. К обычным параметрам запроса необходимо добавить следующие данные об устройстве и браузере клиента, если это еще не было сделано ранее для работы с СПМ . В новом протоколе 3-D Secure версии 2 эти данные являются обязательными.
Название | Принимаемые значения | Описание |
HEADER_HTTP_ACCEPT | Строка, 255 байт | Заголовок http запроса ACCEPT |
HEADER_HTTP_USER_AGENT | Строка, 255 байт | Заголовок http запроса USER-AGENT |
CLIENT_JAVA | Логическое (true, false) | navigator.javaEnabled() |
CLIENT_BROWSER_LANGUAGE | Строковый (5 байт) | navigator. language |
CLIENT_SCREEN_COLORS | Числовой (1, 4,8,15,16,24,32,48) | Screen.pixelDepth |
CLIENT_SCREEN_RES | Строковый, 16 символов | Screen.width + 'x' + screen.height |
ChallengeWindowSize | 2 символа (01 – - 250x400, 02 – - 390x400, 03 – - 500x600, 04 – - 600x400, 05 – - Full screen) | Размер iframe для прохождения проверки держателя карты |
ClientIP | Максимум 15 цифр, 4 разделителя «.» | IP адрес покупателя |
Anchor | ||||
---|---|---|---|---|
|
3D-Secure авторизация по протоколу версии 1
...
Для продолжения процесса авторизации по 3D-Secure магазину необходимо передать в АПК Ассист пакет результата авторизации по 3D-Secure pares. Данная функциональность реализована в веб-сервисе get3DSec.
Get3DSec – - веб-сервис передачи параметров авторизации карты по 3D-Secure
...
- Проверять версию протокола 3D-Secure в ответе на авторизационный запрос к сервису Assist. Для версии 1 поддерживать описанную выше схему работы.
- Для версии 2 сформировать скрытый Iframe на платежной странице (детальное описание параметров см. ниже) и отправить на ACS банка-эмитента запрос 3DSMethod (при наличии).
- Для продолжения аутентификации вызвать веб-сервис ws3dsecver2 с get3dsecver2 с дополнительными параметрами 3D-Secure. Если аутентификация произойдет без дополнительного взаимодействия с клиентом (Frictionless Flow), то АПК Ассист получит ее результат и отправит транзакцию авторизации в процессинг. В ответе предприятие получит полный результат оплаты, содержащий также и результат авторизации в процессинге. В случае необходимости дополнительной аутентификации клиента АПК Ассист вернет в ответе на запрос дополнительные поля для проведения проверки.
- При наличии в ответе дополнительных полей, сообщающих о необходимости дополнительной проверки (Challenge Flow), предприятие на платежной странице формирует IFrame, в котором реализует отображение страницы ACS банка-эмитента для ввода одноразового пароля. Покупатель завершает аутентификацию.
- При наличии в ответе дополнительных полей, сообщающих о возможности отложенной аутентификации (Decoupled Authentication), предприятие ожидает результата прохождения проверки. Аутентификация покупателя может быть пройдена альтернативным способом, поддерживаемым банком-эмитентом (например, через push-уведомление на телефоне и аутентификацию по Face id или отпечатку пальца в приложении банка-эмитента).
- Результат прохождения проверки АПК Ассист получит на сервер на своей стороне (для Challenge Flow и Decoupled Authentication). В случае успешной проверки будет проведена транзакция оплаты в процессинге. В случае неуспешной проверки операция завершится с ошибкой.
- Для того чтобы узнать окончательный результат оплаты заказа, предприятию необходимо использовать один из методов получения результата авторизации.
Логику работы нового протокола версии 2 отображает граф-нижеследующая схема. Текстовое описание ниже далее содержит ссылки на пронумерованные блоки граф- схемы.
Для начала оплаты заказа предприятие отправляет авторизационный запрос на сервер АПК Ассист и необходимые дополнительные параметры на сервер АПК Ассист (блок 1). Также могут использоваться необязательные дополнительные параметры.
При оплате картой, требующей авторизации по протоколу версии 2, АПК Ассист вернет в ответе код возврата AS110 (блок 2) и дополнительный блок параметров threedsdata. Список Полный список параметров, которые могут содержаться в блоке threedsdata, представлен в таблице ниже:
Название | Принимаемые значения | Описание | В ответе сервиса1 |
version | Версия протокола 3-D Secure | 1,2 | |
threeDSServerTransID | Строка | ID транзакции в 3DS Server | 1,2 |
threeDSMethodURL | Строка, до 256 символов | URL на стороне банка-эмитента или платежной системы | 1 |
threeDSMethodData | Строка, до 256 символов | Закодированное в Base64 тело запроса | 1 |
alphaauthresult | Y - успешно, N - неуспешно, A - Attempt, U – - невозможно провести аутентификацию, R - отказ, E - ошибка, I - для информации, S - без аутентификации с учетом низкой оценки риска | Результат аутентификации будет получен в ответе, если она произошла в одну стадию (Frictionless Flow) | 1,2 |
challenge | F - Frictionless Flow | Взаимодействие с держателем карты (C – - нужно, F – - не нужно, D - отложенная аутентификация) | 1,2 |
challengeurl2 | Полное доменное имя (URL) https://acs.... Длина максимум 2048 символов | URL банка-эмитента или платежной системы для проверки плательщика | 1,2 |
challengerequest2 | Сообщение, закодированное методом Base64, длина переменная | Данные запроса, отправляемого на challengeurl | 1,2 |
...
1Параметр может содержаться в ответе сервиса: 1 - silentpay; 2 – - get3dsecver2.
Anchor | ||||
---|---|---|---|---|
|
2В случае авторизации без дополнительной проверки (Frictionless Flow) и для отложенной аутентификации (Decoupled authentication) параметры challengeurl и challengerequest не будут возвращены.
В зависимости от содержания полученного блока threedsdata (блоки 3,47,58) аутентификация продолжается по-разному.
Основные сценарии работы :для версии 2 определяются тем, требуется ли вызов 3DSMethod (формирование скрытого iFrame в браузере клиента), а также требуется ли дополнительная аутентификация клиента и по какому сценарию она проходит:
- При Для версии 2 протокола 3D-Secure (блок 3) при наличии URL банка-эмитента threeDSMethodURL (блок 7) предприятие формирует скрытый HTML iFrame на платежной странице (блок 9), отправляет POST запрос с одним параметром threeDSMethodData на полученный адрес threeDSMethodURL, и далее вызывает сервис get3dsecver2 (блок 10).
- Для версии 2 протокола 3D-Secure (блок 3) при При наличии URL банка-эмитента threeDSMethodURL (блоки 7, 9, 10), но без необходимости дополнительного взаимодействия с держателем карты (блок 8) - Frictionless Flow (F), АПК Ассист сразу проводит транзакцию в процессинге или завершает операцию с ошибкой. В ответе на вызов сервиса get3dsecver2 предприятие получит статус оплаты (блок 6).
- Для версии 2 протокола 3D-Secure (блок 3) при При наличии URL банка-эмитента threeDSMethodURL (блоки 7, 9, 10) и при необходимости дополнительного взаимодействия с держателем карты (блок 8) предприятие должно сформировать на платежной странице объект HTML iFrame и отправить методом HTTP POST запрос проверки держателя карты к указанному URL challengeurl (блок 11). В этом iFrame отображается страница ACS банка эмитента и плательщик вводит одноразовый пароль, полученный от банка. Это сценарий Challenge Flow (C).
- Для версии 2 протокола 3D-Secure (блок 3) при При наличии URL банка-эмитента threeDSMethodURL (блоки 7, 9, 10) при необходимости дополнительного взаимодействия с держателем карты (блок 8) и отложенной аутентификации предприятие должно оставить заказ в состоянии В Процессе и ожидать окончательного статуса оплаты (в рамках времени жизни заказа). Это сценарий Decoupled Authentication (D).
- Для версии 2 протокола 3D-Secure (блок 3) при При отсутствии URL банка-эмитента threeDSMethodURL и когда дополнительное взаимодействие с держателем карты не требуется - Frictionless Flow (F), сразу же будет проведена транзакция в процессинге, и процесс оплаты будет завершен (блок 6). Предприятие получит результат аутентификации и статус оплаты сразу в ответе на вызов сервиса silentpay.
- При отсутствии URL банка-эмитента threeDSMethodURL и при необходимости дополнительного взаимодействия с держателем карты (блок 8) для сценария Challenge Flow (CДля версии 2 протокола 3D-Secure (блок 3), когда взаимодействие с держателем карты необходимо (блок 8), но URL банка-эмитента threeDSMethodURL отсутствует (Нет - пусто) предприятие должно сформировать на платежной странице объект HTML iFrame и отправить методом HTTP POST запрос проверки держателя карты к указанному URL challengeurl (блок 11). В этом iFrame отображается страница ACS банка эмитента и плательщик вводит одноразовый пароль, полученный от банка.
get3dsecver2 - веб-сервис продолжения аутентификации по 3D-Secure
После отправки запроса на адрес threeDSMethodURL для продолжения процесса аутентификации предприятию необходимо отправить запрос на новый сервис get3dsecver2 (блок 9).
- При отсутствии URL банка-эмитента threeDSMethodURL и при необходимости дополнительного взаимодействия с держателем карты (блок 8) по сценарию отложенной аутентификации (D) предприятие должно оставить заказ в состоянии В Процессе и ожидать окончательного статуса оплаты (в рамках времени жизни заказа).
В тех сценариях работы, в которых требуется формирование скрытого HTML iFrame, на шаге 7 в блокеthreedsdata предприятие получит необходимые параметры threeDSMethodData и threeDSMethodURLдля формирования POST запроса (блок 9). Результат отправки запроса Результат отправки запроса на threeDSMethodURL может быть положительным (код HTTP 200), отрицательным (любой другой код HTTP) или будет превышено значение тайм-аут аута отправки запроса (установить 10 секунд). После получения кода HTTP или истечения тайм-аута для продолжения процесса аутентификации необходимо отправить запрос на сервис get3dsecver2 (блок 10).
get3dsecver2 - веб-сервис продолжения аутентификации по 3D-Secure
URL для передачи запроса:
...
Ответ на запрос в этом случае будет содержать один из конечных кодов возврата (AS000 – - операция успешно завершена, AS100-AS109 – - отказ в авторизации), все поля ответа, описанные выше, и дополнительный блок данных threedsdata, в котором параметр challenge равен F, а поле alphaauthresult содержит результат аутентификации (Y, N, U, R, I).
Получение кода возврата AS110 в ответе на вызов сервиса get3dsecver2 означает, что нужна дополнительная проверка плательщика (Challenge Flow). При этом Для сценария с дополнительной проверкой (Challenge Flow) в блоке данных threedsdata параметр challenge будет равен C, а параметры challengeurl и challengerequest будут заполнены (блок 8).Предприятие Предприятие должно в этом случае сформировать на платежной странице объект HTML iFrame и отправить методом HTTP POST запрос проверки держателя карты к указанному URL (блок 11) с параметром creq, в котором передать полученное значение challengerequest. В этом iFrame отображается страница ACS банка-эмитента и плательщик вводит одноразовый пароль, полученный от банка, в котором передать полученное значение challengerequest. В этом iFrame отображается страница ACS банка-эмитента и плательщик вводит одноразовый пароль, полученный от банка.
В сценарии с отложенной аутентификацией в блоке данных threedsdata параметр challenge будет равен D, а параметры challengeurl и challengerequest будут отсутствовать (блок 8). Предприятие должно в этом случае оставить заказ в состоянии В Процессе и ожидать окончательного статуса оплаты.
Результат этой проверки АПК Ассист получит на свой сервер в асинхронном режиме (блоки 12, 13). В зависимости от результата аутентификации и настроек процессинга и предприятия (блок 14), АПК Ассист проведет транзакцию оплаты в процессинге или закроет операцию с ошибкой.
АПК Ассист может также продублировать результат прохождения 3D-Secure на сервер предприятия, для этого нужно Для того, чтобы после прохождения дополнительной проверки плательщик смог вернуться обратно на сайт предприятия, следует сообщить службе поддержки АПК Ассист URL для возврата покупателя и приема результата прохождения дополнительной проверки. Результат дополнительной проверки будет направлен платежной системой в параметре CRes. Для предприятия получение этого запроса будет означать, что дополнительная проверка завершена, и оно может в этот момент перенаправить браузер плательщика на страницу результата на своей стороне и ожидать завершения платежной транзакции в процессингетранзакции в процессинге.
Получение результата платежа после дополнительной проверки отражено на схеме блоками 12, 13, 14.
Warning |
---|
Процесс получения результата дополнительной проверки на сервера АПК Ассист является асинхронным. Только после получения этого результата будет проведена (или не проведена) транзакция оплаты в процессинге, которая приведет к блокировке средств на карте клиента. Предприятию следует получить результат операции оплаты от АПК Ассист одним из стандартных способов. Предприятие может отправить запрос к сервису получения результата операции по номеру заказа, либо настроить на своей стороне получение результатов авторизации, отправляемых АПК Ассист на сервер предприятия. |
...
Code Block | ||
---|---|---|
| ||
{ "threedsdata": { "version": "2.2.0", "challengerequest": "eyJtZXNzYWdlVHlwZSI6IkNSZXEiLCJ0aHJlZURTU2VydmVyVHJhbnNJRCI6IjQxMWI2ODVjLWUzODAtNGZkYS05YmIzLWJiZjM2OTJiNGMyNiIsImFjc1RyYW5zSUQiOiJmY2FlMDMzNS0xODgwLTRlNjgtOWJjMy0wMDcyZDM4ZTkzODYiLCJjaGFsbGVuZ2VXaW5kb3dTaXplIjoiMDIiLCJtZXNzYWdlVmVyc2lvbiI6IjIuMS4wIn0", "challengeurl": "https://fake.3dss.t.paysecure.ru/acs/challenge", "challenge": "C" }, "MakePaymentResponse": { "customermessage": "Создана Аутентификация клиента по технологии 3DSecure", "message": "Создана Аутентификация клиента по технологии 3DSecure", "testmode": 0, "operationtype": 100, "orderdate": "05.04.2022 11:19:32", "packetdate": "05.04.2022 11:19:34", "orderamount": 31.79, "ordercomment": "", "cardexpirationdate": "12/23/23", "ordercurrency": "RUB", "recommendation": "", "processingname": "Credx", "meannumber": "554373****6654", "orderstate": "In Process", "ordercurrencyrate": "RUB"1, "recommendationamount": ""31.79, "processingnameresponsecode": "CredxAS110", "meannumbermeantypename": "554373****6654MasterCard", "orderstateprotocoltypename": "In ProcessNET", "ratebankcountry": 1"Россия", "amountcustomer": 31.79, { "responsecodelastname": "AS110Test", "meantypenamefirstname": "MasterCardAuto", "protocoltypenamemiddlename": "NET", "bankcountryipaddress": "Россия127.0.0.1", "customeremail": { "null@assist.ru" }, "lastnamecardholder": "TestTEST", "firstnameapprovalcode": "Auto", "middlenamebillnumber": "5817109255129273.1", "ipaddressissuebank": "127.0.0.1BANK OTKRITIE", "emailcurrency": "null@assist.ruRUB", }"ordernumber": "6b510f3d-1327-4f3b-bc17-612daeed3aac", "cardholdermeansubtype": "TEST",Platinum MasterCard Salary-Immediate Debit" } } |
Пример параметра CRes с результатом дополнительной проверки покупателя
Code Block | ||
---|---|---|
| ||
{ "approvalcodemessageType": "CRes", "billnumberthreeDSServerTransID": "5817109255129273.1"1b760648-104c-42a0-a047-5a3f422fcbfa", "issuebankacsTransID": "BANK OTKRITIE"60c63017-4779-4c44-a47b-da8dc45ed989", "currencychallengeCompletionInd": "RUBY", "ordernumbermessageVersion": "6b510f3d-1327-4f3b-bc17-612daeed3aac"2.1.0", "meansubtypetransStatus": "Platinum MasterCard Salary-Immediate Debit" }"Y" } |