Click to Pay

Обзор

Введение

Click to Pay — метод, позволяющий проводить платежи с использованием платёжных карт American Express, Maestro, Mastercard и Visa в большинстве стран мира с применением разных валют. При работе с этим методом данные используемых платёжных карт сохраняются с высоким уровнем защиты в сервисе Click to Pay, и для доступа к этим данным могут применяться разнообразные настольные и мобильные устройства, в том числе работающие под управлением операционных систем Android и iOS. Click to Pay поддерживает проведение платежей в США и Канаде, странах Европейской экономической зоны (EEA) и многих из стран Азии, Африки и Южной Америки, при этом покрытие стран и валют активно расширяется. В платёжной платформе ecommpay поддерживаются оплаты и возвраты с применением метода Click to Pay.

В этой статье представлена информация о работе с методом Click to Pay: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач.

Характеристика

Тип платёжного метода карточные платежи
Платёжные инструменты платёжные карты
Регионы использования большинство стран мира
Валюты платежей большинство валют мира
Конвертация валют +
Разовые оплаты +
Повторяемые оплаты
Полные возвраты +
Частичные возвраты +
Выплаты
Опротестования +
Особенности
  • международные платёжные системы поддерживают и расширяют покрытие стран для метода Click to Pay в соответствии с их критериями (информацию об этом можно уточнять у курирующего менеджера ecommpay)
  • поддержка метода Click to Pay для пользователей в конкретных странах зависит также от эмитентов платёжных карт в этих странах (информацию об этом можно уточнять у курирующего менеджера ecommpay)
  • в пользовательском интерфейсе Payment Page Click to Pay выступает как один из вариантов проведения карточной оплаты (наряду с классическими карточными платежами; подробнеедалее, в описании сценариев использования)
  • при отклонении оплаты методом Click to Pay пользователю может предоставляться повторная попытка с применением классических карточных платежей и, при последующих отклонениях, дополнительные попытки с применением других доступных методов (подробнее о повторных попытках — в отдельной статье)
Организация и стоимость подключения по согласованию с курирующим менеджером ecommpay

Схема работы

В проведении отдельного платежа с использованием метода Click to Pay задействуются веб-сервис мерчанта, интерфейс Payment Page, платёжная платформа ecommpay и технические средства сервиса Click to Pay.

Основные операции

Для проведения оплат с использованием метода Click to Pay применяется интерфейс Payment Page, а для выполнения возвратов — интерфейсы Gate и Dashboard. При этом могут быть актуальны различные ограничения по суммам и времени с учётом специфики платёжных систем и эмитентов.

Сценарии использования

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

Проведение оплат с использованием метода Click to Pay осуществляется с регистрацией пользователей и их платёжных карт в сервисе Click to Pay и с выполнением последующих необходимых действий, выполнение возвратов — с заявкой со стороны пользователя и с уведомлением со стороны веб-сервиса. При этом регистрация пользователей и их платёжных карт может выполняться не только в переходе к платежам, но и предварительно: через МПС и эмитентов (подробнее — далее).

Общие сценарии проведения оплат и выполнения возвратов методом Click to Pay можно представить следующим образом.

Частные сценарии проведения оплаты с использованием метода Click to Pay могут отличаться с учётом того, какой пользователь, с какого устройства, через какой браузер и с какой картой участвует в оплате. Основными при этом можно считать следующие сценарии:

  • Returning user checkout (оплата зарегистрированным пользователем; кратко: типичная оплата) — оплата зарегистрированным пользователем с применением задействованных им ранее устройства, браузера и платёжной карты и с идентификацией этого пользователя по адресу его электронной почты.
  • Returning user checkout, unrecognized device (оплата зарегистрированным пользователем с нового устройства; кратко: оплата с нового устройства) — оплата зарегистрированным пользователем с применением устройства или браузера, которые не задействовались им ранее.
  • Returning user checkout with a new card (оплата зарегистрированным пользователем с новой карты; кратко: оплата с новой карты) — оплата зарегистрированным пользователем с применением карты, которая не задействовалась им ранее.
  • First time user enrollment (оплата с регистрацией пользователя; кратко: оплата новым пользователем) — оплата новым пользователем с его регистрацией в сервисе Click to Pay.

К особенностям оплат с использованием метода Click to Pay можно отнести то, что при их проведении используются специализированные страницы, отображаемые в платёжной форме на основе информации от „фасилитаторов платежей“ (Digital Card Facilitators, DCF), в роли которых выступают международные платёжные системы — участницы сервиса Click to Pay, предоставляющие пользователям доступ к цифровым картам.

Типичная оплата

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

Оплата с нового устройства

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

Оплата с новой карты

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

Оплата новым пользователем

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

Предварительная регистрация

Регистрация пользователей и их карт в сервисе Click to Pay может выполняться не только при переходе к платежам (как в приведённых ранее сценариях), но и предварительно:

  • через платёжные системы:
    • American Express обеспечивает для держателей карт Amex доступ к учётным записям Click to Pay по адресам электронной почты, которые использовались для создания учётных записей на сайте или в мобильном приложении American Express;
    • Mastercard даёт возможность регистрироваться по ссылке;
    • Visa даёт возможность регистрироваться по ссылке;
  • через эмитентов платёжных карт — они могут предлагать пользователям создавать учётные записи Click to Pay в своих мобильных приложениях или на сайтах, а также предварительно регистрировать пользователей и их карты в сервисе, если эти карты отвечают заданным критериям отбора.

Оплаты через Payment Page

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

Для проведения оплаты через Payment Page с использованием метода Click to Pay со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема проведения типичной оплаты выглядит следующим образом.

Рис. 35. Проведение типичной оплаты через Payment Page. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к сервису Click to Pay передаётся запрос на проверку наличия учётной записи пользователя в сервисе Click to Pay.
  6. В сервисе Click to Pay выполняется обработка запроса.
  7. От сервиса Click to Pay к платёжной платформе передаётся подтверждения наличия учётной записи пользователя.
  8. От платёжной платформы к сервису Click to Pay передаётся запрос на получение информации о картах пользователя, привязанных к его учётной записи в сервисе Click to Pay.
  9. В сервисе Click to Pay выполняется обработка запроса.
  10. От сервиса Click to Pay к платёжной платформе передаётся список доступных платёжных карт пользователя.
  11. Осуществляется подготовка к открытию платёжной формы согласно параметрам проекта и вызова.
  12. Пользователю отображается платёжная форма со списком карт, привязанных к его учётной записи в сервисе Click to Pay.
  13. Пользователь выбирает платёжную карту и подтверждает оплату.
  14. К сервису Click to Pay передаётся запрос на проведение оплаты с использованием выбранной платёжной карты.
  15. В сервисе Click to Pay выполняется обработка запроса.
  16. От сервиса Click to Pay к Payment Page передаются данные для отображения страницы ожидания сервиса.
  17. Пользователю отображается страница ожидания Click to Pay.
  18. От сервиса Click to Pay к платёжной платформе передаётся подтверждение возможности проведения оплаты с использованием выбранной карты.
  19. От платёжной платформы к Payment Page направляется информация о подтверждении.
  20. Пользователю отображается страница ожидания Payment Page.
  21. В платформе выполняются дальнейшая обработка запроса и его отправка к сервису международной платёжной системы.
  22. В сервисе международной платёжной системы выполняется обработка платежа.
  23. От сервиса международной платёжной системы к платёжной платформе направляется информация о результате оплаты.
  24. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.
  25. От платёжной платформы к Payment Page направляется информация о результате оплаты.
  26. Информация о результате оплаты отображается пользователю на Payment Page.

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

Информация о форматах запросов и оповещений, используемых для проведения оплат методом Click to Pay через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье Организация взаимодействия.

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

При формировании запросов на открытие платёжной формы с применением метода Click to Pay необходимо учитывать следующее:

  1. Должен использоваться базовый минимум параметров, обязательный для любого платежа:
    • project_id — идентификатор проекта, полученный от ecommpay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — буквенный код валюты платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в дробных единицах валюты;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Должен использоваться базовый минимум параметров: project_id, payment_id, payment_currency, payment_amount, customer_id.
  3. Дополнительно рекомендуется указывать телефонный код страны, номер телефона и адрес электронной почты пользователя в параметрах customer_phone_country, customer_phone и customer_email.

    Указание этих параметров в запросе позволяет аутентифицировать пользователя на стороне сервиса Click to Pay и не отображать соответствующие поля в пользовательском интерфейсе, даже если пользователь применяет устройство или браузер, которые не задействовались им ранее.

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

    Рис. 36. Пример передавамых данных для аутентификации пользователя в сервисе
    "customer_phone_country": "44",
    "customer_phone": "1172345678",
    "customer_email": "test@test.com"
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  5. После указания всех целевых параметров необходимо составлять подпись (подробнее).

Таким образом, корректный запрос на открытие платёжной формы с применением метода Click to Pay должен содержать идентификатор проекта, базовые сведения о платеже (идентификатор, сумму и код валюты), идентификатор пользователя и подпись.

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "USD",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}
Рис. 37. Пример достаточного набора данных для запроса на оплату
{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "USD",
   "customer_id": "customer1",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "GBP",
   "customer_id": "customer1",
   "customer_phone_country": "44", 
   "customer_phone": "1172345678",
   "customer_email": "test@test.com",
   "signature": "oMg2x9dgASNAFUldOcZzUCwX6R\/ekpsdfkIFf=="
}

Формат оповещений

Для оповещений о результатах оплат с применением метода Click to Pay используется типовой формат, описание которого представлено в статье Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 1204 для пользователя cust123 была проведена оплата в размере 10,00 USD.

Рис. 38. Пример данных из оповещения о проведении оплаты
{
        "project_id": 1204,
        "payment": {
            "id": "Payment_15671726468667687",
            "type": "purchase",
            "status": "success",
            "date": "2024-08-30T13:58:12+0000",
            "method": "etoken-click2pay",
            "sum": {
                "amount": 1000,
                "currency": "USD"
            },
            "description": "Purchase"
        },
        "customer": {
            "id": "cust123"
        },
        "account": {
            "number": "518600******8785"
        },
        "operation": {
            "id": 47478000001698,
            "type": "sale",
            "status": "success",
            "date": "2024-08-30T13:58:12+0000",
            "created_date": "2024-08-30T13:58:06+0000",
            "request_id": "0a5cb476be3a55010fb050ec1c1cbd35361ac912a3",
            "sum": {
                "amount": 1000,
                "currency": "USD"
            },
            "provider": {
                "id": 120461,
                "payment_id": "24fb3f30-000f-5000-8000-1c329d900c68",
                "date": "2024-08-30T13:58:09+0000",
                "auth_code": "591748"
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "5DtWEGy+dMGZZnm3Owjgw9ly67Mb9siv7+WD1u7AyIYdQ=="
}

В следующем примере оповещение свидетельствует о том, что оплата была отклонена.

Рис. 39. Пример данных из оповещения об отклонении оплаты
{
        "account": {
            "number": "518600******8785"
        },
        "customer": {
            "id": "cust123"
        },
        "payment": {
            "date": "2024-08-06T12:57:03+0000",
            "id": "10906183900",
            "method": "etoken-click2pay",
            "status": "decline",
            "sum": {
                "amount": 1030000,
                "currency": "USD"
            },
            "type": "purchase",
            "description": "test"
        },
        "project_id": 312,
        "country": "GB",
        "operation": {
            "id": 45047000000055,
            "type": "sale",
            "status": "decline",
            "date": "2024-08-06T12:57:03+0000",
            "created_date": "2024-08-06T12:57:00+0000",
            "request_id": "f92c3dfdf76133d5e1a9d26279b3b77b7da32e",
            "sum": {
                "amount": 1030000,
                "currency": "USD"
            },
            "provider": {
                "id": 120461,
                "payment_id": "5cb2f2fb-e4df-4807-8839-067f9366d506",
                "auth_code": ""
            },
            "code": "10105",
            "message": "Insufficient funds on card"
        },
        "signature": "9CIXvWMsKOcQsWEHKLsSVSRo8YNjIxHPjEEQSmLAtClQ=="
}

Дополнительные материалы

Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы:

Возвраты через Gate

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

Для выполнения возврата через Gate с использованием метода Click to Pay со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ecommpay и принять оповещение о результате. Полная схема выполнения возврата выглядит следующим образом.

Рис. 40. Выполнение возврата через Gate. Описание шагов
  1. Пользователь инициирует возврат.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на выполнение возврата.
  3. Запрос на выполнение возврата поступает в платёжную платформу ecommpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе обеспечиваются дальнейшая обработка запроса (с проверкой согласованности параметров) и его отправка к сервису международной платёжной системы.
  7. В сервисе международной платёжной системы выполняется обработка возврата.
  8. От сервиса международной платёжной системы к платёжной платформе направляется информация о результате возврата.
  9. В платёжной платформе обеспечивается обработка полученной информации и передача информации о возврате к сервису Click to Pay, после чего от платёжной платформы к веб-сервису направляется оповещение о результате возврата.
  10. На стороне веб-сервиса обеспечивается информирование пользователя о результате возврата.

Информация о форматах запросов и оповещений, используемых для выполнения возвратов методом Click to Pay через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье Организация взаимодействия.

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

При работе с запросами на возвраты с применением метода Click to Pay необходимо учитывать следующее:

  1. Для инициирования каждого возврата должен использоваться отдельный POST-запрос к конечной точке /v2/payment/refund.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, для которого необходимо выполнить возврат;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью); (подробнее)),
    • payment — объект, содержащий сведения о возврате:
      • description — комментарий к возврату или его описание;,
      • amount — сумма возврата в дробных единицах валюты (является обязательной при частичном возврате);,
      • currency — буквенный код валюты возврата в формате ISO-4217 alpha-3 (является обязательным при частичном возврате);,
    • customer — объект, содержащий сведения о пользователе:
      • ip_address — IP-адрес пользователя, актуальный для инициируемого возврата.
  3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

Таким образом, корректный запрос на возврат с применением метода Click to Pay должен содержать идентификаторы проекта и платежа, описание возврата, IP-адрес пользователя, подпись, а также, при необходимости, код валюты и сумму возврата.

{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "description": "test refund",
    "amount": 1000,
    "currency": "USD"
  },
  "customer": {
    "ip_address": "192.0.2.0"
  }
}
Рис. 41. Пример достаточного набора данных для запроса на возврат
{
  "general": {
    "project_id": 210,
    "payment_id": "test_payment",
    "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA=="
  },
  "payment": {
    "description": "test refund",
    "amount": 1000,
    "currency": "USD"
  },
  "customer": {
    "ip_address": "192.0.2.0"
  }
}

Формат оповещений

Для оповещений о результатах возвратов с применением метода Click to Pay используется типовой формат, описание которого представлено в разделе Оповещения.

В следующем примере оповещение свидетельствует о том, что в рамках проекта 424242 для пользователя cust123 был выполнен возврат в размере 10,00 USD.

Рис. 42. Пример данных из оповещения о выполнении возврата
{
        "project_id": 424242,
        "payment": {
            "id": "payment_15792507735",
            "type": "purchase",
            "status": "refunded",
            "date": "2024-01-20T08:31:36+0000",
            "method": "etoken-click2pay",
            "sum": {
                "amount": 1000,
                "currency": "USD"
            },
            "description": "purchase"
        },
        "customer": {
            "id": "cust123"
        },
        "account": {
            "number": "518600******8785"
        },
        "operation": {
            "id": 69512000019571,
            "type": "refund",
            "status": "success",
            "date": "2024-01-20T08:31:36+0000",
            "created_date": "2024-01-20T08:31:35+0000",
            "request_id": "e0069513",
            "sum": {
                "amount": 1000,
                "currency": "USD"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 120461,
                "payment_id": "0000438583",
                "auth_code": ""
                }
            },
        "signature": "beJ1deUiEDd+7zuo6YrfSRzgEQj34sKAStuW8Fg=="
}

В следующем примере оповещение свидетельствует о том, что возврат был отклонён.

Рис. 43. Пример данных из оповещения об отклонении возврата
{
        "project_id": 424242,
        "payment": {
            "id": "Payment_1579250773501",
            "type": "purchase",
            "status": "success",
            "date": "2024-01-20T08:31:36+0000",
            "method": "etoken-click2pay",
            "sum": {
                "amount": 100,
                "currency": "USD"
            },
            "description": ""
        },
        "customer": {
            "id": "cust123"
        },
        "account": {
            "number": "518600******8785"
        },
        "operation": {
            "sum": {
                "amount": 100000,
                "currency": "USD"
            },
            "code": "3283",
            "message": "Refund amount more than init amount",
            "provider": {
                "id": 120461,
                "payment_id": "0000438582",
                "auth_code": ""
            },
            "id": 69512000019571,
            "type": "refund",
            "status": "decline",
            "date": "2024-01-20T08:31:36+0000",
            "created_date": "2024-01-20T08:31:35+0000",
            "request_id": "e0069142"
        },
        "signature": "beJ1deUiEDd+7zuooJzgEQj34sKAStuW8Fg=="
    }
}

Дополнительные материалы

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

Возвраты через Dashboard

При использовании интерфейса Dashboard можно выполнять одиночные и массовые возвраты методом Click to Pay с единичной и пакетной отправкой запросов, называемые соответственно одиночными и массовыми.

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

    При этом должен использоваться файл формата CSV, структура которого соответствует требованиям, представленным в разделе Сведения о массовых платежах, а параметры возвратов — требованиям, представленным в разделе Возвраты через Gate этой статьи (за исключением пункта о подписи).

Более подробная информацияИнформация о выполнении возвратов через Dashboard представлена в отдельном разделе.

Анализ результатов проведения платежей

Для анализа информации о платежах и операциях, как в отдельности по методу Click to Pay, так и в совокупности с другими методами, можно использовать:

  • инструментарий интерфейса Dashboard, с различными реестрами и аналитическими панелями;,
  • отчёты в формате CSV, выгружаемые (как разово, так и периодически) через раздел Отчёты интерфейса Dashboard;,
  • данные в формате JSON, получаемые по программным запросам через интерфейс Data API.

С вопросами по анализу информации можно обращаться к соответствующим разделам документации (Dashboard и Использование Data API) и специалистам ecommpay.