PayDala Terminal

Обзор

PayDala Terminal — метод для проведения оплат с использованием физических терминалов сервиса PayDala.

Загрузить логотип этого платежного метода в векторном формате можно здесь.

Тип платежного метода Физический терминал
Регионы использования Казахстан
Валюты платежей KZT
Конвертация валют На стороне провайдера
Оплата
Выплата
Оплата по сохраненным данным
Полный возврат
Частичный возврат
Опротестование
Особенности
Организация и стоимость подключения По согласованию с курирующим менеджером JetPay

Схема работы

В проведении отдельной оплаты с использованием платежного метода PayDala Terminal задействуются веб-сервис мерчанта, интерфейс Gate и платежная платформа JetPay, а также сервис PayDala.



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

Интерфейсы Суммы, KZT Время
Payment Page CMS Plug-ins Gate Dashboard минимум максимум базовое предельное
Оплата 1 минута 36 суток

Уточнить минимальную и максимальную сумму платежа, доступную в вашем проекте, вы можете в Dashboard. Для этого в Dashboard перейдите в раздел Проекты и выберите вкладку Платежные методы.

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

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

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



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

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

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

При пополнении лицевого счета с использованием платежного метода PayDala Terminal веб-сервис должен выполнить следующее:

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

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



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

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

Информация о формате запросов через Gate, а также о формате оповещений о результатах оплаты приведена далее. Общую информацию о работе с Gate API можно найти в разделе Использование API Gate.

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

Запрос на проверку существования лицевого счета

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

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

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

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

    В случае успеха проверки наличия лицевого счета ответ должен содержать код 0 ответа на запрос и код валюты платежа.

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

    {
        "code": 0,
        "currency": "KZT",
        "additional_customer_id": "customer_123"
    }

    Если запрос нельзя корректно обработать или не удалось обнаружить запрошенный лицевой счет, ответ на запрос должен содержать код ответа 404, а также может содержать дополнительную информацию об ошибке в параметре message.

    Рис.: Пример ответа с кодом ошибки

    { 
        "code": 404,
        "message": "Account does not exist"
    }
Запрос идентификатора платежа

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

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

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

    {
        "type": "check_deposit",
        "project_id": 1234,
        "customer_id": "7123456789",
        "amount": 100000,
        "currency": "KZT",
        "payment_method": "terminal/paydala",
        "signature": "lY0LTSAzpR7...dOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. Ответ на запрос check_deposit должен отправляться синхронно и содержать следующие обязательные параметры:
    • code — код ответа на запрос;
    • payment_id — уникальный идентификатор платежа на стороне веб-сервиса, обязателен при использовании кода ответа 0.
    Табл. 2. Допустимые коды ответов
    Код Описание
    0 Операция успешна
    400 Ошибка подписи
    404 Лицевой счет пользователя не существует
    500 Общая ошибка, причина должна быть описана в параметре message

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

    • message — произвольное описание кода ответа;
    • description — описание платежа.

    Ответ на запрос получения идентификатора платежа на стороне веб-сервиса должен содержать код ответа на запрос и уникальный идентификатор платежа на стороне веб-сервиса.

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

    {
        "code": 0,
        "payment_id": "payment_47",
        "description": "Success"
    }

    Ответ c информацией об ошибке должен содержать код ответа на запрос и сообщение об ошибке.

    Рис.: Пример ответа с информацией об ошибке

    {
        "code": 500,
        "message": "Something went wrong"
    }

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

В оповещениях о результате оплаты с использованием метода PayDala Terminal используется типовой формат, который описан в разделе Оповещения (callbacks) в Gate.

В следующем примере в оповещении содержится информация о том, что в рамках проекта 1234 проведена оплата в размере 1000,00 KZT.

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

{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "paydala",
        "sum": {
            "amount": 100000,
            "currency": "KZT"
        },
        "description": ""
    },
    "account": {
        "number": "7123456789"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 100000,
            "currency": "KZT"
        },
        "sum_converted": {
            "amount": 100000,
            "currency": "KZT"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

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

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

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

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

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

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

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

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