FinishAuthorizeRequest class
Метод подтверждает платеж передачей реквизитов, а также списывает средства с карты покупателя при одностадийной оплате и блокирует указанную сумму при двухстадийной.
Используется, если у площадки есть сертификация PCI DSS
и собственная платежная форма.
Для ApplePay
(расшифровка токена происходит на стороне Мерчанта
) надо:
- Передавать route = Route.acq и source = Source.applePay;
- Передавать объект cardData.
Продавец формирует объект cardData из расшифрованного параметра paymentData
, полученного от Apple
.
Для ApplePay
(расшифровка токена происходит на стороне Банка
) надо:
- Передавать route = Route.acq и source = Source.applePay;
- Передавать параметр encryptedPaymentData вместо cardData
Продавец формирует параметр encryptedPaymentData из параметра paymentData
, закодированное в Base64
.
Параметр paymentData
Apple
возвращает в объекте PKPaymentToken
.
Для GooglePay
(расшифровка токена происходит на стороне Мерчанта
) надо:
- Передавать route = Route.acq и source = Source.googlePay;
- Передавать объект cardData.
В случае получения от GooglePay payload
версии ECv1
содержимое объекта
encryptedMessage.paymentMethodDetails
:
pan
илиdpan
вpan
(в зависимости от наличия)expirationMont
+expirationYear
вExpDate
3dsCryptogram
вCAVV
(если есть)3dsEciIndicator
вECI
(если есть);
В случае получения от GooglePay payload
версии ECv2
содержимое объекта
encryptedMessage.paymentMethodDetails
:
pan
вpan
expirationMont
+expirationYear
вExpDate
cryptogram
вCAVV
(если есть)eciIndicator
вECI
(если есть)
В случае получения CAVV
в CardData
оплата будет проводиться как оплата токеном, иначе
прохождение 3DS будет регулироваться стандартными настройками треминала/платежа.
Для GooglePay
(расшифровка токена происходит на стороне Банка
) надо:
- Передавать route = Route.acq и source = Source.googlePay;
- Передавать параметр encryptedPaymentData вместо cardData
Для YandexPay
(расшифровка токена происходит на стороне Мерчанта
) надо:
- Передавать route = Route.acq и source = Source.yandexPay;
- Передавать в
DATA.transactionId
значениеPaymentToken.messageId
- Передавать в
DATA.YandexPayWeb
значениеtrue
- Передавать параметр cardData
Размапить параметры из расшифрованного токена
event.token
paymentMethodDetails.pan
вpan
paymentMethodDetails,expirationMonth
+paymentMethodDetails.expirationYear
вExpDate
paymentMethodDetails.cryptogram
вCAVV
(если есть)paymentMethodDetails.eci
вECI
(если есть)
Для 3DS второй версии в параметрах DATA необходимо передовать следующие параметры:
Наименование | Тип | Обязательность | deviceChannel | Описание |
---|---|---|---|---|
threeDSCompInd | String | Да | 02 - BRW | Идентификатор выполнения 3DS Method. 'Y' - выполнение метода успешно завершено, 'N' - выполнение метода завершено неуспешно или метод не выполнялся |
javaEnabled | String | Нет | 02 - BRW | Поддерживает ли браузер пользователя Java: true/false. По умолчанию значение "false" |
language | String | Да | 02 - BRW | Язык браузера по формату IETF BCP47. |
colorDepth | String | Нет | 02 - BRW | Глубина цвета в битах. Допустимые значения: 1/4/8/15/16/24/32/48 |
timezone | String | Да | 02 - BRW | Time-zone пользователя. Пример: UTC +5 hours: -300 |
screen_height | String | Да | 02 - BRW | Высота экрана в пикселях |
screen_width | String | Да | 02 - BRW | Ширина экрана в пикселях |
cresCallbackUrl | String | Да | 02 - BRW | URL который будет использоваться для получения результата(CRES) после завершения Challenge Flow(аутентификаци с дополнительным переходом на страницу ACS) |
sdkAppID | String | Да | 01 – APP | Уникальный идентификатор приложения 3DS Requestor, который формируется 3DS SDK при каждой установке или обновлении приложения |
sdkEncData | String | Да | 01 – APP | Данные, собранные SDK. JWE объект, полученный от 3DS SDK, должен быть дополнительно закодирован в base64 строку. |
sdkEphemPubKey | String | Да | 01 – APP | Компонент public key пары ephemeral key, сгенерированный 3DS SDK. JWE объект, полученный от 3DS SDK, должен быть дополнительно закодирован в base64 строку |
sdkMaxTimeout | String | Да | 01 – APP | Максимальное количество времени (в минутах). Значение должно быть больше либо равно 5 символов. |
sdkReferenceNumber | String | Да | 01 – APP | Поставщик и версия 3DS SDK |
sdkTransID | String | Да | 01 – APP | Уникальный идентификатор транзакции, назначенный 3DS SDK для идентификации одной транзакции |
sdkInterface | String | Да | 01 – APP | Список поддерживаемых интерфейсов SDK. Поддерживаемые значения: 01 = Native, 02 = HTML, 03 = Both |
sdkUiType | String | Да | 01 – APP | Список поддерживаемых типов UI. Значения для каждого интерфейса: Native UI = 01–04, HTML UI = 01–05. Поддерживаемые значения: 01 = Text, 02 = Single Select, 03 = Multi Select, 04 = OOB, 05 = HTML Other (valid only for HTML UI). Пример значения: "01,02,03,04,05" |
Для 3DS Version 2 в HttpHeaders запроса обязательно должны присутсвовать заголовки: “User-Agent” и “Accept”.
- Inheritance
-
- Object
- BaseRequest
- AcquiringRequest
- FinishAuthorizeRequest
- Annotations
-
- @JsonSerializable(includeIfNull: false)
Constructors
-
FinishAuthorizeRequest({required int paymentId, String? cardData, String? encryptedPaymentData, int? amount, Map<
String, String> ? data, String? infoEmail, String? ip, String? phone, bool? sendEmail, Route? route, Source? source, String? signToken}) - Создает экземпляр метода подтверждение платежа передачей реквизитов
-
FinishAuthorizeRequest.fromJson(Map<
String, dynamic> json) -
Преобразование json в модель
factory
Properties
- amount → int?
-
Сумма в копейках
final
- apiMethod → String
-
Метод запроса
no setteroverride
- apiMethodPath → String
-
Полный путь до метода запроса (версия + метод)
no setterinherited
- apiVersion → String
-
Версия метода запроса
no setterinherited
- cardData → String?
-
Зашифрованные данные карты. См. класс PaymentSource.
final
-
data
→ Map<
String, String> ? -
Дополнительные параметры платежа в формате "ключ":"значение" (не более 20 пар).
final
- encryptedPaymentData → String?
-
Данные карт
final
-
equals
→ Map<
String, Object?> -
Comparison objects
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
-
headers
→ Map<
String, String> -
Заголовок метода
no setteroverride
-
ignoredFields
→ Set<
String> -
Список игнорируемых полей при создании токена запроса
no setterinherited
- infoEmail → String?
-
Email для отправки информации об оплате
final
- ip → String?
-
IP-адрес клиента
final
- is3DsVersionV2 → bool
-
Проверка запроса на наличие 3DsV2
no setter
- paymentId → int
-
Уникальный идентификатор транзакции в системе Банка, полученный в ответе на вызов метода
Init
final - phone → String?
-
Телефон клиента
final
- route → Route?
-
Способ платежа. Возможные значения: ACQ
final
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- sendEmail → bool?
-
Информация на почту:
final
- signToken → String?
-
Опциональный параметр: готовая подпись запроса
finalinherited
- source → Source?
-
Источник платежа.
final
Methods
-
compareLists<
R> (List< R> ? list1, List<R> ? list2) → bool -
Determines whether
list1
andlist2
are equal.inherited -
copyWith(
{String? cardData, String? encryptedPaymentData, int? amount, Map< String, String> ? data, String? infoEmail, String? ip, int? paymentId, String? phone, bool? sendEmail, Route? route, Source? source, String? signToken}) → FinishAuthorizeRequest -
Создает экземпляр с заданными параметрами
override
-
genHash<
R> (Iterable< R> ? values) → int -
Returns a
hashCode
for equals.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toJson(
) → Map< String, dynamic> -
Преобразование модели в json
override
-
toString(
) → String -
A string representation of this object.
inherited
-
validate(
) → void -
Метод проверяет валидность данных
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited