QIWI Push

Обзор

QIWI Push — платёжный метод для проведения платежей с использованием электронного кошелька QIWI. При работе с этим методом поддерживается пополнение лицевых счетов пользователей в веб-сервисе мерчанта через сервис QIWI Push. При этом в рамках платёжной платформы пополнение лицевого счёта интерпретируется как оплата (тип операции sale).

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

Тип платёжного метода платежи с использованием электронных кошельков
Регионы использования RU
Валюты платежей RUB
Конвертация валют
Оплаты +
Выплаты
Оплаты по сохранённым данным
Полные возвраты
Частичные возвраты
Опротестования
Особенности
Организация и стоимость подключения по согласованию с курирующим менеджером ECommPay

Схема работы

В проведении отдельного платежа с использованием QIWI Push задействуются сервис QIWI Push, платёжная платформа ECommPay и веб-сервис мерчанта.



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

При использовании метода QIWI Push поддерживается пополнение лицевого счёта. Предельное время проведения платежа составляет 1 день (максимально допустимое время проведения платежа от момента его инициирования на стороне платёжной платформы до момента отправки мерчанту оповещения о результате). Если платёж не был проведён или отклонён за это время, он автоматически переводится в статус decline. Для индивидуальной настройки предельного времени следует обращаться к специалистам технической поддержки ECommPay.

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

Пополнение лицевого счёта с использованием метода QIWI Push выполняется с заявкой пользователя на пополнение лицевого счёта через сервис QIWI Push.

Рис.: Пополнение лицевого счёта



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

Пополнение лицевого счёта

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

При пополнении лицевого счёта с использованием платёжного метода QIWI Push со стороны веб-сервиса необходимо:

  1. Обработать запрос на проверку существования лицевого счёта пользователя, отправленный с URL ECommPay.
  2. Отправить ответ с информацией о существовании лицевого счёта пользователя.
  3. Обработать запрос на получение идентификатора платежа на стороне веб-сервиса.
  4. Отправить ответ с идентификатором платежа.
  5. Принять оповещение о результате пополнения лицевого счёта.


Рис.: Пополнение лицевого счёта

  1. Пользователь выбирает веб-сервис, лицевой счёт в котором он хочет пополнить, и затем вводит свои учётные данные на стороне сервиса QIWI Push.
  2. От сервиса QIWI Push на заданный URL ECommPay передаётся запрос на проверку существования лицевого счёта пользователя.
  3. Выполняется начальная обработка запроса, в рамках которой обеспечивается проверка наличия обязательных параметров и корректной подписи.
  4. От платёжной платформы к веб-сервису передаётся запрос на проверку существования лицевого счёта пользователя.
  5. На стороне веб-сервиса проводится обработка запроса.
  6. От веб-сервиса к платёжной платформе передаётся ответ на запрос.
  7. От платёжной платформы к сервису QIWI Push передаются данные о лицевом счёте пользователя.
  8. Пользователю отображается форма оплаты QIWI Push.
  9. Пользователь использует электронный кошелёк QIWI Push для пополнения лицевого счёта.
  10. На стороне сервиса QIWI Push выполняется обработка платежа.
  11. Пользователь получает информацию о результате пополнения лицевого счёта со стороны QIWI Push.
  12. От сервиса QIWI Push к платёжной платформе направляется уведомление о результате пополнения лицевого счёта.
  13. От платёжной платформы к веб-сервису передаётся запрос на получение идентификатора платежа на стороне веб-сервиса.
  14. На стороне веб-сервиса проводится обработка запроса.
  15. От веб-сервиса к платёжной платформе передаётся информация об идентификаторе платежа.
  16. На стороне платёжной платформы регистрируется операция.
  17. От платёжной платформы к веб-сервису направляется оповещение о результате пополнения лицевого счёта.

Информация о формате запросов и параметрах инициирования пополнения лицевого счёта при работе с методом QIWI Push и о формате оповещений о результатах пополнения лицевого счёта приведена далее.

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

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

  1. Запрос verify для проверки существования лицевого счёта пользователя отправляется методом POST на заданный URL веб-сервиса.
  2. Запрос содержит следующие обязательные параметры:
    • type — тип операции на стороне веб-сервиса, значение параметра всегда verify;
    • customer_id — идентификатор пользователя в системе мерчанта;
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • signature — подпись запроса (подробнее — в разделе Работа с подписью к данным).

    Рис.: Пример запроса на проверку существования лицевого счёта пользователя

    {
       "type":"verify",
       "project_id":111,
       "customer_id":"customer@example.com",
       "signature":"lY0LT8AzpR7zGce5qfYGacOuY...lHG7mdOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. Ответ на запрос verify должен быть отправлен синхронно и содержать следующие обязательные параметры:
    • code — код ответа на запрос;
    • currency — валюта платежа в формате ISO-4217 alpha-3.
    Табл. 1. Допустимые коды ответов
    Код Описание
    0 Операция успешна
    400 Ошибка подписи
    404 Лицевой счёт пользователя не существует
    500 Общая ошибка, причина должна быть описана в необязательном параметре errors.message

    Рис.: Пример ответа на запрос

    {
       "code":0,
       "currency":"RUB"
    }

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

  1. Запрос check_deposit для получения идентификатора платежа на стороне веб-сервиса отправляется методом POST на заданный URL веб-сервиса.
  2. Запрос содержит следующие обязательные параметры:
    • type — тип операции на стороне веб-сервиса, значение параметра всегда check_deposit;
    • customer_id — идентификатор пользователя в системе мерчанта;
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • amount — сумма платежа в минорных единицах;
    • currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_method — название платёжного метода, значение параметра всегда terminal/qiwi-ru;
    • signature — подпись запроса (подробнее — в разделе Работа с подписью к данным).

    Рис.: Пример запроса на получение идентификатора платежа на стороне веб-сервиса

    {
       "type":"check_deposit",
       "project_id":111,
       "customer_id":"customer8@example.com",
       "amount":10000,
       "currency":"RUB",
       "payment_method":"terminal/qiwi-ru",
       "signature":"lY0LTSAzpR7zGce5qfYG...R7mdOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. Ответ на запрос check_deposit должен быть отправлен синхронно и содержать следующие обязательные параметры:
    • code — код ответа на запрос;
    • payment_id — уникальный идентификатор платежа на стороне веб-сервиса.
    Табл. 2. Допустимые коды ответов
    Код Описание
    0 Операция успешна
    400 Ошибка подписи
    404 Лицевой счёт пользователя не существует
    500 Общая ошибка, причина должна быть описана в необязательном параметре errors.message

    Рис.: Пример ответа на запрос

    {
       "code":0,
       "payment_id":"445",
       "description":"test payment"
    }

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

Для оповещений о результатах пополнения лицевого счёта с применением метода QIWI Push используется стандартный формат, описание которого представлено в разделе Оповещения.

В данном случае оповещение свидетельствует о том, что в рамках проекта 238 проведено успешное пополнение лицевого счёта в размере 20,00 RUB.

Рис.: Пример оповещения о пополнении лицевого счёта

{
    "project_id": 238,
    "payment": {
        "id": "21538362",
        "type": "purchase",
        "status": "success",
        "date": "2020-04-24T11:53:19+0000",
        "method": "qiwi-ru",
        "sum": {
            "amount": 2000,
            "currency": "RUB"
        },
        "is_new_attempts_available": false,
        "attempts_timeout": 0,
        "description": ""
    },
    "account": {
        "number": "123456"
    },
    "customer_data": {
        "ip_address": "1.2.3.4"
    },
    "fee": {
        "amount": 1,
        "currency": "RUB"
    },
    "merchant_account_id": 6389,
    "operation": {
        "id": 1000000001,
        "type": "sale",
        "status": "success",
        "date": "2020-04-24T11:53:19+0000",
        "created_date": "2020-04-24T11:53:12+0000",
        "request_id": "a5821969a8538aaef75...c1ff3d0d8e9805b-00000002",
        "sum_initial": {
            "amount": 2000,
            "currency": "RUB"
        },
        "sum_converted": {
            "amount": 2000,
            "currency": "RUB"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 6389,
            "payment_id": "471623",
            "auth_code": ""
        }
    },
    "signature": "mcDPZRhkuYCm+8iiWdOO...6uk8xn0nT6GaEnLiMy1L77tA=="
}

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

Как и при работе с другими платёжными методами, которые предоставляет ECommPay, при использовании метода QIWI Push доступны разные способы анализа информации о платежах и операциях с применением этого метода — как в отдельности, так и в совокупности с другими методами.

Всю необходимую информацию можно получать и анализировать средствами Dashboard (Old Dashboard), в том числе с помощью аналитических панелей на вкладке Analytics.

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

  • Dashboard (Old Dashboard) позволяет выгружать данные в форматах CSV и XLS с помощью инструментов на вкладке Платежи. При этом можно выполнять разовые выгрузки информации на локальный компьютер и задействовать периодическую выгрузку и отправку информации на заданные адреса электронной почты.
  • Data API позволяет получать информацию в формате JSON и отправлять ее на заданный URL — для этого применяются запросы /operations/get.

С любыми вопросами о возможностях анализа можно обращаться в службу технической поддержки ECommPay.