Boost Wallet

Обзор

Введение

Boost Wallet — метод, позволяющий проводить платежи в малайзийских ринггитах с использованием электронного кошелька в Малайзии. Для этого метода в платёжной платформе ecommpay поддерживаются оплаты.

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

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

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

Схема работы

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



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

Для проведения платежей и выполнения операций с использованием метода Boost Wallet могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard (с применением платёжных ссылок).

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

Проведение оплат с использованием метода Boost Wallet осуществляется с отображением пользователю на Payment Page или в веб-сервисе мерчанта QR-кода и оплату через электронный кошелек с использованием полученного кода.

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

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

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

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

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



Рис. 9. Проведение оплаты через Payment Page. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует оплату.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Payment Page.
  3. Запрос на проведение оплаты поступает в платёжную платформу.
  4. В платёжной платформе выполняется приём запроса, с проверкой наличия обязательных параметров и корректной подписи.
  5. Осуществляется подготовка Payment Page согласно параметрам проекта и вызова.
  6. Пользователю отображается платёжная форма.
  7. Пользователь выбирает для оплаты метод Boost Wallet.
  8. Пользователю отображается платёжная форма, соответствующая запросу.
  9. Пользователь вводит данные для оплаты.
  10. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода Boost Wallet.
  11. В платёжной платформе выполняются обработка полученного запроса и его отправка в сервис Boost Wallet.
  12. На стороне Boost Wallet выполняется обработка запроса и генерируется QR-код для оплаты.
  13. От Boost Wallet в платёжную платформу направляется сгенерированные QR-код оплаты.
  14. От платёжной платформы к Payment Page перенаправляются QR-код для оплаты, а также инструкция с руководством по оплате.
  15. Пользователю на Payment Page отображаются QR-код и инструкция.
  16. Пользователь завершает оплату по QR-коду, сканируя его с помощью мобильного приложения Boost Wallet или другим удобным способом.
  17. В сервисе Boost Wallet происходит обработка платежа.
  18. Пользователю отображается результат оплаты в приложении Boost Wallet.
  19. От сервиса Boost Wallet к платёжной платформе направляется информация о результате оплаты.
  20. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.

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

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

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

  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. Валютой платежа может быть только MYR.
  4. Дополнительно должны использоваться параметры customer_first_name, customer_last_name, customer_email, customer_phone — имя и фамилия, адрес электронной почты и номер телефона пользователя.
  5. Для предварительного выбора метода Boost Wallet необходимо указывать код этого метода в параметре force_payment_methodboost.
  6. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page (подробнее).
  7. После указания всех целевых параметров необходимо составлять подпись (подробнее).

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

{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "MYR",
   "customer_id": "customer1",
   "customer_first_name": "Putra",
   "customer_last_name": "Cane",
   "customer_phone": "60321669552",
   "customer_email": "customer@example.com",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}
Рис. 10. Пример достаточного набора данных для запроса на оплату
{
   "project_id": 120,
   "payment_id": "580",
   "payment_amount": 1000,
   "payment_currency": "MYR",
   "customer_id": "customer1",
   "customer_first_name": "Putra",
   "customer_last_name": "Cane",
   "customer_phone": "60321669552",
   "customer_email": "customer@example.com",
   "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg=="
}

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

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

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

Рис. 11. Пример данных из оповещения о проведении оплаты
{
        "project_id": 635,
        "payment": {
            "id": "EP9a11-3704",
            "type": "purchase",
            "status": "success",
            "date": "2019-03-22T06:20:51+0000",
            "method": "boostViaEGHL",
            "sum": {
                "amount": 10000,
                "currency": "MYR"
            },
            "description": "123"
        },
        "account": {
            "number": "qwe@qwe.qwqw"
        },
        "customer": {
            "id": "sasha",
            "phone": "555"
        },
        "operation": {
            "id": 126,
            "type": "sale",
            "status": "success",
            "date": "2019-03-22T06:20:51+0000",
            "created_date": "2019-03-22T06:20:35+0000",
            "request_id": "f587b6309ccb",
            "sum_initial": {
                "amount": 10000,
                "currency": "MYR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "MYR"
            },
            "provider": {
                "id": 1352,
                "payment_id": "123123",
                "date": "2019-03-22T06:20:49+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "AoBE429Tp7suALwVK81YfHPVW75FFHYyezXIZ1ZopQZDRjGEBx9kXpi5Q=="
    }

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

Рис. 12. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 635,
        "payment": {
            "id": "EP0ec0-9074",
            "type": "purchase",
            "status": "decline",
            "date": "2019-03-22T06:23:56+0000",
            "method": "boostViaEGHL",
            "sum": {
                "amount": 10,
                "currency": "MYR"
            },
            "description": "123"
        },
        "account": {
            "number": "qwe@qwe.qwqw"
        },
        "customer": {
            "id": "sasha",
            "phone": "555"
        },
        "operation": {
            "id": 1000000126,
            "type": "sale",
            "status": "decline",
            "date": "2019-03-22T06:23:56+0000",
            "created_date": "2019-03-22T06:23:32+0000",
            "request_id": "73201c0a413f",
            "sum_initial": {
                "amount": 10,
                "currency": "MYR"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "MYR"
            },
            "provider": {
                "id": 1352,
                "payment_id": "123123",
                "date": "2019-03-22T06:23:54+0000",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "LDuxQYuGsgNXeV6aCKbsfNec7J8pRoliCf2n0/RkmXfRL1ElQ8vTw3v0f4SFg=="
    }

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

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

Оплаты через Gate

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

Для проведения оплаты через Gate с использованием метода Boost Wallet со стороны веб-сервиса необходимо:

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

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



Рис. 13. Проведение оплаты через Gate. Описание шагов
  1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода Boost Wallet.
  2. От веб-сервиса на заданный URL ecommpay передаётся запрос на проведение оплаты через Gate.
  3. Запрос на проведение оплаты поступает в платёжную платформу ecommpay.
  4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи.
  5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности (подробнее).
  6. В платёжной платформе выполняются дальнейшая обработка запроса (с проверкой согласованности параметров) и его оправка в сервис Boost Wallet.
  7. В сервисе Boost Wallet выполняется обработка запроса на оплату.
  8. От сервиса Boost Wallet к платёжной платформе передаются данные для перенаправления пользователя в сервис Boost Wallet, а также сгенерированный QR-код для оплаты.
  9. От платёжной платформы к веб-сервису направляется оповещение с данными для перенаправления пользователя в сервис Boost Wallet и QR-код в объекте redirect_data.
  10. Пользователю на веб-сервисе отображается сгенерированные QR-код и инструкция к оплате.
  11. Пользователь перенаправляется в сервис Boost Wallet, при необходимости осуществляя вход, и завершает оплату по QR-коду.
  12. В сервисе Boost Wallet выполняется обработка платежа.
  13. Пользователю отображается информация о результате оплаты.
  14. От сервиса Boost Wallet к платёжной платформе направляется информация о результате оплаты.
  15. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты.

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

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

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

  1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке /v2/payment/wallet/boost/sale. Эта точка относится к группе /v2/payment/wallet/{payment_method}/sale.
  2. В каждом запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения запроса:
      • project_id — идентификатор проекта, полученный от ecommpay при интеграции;,
      • payment_id — идентификатор платежа, уникальный в рамках проекта;,
      • signature — подпись запроса, составленная после указания всех целевых параметров (подробнее — в разделе Работа с подписью); (подробнее),
    • payment — объект, содержащий сведения о платеже:
      • amount — сумма платежа в дробных единицах валюты;,
      • currency — код валюты платежа в формате ISO-4217 alpha-3;,
      • description — описание или комментарий к платежу.
    • customer — сведения о пользователе:
      • id — идентификатор пользователя, уникальный в рамках проекта;,
      • ip_address — IP-адрес пользователя, актуальный для инициируемого платежа;,
      • first_name — имя пользователя;,
      • last_name — фамилия пользователя;,
      • email — адрес электронной почты пользователя;,
      • phone — номер телефона пользователя.
  3. Валютой платежа может быть только MYR.
  4. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации.

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

{
  "general": {
    "project_id": 318,
    "payment_id": "EP5fb7-bdg6",
    "signature": "testiuhgfcvbnm8f/kjhg\lkjhgvxbnmcvgfjdssAPOPKSJiojhbnm",
  },
  "payment": {
    "amount": 50000,
    "currency": "MYR",
    "description": "payment"
  },
  "customer": {
    "id":"2990",
    "first_name":"Petra",
    "last_name":"Davis",
    "ip_address":"192.0.2.0",
    "phone":"123456",
    "email":"customer@example.com",
  }
}
Рис. 14. Пример достаточного набора данных для запроса на оплату
{
  "general": {
    "project_id": 318,
    "payment_id": "EP5fb7-bdg6",
    "signature": "testiuhgfcvbnm8f/kjhg\lkjhgvxbnmcvgfjdssAPOPKSJiojhbnm",
  },
  "payment": {
    "amount": 50000,
    "currency": "MYR",
    "description": "payment"
  },
  "customer": {
    "id":"2990",
    "first_name":"Petra",
    "last_name":"Davis",
    "ip_address":"192.0.2.0",
    "phone":"123456",
    "email":"customer@example.com",
  }
}

Формат промежуточных оповещений для перенаправления пользователей

Для перенаправления пользователей от веб-сервиса мерчанта к сервису Boost Wallet при проведении каждого платежа с использованием метода Boost Wallet необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в объект redirect_data. Формат таких оповещений является типовым (подробнее), при этом в состав объекта redirect_data включаются следующие объекты и параметры:

  • body — объект с данными для отправки в теле запроса;
  • method — параметр с указанием HTTP-метода отправки запроса (GET или POST);
  • url — параметр со ссылкой для перенаправления.
Рис. 15. Пример объекта redirect_data
"redirect_data": {
    "body": [],
    "method": "GET",
    "url": "https://onlinepayment.boost-my.com/index.php?token=c639de48340c4a532ba6a03d5"
  }

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

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

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

Рис. 16. Пример оповещения о проведенной оплате
{
        "project_id": 635,
        "payment": {
            "id": "EP9a11-3704",
            "type": "purchase",
            "status": "success",
            "date": "2019-03-22T06:20:51+0000",
            "method": "boostViaEGHL",
            "sum": {
                "amount": 10000,
                "currency": "MYR"
            },
            "description": "123"
        },
        "account": {
            "number": "qwe@qwe.qwqw"
        },
        "customer": {
            "id": "sasha",
            "phone": "555"
        },
        "operation": {
            "id": 126,
            "type": "sale",
            "status": "success",
            "date": "2019-03-22T06:20:51+0000",
            "created_date": "2019-03-22T06:20:35+0000",
            "request_id": "f587b6309ccb",
            "sum_initial": {
                "amount": 10000,
                "currency": "MYR"
            },
            "sum_converted": {
                "amount": 10000,
                "currency": "MYR"
            },
            "provider": {
                "id": 1352,
                "payment_id": "123123",
                "date": "2019-03-22T06:20:49+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "AoBE429Tp7suALwVK81YfHPVW75FFHYyezXIZ1ZopQZDRjGEBx9kXpi5Q=="
    }

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

Рис. 17. Пример данных из оповещения об отклонении оплаты
{
        "project_id": 635,
        "payment": {
            "id": "EPe02d-985c",
            "type": "purchase",
            "status": "decline",
            "date": "2019-03-22T06:29:59+0000",
            "method": "ePayViaEGHL",
            "sum": {
                "amount": 10,
                "currency": "MYR"
            },
            "description": "123"
        },
        "customer": {
            "phone": "640991025894"
        },
        "operation": {
            "id": 1000000127,
            "type": "sale",
            "status": "decline",
            "date": "2019-03-22T06:30:00+0000",
            "created_date": "2019-03-22T06:29:28+0000",
            "request_id": "201ed6b216c",
            "sum_initial": {
                "amount": 10,
                "currency": "MYR"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "MYR"
            },
            "provider": {
                "id": 1353,
                "payment_id": "123123",
                "date": "2019-03-22T06:29:57+0000",
                "auth_code": ""
            },
            "code": "20105",
            "message": "Insufficient funds on customer account"
        },
        "signature": "3nAGOrfkfY/+VqUqhSVkzpMh6eVE7ipxDRNz1IO4AxA3A=="
    }
}

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

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

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

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

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

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