.. meta:: :description: Сценарий предавторизации по форме, списания и отмены в Payneteasy: блокировка средств через размещённую форму предавторизации, затем их списание или возврат последующими вызовами API. .. _preauth_form_capture_and_cancel: Предавторизация с использованием формы, списание и отмена ################################################################ .. role:: ex .. role:: code Введение ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | Оплата — тип транзакции, при которой банк блокирует определённую сумму на карте Плательщика и не позволяет использовать эту сумму. Важно учесть, что блокирование средств действует в течение определённого периода (обычно это до 7 дней для дебетовых карт и до 28 дней для кредитных карт). Интеграция по форме позволяет Присоединяющейся стороне снять с себя ответственность за хранение, обработку и передачу карточных данных Плательщика или какой-либо другой конфиденциальной информации о платеже. Эти данные вводятся Плательщиком на платёжной форме Payneteasy в среде, сертифицированной по стандарту безопасности PCI DSS. | :ref:`Списание` - тип транзакции, следующий за предавторизацией, для списания предварительно заблокированных средств с карты Плательщика. | :ref:`Отмена` - противоположная списанию транзакция, отменяющая блокировку и возвращающая средства в свободное пользование Плательщиком. | Все формы настраиваемы. Примеры и макросы - см. настройки :ref:`Платёжной Формы`, :ref:`Предварительно Заполненных Данных`, :ref:`Формы Ожидания` и :ref:`Финишной Формы` в разделе :ref:`Настройка Форм`. | | Значение терминов см. в :ref:`Глоссарии`. Сценарий предавторизации по форме ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: :align: center skinparam roundcorner 20 skinparam sequenceArrowThickness 2 skinparam ParticipantPadding 30 actor Плательщик as Customer participant "Веб-сайт\nПрисоединяющейся Стороны" as Merchant participant "Платёжный Шлюз" as g autonumber Customer -> Merchant: Инициализация activate Merchant == Запрос проведения оплаты == Merchant -> g: api/v2/preauth-form activate g g --> Merchant: Redirect-url, orderId deactivate g Merchant -> Customer: Предоставление redirect-url \nбраузеру Плательщика deactivate Merchant activate Customer Customer -> g: GET redirect-url deactivate Customer activate g g --> Customer: Форма оплаты deactivate g activate Customer Customer -> g: Подтверждение формы deactivate Customer activate g g --> g: Обработка платежа == Финальное перенаправление клиента == g -> Customer: redirect_url веб-сайта \nПрисоединяющейся Стороны activate Customer Customer -> Merchant: POST redirect_url\nstatus, orderid deactivate Customer activate Merchant group Get Final Status == Получение обратного вызова \nПрисоединяющейся Стороны == Merchant <- g: Обратный Вызов \nс финальным статусом g <-- Merchant: HTTP 200 deactivate g == Запрос статуса == Merchant -> g: api/v2/status activate g g --> Merchant: Ответ \nstatus, order-stage deactivate g end Merchant -> Customer: Показ результата deactivate Merchant | (2) Для имплементации запроса на проведение предавторизации по форме см. :ref:`/api/v2/preauth-form/`. | (9) Для имплементации финального перенаправления Плательщика см. :ref:`Финальное Перенаправление`. | (11,12) Для имплементации запроса статуса заказа, см.:ref:`/api/v2/status/`. Статус должен запрашиваться несоклько раз с интервалами в 3-5 секунд до получения финального статуса. | (13 Для обработки обратного вызова с окончательным статусом заказа см. :ref:`Обратный вызов Присоединяющейся Стороны`. .. _capture-form_request_url: Сценарий списания ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: :align: center skinparam roundcorner 20 skinparam sequenceArrowThickness 1 skinparam maxmessagesize 100 skinparam sequenceParticipant underline actor Плательщик participant "Присоединяющаяся Сторона" as A participant "Платёжный Шлюз" as B hnote over A,B : Успешная транзакция преавторизации autonumber group Опционально Плательщик -> A: Инициация списания activate A end == Списание == A -> B: api/v2/capture activate B B --> A: ИД транзакции B -> B: Обработка списания group Получение финального статуса == Получение обратного вызова \nПрисоединяющейся Стороны == A <- B: Обратный вызов с финальным статусом A --> B: HTTP 200 deactivate B == Запрос статуса == A -> B: Получение статуса по ИД транзакции api/v2/status activate B B --> A: Ответ со статусом, Order-stage deactivate B end group Опционально A --> Плательщик: Конечный статус deactivate A end | (1) Списание может быть инициировано Присоединяющейся Стороной в соответствии с бизнес-моделью или по запросу Плательщика. | (2) Для имплементации запроса на списание см. :ref:`/api/v2/capture/`. | (5) Обратный вызов по списанию будет отправлен только в случае, если :ex:`notify_url` был предоставлен в инициирующем запросе предавторизации или дополнительный обратный вызов установлен на предоставленный URL для списаний на уровне терминала. Если в запросе предавторизации был предоставлен :ex:`server_callback_url`, обратный вызов по списанию не будет отправлен. Для обработки обратных вызовов см. :ref:`Обратный вызов Присоединяющейся Стороны`. | (7) Для реализации запроса статуса заказа см. :ref:`/api/v2/status/`. Статус следует запрашивать несколько раз с интервалом 3-5 секунд, пока в ответе не будет получен финальный статус. | (9) Конечный статус может быть предоставлен Присоединяющейся Стороной в соответствии с бизнес-моделью или по запросу Плательщика. .. _cancel-form_request_url: Сценарий отмены ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. uml:: :align: center skinparam roundcorner 20 skinparam sequenceArrowThickness 1 skinparam maxmessagesize 100 skinparam sequenceParticipant underline actor Плательщик participant "Присоединяющаяся Сторона" as A participant "Платёжный Шлюз" as B hnote over A,B : Успешная транзакция преавторизации autonumber group Опционально Плательщик -> A: Инициация отмены activate A end == Отмена == A -> B: api/v2/return activate B B --> A: ИД транзакции B -> B: Обработка отмены group Получение финального статуса == Получение обратного вызова \nПрисоединяющейся Стороны == A <- B: Обратный вызов с финальным статусом A --> B: HTTP 200 deactivate B == Запрос статуса == A -> B: Получение статуса по ИД транзакции api/v2/status activate B B --> A: Ответ со статусом, Order-stage deactivate B end group Опционально A --> Плательщик: Конечный статус deactivate A end | (1) Отмена предавторизации может быть вызвана Присоединяющейся Стороной в соответствии с бизнес-моделью или по запросу Плательщика. | (2) Для имплементации запроса на отмену см. :ref:`/api/v2/return/`. | (5) Обратный вызов по отмене будет отправлен только в случае, если :ex:`notify_url` был предоставлен в инициирующем запросе предавторизации или дополнительный обратный вызов установлен на предоставленный URL для отмен на уровне терминала. Если в запросе предавторизации был предоставлен :ex:`server_callback_url`, обратный вызов по отмене не будет отправлен. Для обработки обратных вызовов см. :ref:`Обратный вызов Присоединяющейся Стороны`. | (7) Для реализации запроса статуса заказа см. :ref:`/api/v2/status/`. Статус следует запрашивать несколько раз с интервалом 3-5 секунд, пока в ответе не будет получен финальный статус. | (9) Конечный статус может быть предоставлен Присоединяющейся Стороной в соответствии с бизнес-моделью или по запросу Плательщика. .. ifconfig:: "doc.payneteasy.com" in site_link ---- .. admonition:: See also :class: related-cross-link `Authorize-and-capture flows on the Payneteasy gateway → `_ .. ifconfig:: "doc.payneteasy.ru" in site_link ---- .. admonition:: См. также :class: related-cross-link `Авторизация и подтверждение платежей через шлюз → `_