Mobile Push

Обзор

Mobile Push — платежный метод, позволяющий пользователям пополнять лицевой счет в сервисе мерчанта с лицевого счета оператора мобильной связи в Казахстане. В платежной платформе пополнение лицевого счета выполняется аналогично оплате (тип операции sale) и осуществляется через Gate.

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

Схема работы

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



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

Интерфейсы Время
Payment Page Gate Dashboard базовое предельное
Пополнение лицевого счета 1 минута 26 часов

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

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

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

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



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

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

Табл. 1. Доступные операторы и их ограничения
Оператор мобильной связи Суммы оплат, KZT
минимум максимум
за транзакцию в сутки
Activ 200,00 148 850,00 290 000,00
Altel 5,00 60 000,00 290 000,00
Kcell 200,00 148 850,00 290 000,00
Tele2 5,00 60 000,00 290 000,00

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

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

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

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

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



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

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

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

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

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

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

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

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

    {
        "type": "verify",
        "project_id": 1234,
        "customer_id": "7123456789",
        "signature": "e19695449545fac562843ca06e7e0f3e51281ad6"
    }
  3. Ответ на запрос verify должен отправляться синхронно и содержать следующие обязательные параметры:
    • code — код ответа на запрос;
    • currency — код валюты платежа в формате ISO-4217 alpha-3.
    Табл. 2. Допустимые коды ответов
    Код Описание
    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;
    • project_id — идентификатор проекта, полученный от JetPay при интеграции;
    • customer_id — идентификатор учетной записи пользователя в сервисе мерчанта, на баланс которой зачисляются денежные средства с лицевого счета пользователя в системе оператора мобильной связи;
    • amount — сумма оплаты в дробных единицах валюты без десятичной точки и пробелов за исключением случаев, когда у валюты нет дробной части. Если у валюты нет дробных единиц (то есть количество разрядов дробных единиц равно нулю), то в этом параметре нужно указывать сумму в основных единицах валюты. Подробнее о разрядах дробных единиц у валют см. Коды валют;
    • currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_method — идентификатор платежной группы, значение параметра зависит от сервиса оператора мобильного сайта, возможные значения:
      • terminal/activ — для оператора мобильной связи Activ;
      • terminal/altel — для оператора мобильной связи Altel;
      • terminal/kcell — для оператора мобильной связи Kcell;
      • terminal/tele2 — для оператора мобильной связи Tele2.
    • signature — подпись запроса.

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

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

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

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

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

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

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

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

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

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

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

В оповещениях о результате оплаты с использованием метода Mobile Push используется типовой формат, который описан в разделе Оповещения (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": "tele2",
        "sum": {
            "amount": 100000,
            "currency": "KZT"
        },
        "description": ""
    },
    "account": {
        "number": "7123456789"
    },
    "customer": {
        "id": "customer_123",
        "phone": "81231234567"
    },
    "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.