Способы возвращения пользователей к веб-сервису

Общая информация

После открытия платёжной формы могут быть актуальны разные варианты возвращения пользователя к веб-сервису. При работе с Payment Page эти варианты делятся на три вида:

При работе с Payment Page можно использовать разные варианты возвращения пользователя к веб-сервису:

  • предварительное возвращение из платёжной формы — когда пользователю по какой-либо причине надо вернуться к веб-сервису до подтверждения платежа в платёжной форме, а затем, возможно, назад к форме, чтобы продолжить работу с ней;
  • промежуточное возвращение из сторонних сервисов — когда пользователю по какой-либо причине надо вернуться к веб-сервису после подтверждения платежа в платёжной форме и перенаправления к стороннему сервису, не завершив свои действия там;
  • итоговое возвращение — когда пользователю надо вернуться к веб-сервису после выполнения всех необходимых действий для проведения платежа.

Со стороны мерчанта можно предоставлять пользователям различные возможности для возвращения (используя только необходимые варианты или не используя вовсе никаких) и сочетать такие возможности с индивидуальным дизайном платёжной формы (подробнее) и разными способами открытия страниц веб-сервиса при перенаправлениях к нему. Это позволяет гибко подстраиваться под специфику бизнеса и разнообразных платёжных сценариев.

Варианты возвращения

Предварительное возвращение из платёжной формы

Общая информация

Для предварительного возвращения пользователей к веб-сервису со страниц платёжной формы используется ссылка, которая задаётся через параметры вызова и отображается как дополнительный элемент формы.



Если при вызове Payment Page задаётся возможность предварительного возвращения из формы, то по умолчанию для этого применяются следующие способы:

  • при открытии Payment Page в отдельной вкладке перенаправление выполняется в этой же вкладке;
  • при открытии Payment Page в модальном окне это модальное окно закрывается;
  • при открытии Payment Page в объекте iframe перенаправление не выполняется, при этом на стороне веб-сервиса доступна обработка интерфейсных событий (подробнее).

Если необходимо задействовать иные способы возвращения, со стороны веб-сервиса можно использовать соответствующие параметры, описанные далее, в разделе Управление доступностью и способами возвращения этой статьи.

Также, применяя возможность предварительного возвращения со страниц платёжной формы, необходимо учитывать следующие особенности:

  • Пользователь может вернуться к веб-сервису по отображаемой ссылке только до того, как он подтвердит платёж в платёжной форме (выбрав метод и указав требуемую информацию). После подтверждения платежа ссылка в форме не отображается, поскольку подтверждение ведёт к проведению платежа в платформе и выбранной платёжной системе и это может требовать участия пользователя.
  • При ограничении времени работы с платёжной формой (подробнее) обратный отсчёт начинается с момента первичного открытия формы и не останавливается при возвращении пользователя к веб-сервису.

Формат запросов

Адрес для предварительного возвращения к веб-сервису со страниц платёжной формы указывается в запросах на открытие Payment Page в значении параметра merchant_return_url.

Рис.: Пример данных из запроса на открытие Payment Page

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": 131970,
   "customer_id": "customer_12",

   // адрес для предварительного возвращения
   "merchant_return_url": "https://example.com", 

   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."
}

Промежуточное возвращение из сторонних сервисов

Общая информация

Возвращение к веб-сервису со страниц сторонних сервисов, таких как сервисы банков или платёжных систем, возможно только когда это поддерживается с их стороны. Кроме того, в разных сервисах такая функциональность может реализовываться по-разному и может допускать или не допускать обратных возвращений пользователя. С учётом таких особенностей, а также потенциально негативного влияния на проходимость платежей применение возвращений со страниц сторонних сервисов следует предварительно согласовывать с курирующим менеджером ecommpay.

Возвращение к веб-сервису со страниц сторонних сервисов возможно только когда это поддерживается с их стороны. Применение возвращений со страниц сторонних сервисов следует предварительно согласовывать с курирующим менеджером ecommpay.



После согласования и подключения такой возможности адреса для возвращения пользователей можно указывать в запросах на открытие Payment Page. Иначе эти адреса игнорируются.

Формат запросов

Адрес для промежуточного возвращения к веб-сервису со страниц сторонних сервисов указывается в запросах на открытие Payment Page в значении параметра redirect_return_url.

Рис.: Пример данных из запроса на открытие Payment Page

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": 131970,
   "customer_id": "customer_12",

   // адрес для промежуточного возвращения
   "redirect_return_url": "https://your/bank/example.com", 
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."
}

Итоговое возвращение

Общая информация

При работе с Payment Page итоговое возвращение пользователя к веб-сервису — по результатам проведения платежа — может реализовываться с отображением итоговой страницы платёжной формы, содержащей кнопку для возвращения к веб-сервису по решению пользователя, и автоматически, минуя итоговую страницу платёжной формы и с информированием о результате оплаты сразу на стороне веб-сервиса. При этом автоматическое возвращение не позволяет предоставить пользователю повторные попытки оплаты (подробнее). Также, если итоговое возвращение не актуально, можно отображать пользователю итоговую страницу Payment Page без кнопки для возвращения к веб-сервису.

Адреса и способы итогового возвращения могут задаваться как общие для всех платежей в рамках проекта и частные для отдельных платежей. Для указания общих адресов и способов необходимо использовать интерфейс Dashboard (и инструменты карточки Ссылки для перенаправления в разделе Проекты), для указания частных адресов и способов — параметры запросов на открытие Payment Page (описанные далее, в пункте Формат запросов этого раздела и в разделе Управление доступностью и способами возвращения этой статьи).

Адреса и способы итогового возвращения могут задаваться как общие для всех платежей в рамках проекта (через Dashboard) и как частные для отдельных платежей (через параметры запросов на открытие Payment Page, описанные далее).

По умолчанию в случаях, когда используется итоговое возвращение, для него применяются следующие способы:

  • Возвращение по решению пользователя выполняется в используемой вкладке браузера, с закрытием модального окна, если платёжная форма была открыта в нём.
  • Автоматическое возвращение выполняется в том же элементе интерфейса, в которым была открыта платёжная форма. Так, если форма была открыта в отдельной вкладке браузера, то возвращение выполняется в этой же вкладке, а если форма была открыта в модальном окне или в объекте iframe, то возвращение выполняется в этом же окне или объекте.

Формат запросов

Для возвращения по решению пользователя можно задавать адреса в значениях следующих параметров:

  • merchant_success_url — для возвращения при проведении оплаты,
  • merchant_fail_url — для возвращения при отклонении оплаты.

Рис.: Пример данных из запроса на открытие Payment Page

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": 131970,
   "customer_id": "customer_12",

   // адреса для итогового возвращения по решению пользователя
   "merchant_success_url": "https://example.com/complete-redirect?id=success", 
   "merchant_fail_url": "https://example.com/complete-redirect?id=decline", 
   
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."

Для автоматического возвращения можно задавать адреса в значениях следующих параметров:

  • redirect_success_url — для возвращения при проведении оплаты,
  • redirect_fail_url — для возвращения при отклонении оплаты,
  • redirect_tokenize_url — для возвращения при формировании токена платёжных данных в режиме card_tokenize (подробнее).

Рис.: Пример данных из запроса на открытие Payment Page

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": "131970",
   "customer_id": "customer_12",

   // адреса для автоматического итогового возвращения
   "redirect_success_url": "https://example.com/complete-redirect?id=success", 
   "redirect_fail_url": "https://example.com/complete-redirect?id=decline", 
   
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."

Управление доступностью и способами возвращения

При работе с предварительным и итоговым возвращениями пользователей от платёжной формы к веб-сервису можно управлять доступностью и способами этих возвращений в рамках отдельных вызовов Payment Page. Для этого используются параметры групп enabled и mode.

Рис.: Параметры группы enabled для управления доступностью возвращения

  • merchant_return_enabled — доступность предварительного возвращения со страниц платёжной формы,
  • merchant_success_enabled — доступность итогового возвращения при проведении оплаты,
  • merchant_fail_enabled — доступность итогового возвращения при отклонении оплаты.

Для каждого из этих параметров допустимы следующие значения:

  • 0 — отсутствие доступа к возможности возвращения;
  • 1 — частичная доступность возвращения, в рамках которой при открытии Payment Page в объекте iframe или модальном окне перенаправление к веб-сервису не выполняется, а при открытии Payment Page в отдельной вкладке браузера способ открытия страницы веб-сервиса определяется через параметр группы mode;
  • 2 — полная доступность возвращения, используемая по умолчанию и сочетаемая со способом открытия страницы веб-сервиса, указанным в параметре группы mode.

Рис.: Параметры группы mode для управления способами возвращения

  • merchant_return_redirect_mode — способ предварительного возвращения со страниц платёжной формы,
  • merchant_success_redirect_mode — способ итогового возвращения по решению пользователя при проведении оплаты,
  • merchant_fail_redirect_mode — способ итогового возвращения по решению пользователя при отклонении оплаты,
  • redirect_success_mode — способ автоматического итогового возвращения при проведении оплаты,
  • redirect_fail_mode — способ автоматического итогового возвращения при отклонении оплаты.

Для каждого из этих параметров допустимы следующие значения:

  • iframe — открытие страницы в объекте iframe (работающее при открытии платёжной формы в объекте iframe или модальном окне; при открытии платёжной формы в отдельной вкладке этот способ ведёт к перенаправлению в этой же вкладке);
  • parent_page — открытие страницы в используемой вкладке;
  • blank_page — открытие страницы в новой вкладке.

В следующих примерах приведены данные из запросов на открытие Payment Page, согласно которым возвращение к веб-сервису должно выполняться разными способами.

Рис.: Открытие страницы веб-сервиса в новой вкладке

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": 131970,
   "customer_id": "customer_12",

   // адрес страницы веб-сервиса
   "merchant_success_url": "https://example.com/complete-redirect?id=success", 
   "merchant_success_redirect_mode": "blank_page",    // способ открытия страницы
   "merchant_success_enabled": 2,    // доступность возвращения
   
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."

Рис.: Открытие страницы веб-сервиса в используемой вкладке

{
   "project_id": 42,
   "payment_id": "456789",
   "payment_currency": "USD",
   "payment_amount": 131970,
   "customer_id": "customer_12",

   // адрес страницы веб-сервиса
   "merchant_success_url": "https://example.com/complete-redirect?id=success", 
   "merchant_success_redirect_mode": "parent_page",    // способ открытия страницы
   "merchant_success_enabled": 1,    // доступность возвращения
   
   "signature": "TSzdE5rJZaA9TYAKoGpfXriFf82MxF..."

С вопросами о работе с этими параметрами, как и с другими вопросами о способах возвращения пользователей к веб-сервису, можно обращаться к специалистам технической поддержки ecommpay.