1.1. Прямая оплата

Введение

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

Значение терминов (Присоединяющаяся Сторона, 3DS метод и т.д.) см. в Глоссарии.

Общий сценарий оплаты

skinparam roundcorner 20
skinparam sequenceArrowThickness 1
skinparam maxmessagesize 1200
skinparam sequenceParticipant underline
actor Плательщик
participant "Присоединяющаяся Сторона" as A
participant "Payneteasy" as B
autonumber
Плательщик -> A: Инициализация
activate A
A -> B: /api/v2/sale/
activate B
B --> A: ИД Транзакции
B -> B: Обработка\nПлатежа
hnote over Плательщик,B : Схема прохождения 3DS
group Получение конечного статуса
== Получение обратного вызова \nПрисоединяющейся Стороны ==
A <- B: Обратного вызов с конечным статусом
A --> B: HTTP 200
deactivate B
== Запрос статуса ==
A -> B: Получение статуса по ИД транзакции
activate B
B --> A: Конечный статус
deactivate B
end
A --> Плательщик: Показ результата
deactivate Плательщик
deactivate A

(2) To implement sale request see /api/v2/sale/. See 3DS Overview to get more information about 3DS flow. See Схема прохождения 3DS and 3DS Implementation Scenarios to correctly implement 3DS flow for this Use-Case.
(5) Для имплементации обратного вызова с обработкой финального статуса см. Обратный вызов Присоединяющейся Стороны.
(7) Для имплементации запроса статуса, см. /api/v2/status/. Статус должен запрашиваться несколько раз с интервалами в 3-5 секунд до получения финального статуса в ответе.

Схема прохождения 3DS

  <style>
    activityDiagram {
    BackgroundColor #Turquoise
      diamond {
        BackgroundColor #Turquoise
      }
    }
    document {
       BackgroundColor #fcfcfc
    }
    </style>
  title Схема прохождения 3DS
    start
    : (1) Send **/api/v2/status** request\nwith orderid=**paynet-order-id**\nProcess **/api/v2/status** response;
    while ((2) Check If **status** response field equals\nto finished status values\n**status** == approved\nOR **status** == declined\nOR **status** == error\nOR **status** == unknown\nOR **status** == filtered) is (NO);
    switch ((3) **html** and **redirect-to** field is present)
    case (YES)
   #Plum :(4) Create Wait HTML Page\nwhich redirects to result page\n(3DS 2.x or 1.0.2 to be applied)\n\nSee Simplified authentication flow;
    case (NO)
  endswitch
    backward:(5) Send new\n**/api/v2/status** request\nProcess\n**/api/v2/status** response;
    endwhile (YES)
    :(6) Show result page to the Payer;
    stop
    legend left
    =Legend
    | Color | Implementation responsibility |
    |<#Turquoise>| Connecting party |
    |<#Plum>| Connecting and other party |
    | | Other Party |
    endlegend

Присоединяющаяся Cторона имлементирует шаги, указанные зелёным и фиолетовым цветом. Ниже указано описание шагов со ссылками на исполняемые АПИ команды в соответствии с номером шага:

(1) Для имплементации запроса статуса, см. /api/v2/status/. Статус должен запрашиваться несколько раз с интервалами в 3-5 секунд до получения финального статуса в ответе.
(4) If html and redirect-to fields are present, see Simplified authentication flow with html page.
(5) The same as point (1).

Примечание

The 3DS decision making schema is showcasing 3DS being initiated and performed by Payment Gateway. 3DS is initiated by Payment Gateway and performed on Connecting Party side., see 3DS Overview

Сценарий оплаты без 3DS

Оплата считается проведённой без прохождения 3DS (без 3DS аутентификации) при нижеприведённых условиях:

1. steps 1-2-(5)-6 of 3DS decision making schema were followed.
2. Отсутствие параметров tds_status, html и redirect-to.
3. Транзакция получила финальный статус (approved, declined, error, filtered).

Примечание

Транзакции со статусом «unknown» могут показываться как транзакции прошедшие 3DS, так и как транзакции без прохождения 3DS. Детальнее о статусах транзакций см. Статусы.

Упрощённый сценарий аутентификации

<style>
document {
   BackgroundColor #fcfcfc
}
activitydiagram {
diamond {
  BackgroundColor #Turquoise
  }
}
</style>
title Упрощённый процесс аутентификации
start
#Turquoise:(1) Отправка API запроса **/api/v2/status/**;
#Turquoise:(2) Обработка ответа **/api/v2/status/**.
Сбор параметра:
**html**;
fork
#Turquoise:(3) Сбор параметра **html**;
#Turquoise:(4) Возврат данных с параметра **html** браузеру Отправителя;
forkagain
#Turquoise:(5) Сбор параметра **redirect-to**;
#Turquoise:(6) Пренаправление Плательщика на redirect URL;
endfork
:(7) Браузер Отправителя перенаправляется на ACS и Отправитель проходит или 3DS 1.0.2 или 3DS 2.X flow.;
:(8) Браузер Отправителя перенаправляется назад на **redirect_url**, предоставленный в начальном запросе **api/v2/sale/**.;
#Turquoise:(9) Обработка финального перенаправления браузера Отправителя **redirect_url**.;
#Turquoise:(10) Возврат HTML страницы ожидания браузеру Отправителя;
fork
note left
        Жизненный цикл **HTML страницы ожидания**
end note
repeat
#Turquoise: (11) Запрос серверу Присоединяющейся Стороны о статусе транзакции;
#Turquoise: (12) Обработка статуса транзакции;
repeat while ((13) Получение финального статуса\n(approved, declined, error or uknown)?) is (no)
-> (yes);
#Turquoise:(14) Перенаправление браузера Отправителя на страницу результата;
fork again
note left
        Жизненный цикл **сервера Присоединяющейся Стороны**
end note
#Turquoise:(15) Отправка API запроса **/api/v2/status/**;
#Turquoise:(16) Обработка ответа **/api/v2/status/** \nи последующая **Схема прохождения 3DS** для анализа статуса ответа;
end fork
stop
legend left
=Legend
| Цвет | Ответственность за обработку |
|<#Turquoise>| Присоединяющаяся Сторона |
| | Другие стороны |
endlegend

(1) и (2). Для имплементации запроса статуса заказа, см. /api/v2/status/.
(9) Для инициации финального перенаправления см. Финальное перенаправление.
(10) HTML страница ожидания в контуре Присоединяющейся Стороны может иметь произвольный дизайн и должна взаимодействовать с сервером Присоединяющейся Стороны в соответствии с диаграммой.
(15) и (16) то же, что и (1) и (2).