Vietnamese QR banking

Обзор

Vietnamese QR banking — это один из самых удобных для вьетнамских пользователей способов оплаты с помощью сканирования QR-кода в приложении интернет-банкинга. Платеж зачисляется сразу после того, как пользователь подтверждает списание средств, введя OTP или заранее определенный платежный код в приложении. Оплаты осуществляются через Payment Page и Gate.

Для проведения оплат используется два канала: с перенаправлением пользователя и без. Номер подключённого канала необходимо уточнять у курирующего менеджера ECommPay.

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

Тип платёжного метода платежи с помощью QR-кода
Регионы использования VN
Валюты платежей VND
Конвертация валют
Оплаты +
Выплаты *
Оплаты по сохранённым данным
Полные возвраты по запросу в техническую поддержку ECommPay
Частичные возвраты
Опротестования
Особенности
  • * поддерживается проведение выплат с использованием метода Banks of Vietnam
  • для валюты VND суммы указываются без дробной части
Организация и стоимость подключения по согласованию с курирующим менеджером ECommPay

Схема работы

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



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

Интерфейсы Суммы, VND (канал 1) Суммы, VND (канал 2)
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) минимум максимум минимум максимум
Оплаты + + 2 000 20 000 000 000 * *

* Информацию необходимо уточнять у курирующего менеджера ECommPay.

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

Проведение оплат с использованием метода Vietnamese QR banking выполняется со сканированием QR-кода пользователем с помощью мобильного приложения.

Рис.: Оплата через Payment Page. Канал 1: без перенаправления пользователя



Рис.: Оплата через Payment Page. Канал 2: с перенаправлением пользователя



Рис.: Оплата через Gate. Канал 1: без перенаправления пользователя



Рис.: Оплата через Gate. Канал 2: с перенаправлением пользователя



Поддержка со стороны банков

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

Далее в таблице в ознакомительных целях представлена информация об этих банках. Эту информацию можно уточнять у курирующего менеджера ECommPay, а также с помощью запроса /v2/info/banks/vietnam-qr/sale/list, относящегося к группе запросов /v2/info/banks/{payment_method}/{operationType}/list.

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

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

{
  "general": {
    "project_id": 200,
    "payment_id": "ORDER_155860015",
    "signature": "K6jllym+PtObocZtr345st...=="
  },
  "payment": {
    "amount": 1000,
    "currency": "VND"
  }
}
Табл. 1. Канал 1. Список банков
Банк ID
Agribank 139
An Binh Commercial Joint Stock Bank (ABBANK) 465
Bac A Commercial Joint Stock Bank (Bac A Bank) 439
Bank for Investment and Development of Vietnam 136
Eximbank Vietnam 135
Indovina Bank Ltd. (IVB) 569
Joint Stock Commercial Bank for Foreign Trade of Vietnam 133
Military JSC Bank (MB) 447
Nam A commercial joint stock bank (NamABank) 452
Nam Viet Bank (NaviBank) 441
Orient Commercial Bank (PhuongDong Bank) 467
Saigon Hanoi Commercial Joint Stock Bank (SHB) 451
Sai Gon Joint Stock Commercial Bank (SCB) 460
Tien Phong Commercial Joint Stock Bank (TienPhongBank) 445
VietinBank 134
Vietnam International Bank 138
Vietnam Maritime Commercial Joint Stock Bank (MaritimeBank) 440
Vietnam Prosperity Bank (VPBank) 449
WeChat Pay 570
Табл. 2. Канал 2. Список банков
Банк ID
Asia Commercial Bank 150
Bank for Investment and Development of Vietnam 136
Tien Phong Commercial Joint Stock Bank (TienPhongBank) 445
Vietcombank 133
Vietnam Prosperity Bank (VPBank) 449

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

Оплаты через Payment Page. Канал 1: без перенаправления пользователя

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

Для оплаты через Payment Page с использованием метода Vietnamese QR banking со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате оплаты. При этом метод Vietnamese QR banking можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платёжного метода). Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Payment Page

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

Информация о формате запросов и параметрах вызова Payment Page при работе с Vietnamese QR banking, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа, без дробной части;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Валютой платежа может быть только VND.
  3. Для предварительного выбора метода Vietnamese QR banking необходимо указывать код платёжного метода vietnam-banks-qr в параметре force_payment_method.
  4. Дополнительно можно настроить язык письма (английский или вьетнамский) с результатом оплаты. По умолчанию используется вьетнамский язык. Для изменения на английский необходимо передать в параметре customer.language код en.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  6. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с применением метода Vietnamese QR banking должен содержать идентификаторы проекта, пользователя и платежа, валюту и сумму платежа, электронный адрес и подпись:

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 3 000, 
      payment_currency: 'VND', 
      project_id: 100, 
      customer_id: 'customer1',
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo8552Kt8KU+Y1Y4HASCQ9vySO8
                         5/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 200 для пользователя 1 была успешно проведена оплата в размере 2 000 VND.

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

{
        "project_id": 200,
        "payment": {
            "id": "TEST_1561223423_VND1",
            "type": "purchase",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 2000,
                "currency": "VND"
            },
            "description": "TEST_1561714332889"
        },
        "customer": {
            "id": "1",
            "phone": "0914695523"
        },
        "operation": {
            "id": 39811000003358,
            "type": "sale",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "created_date": "2019-07-01T07:53:19+0000",
            "request_id": "1fb651fe71b5db9db3d6382c995c8f51b08785ff",
            "sum_initial": {
                "amount": 2000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 2000,
                "currency": "VND"
            },
            "provider": {
                "id": 1283,
                "payment_id": "56366711",
                "auth_code": "",
                "endpoint_id": "TCB"
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "YreiJ0aXQgDVuo74tsBXpZ8tmJi0IRVCyFucJ1aYk4mjybiVRcd/0M
                                       iUb8E9twm5IDxiZ8C2sqcuuncjkbazWKg=="
    }
}

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

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

{
        "project_id": 200,
        "payment": {
            "id": "TEST_1561223423_VND1",
            "type": "purchase",
            "status": "decline",
            "date": "2019-07-01T07:54:16+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 1000,
                "currency": "VND"
            },
            "description": "TEST_1561714332889"
        },
        "customer": {
            "id": "1",
            "phone": "0914695523"
        },
        "operation": {
            "id": 39811000003358,
            "type": "sale",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "created_date": "2019-07-01T07:53:19+0000",
            "request_id": "1fb651fe71b5db9db3d6382c995c8f51b08785ff",
            "sum_initial": {
                "amount": 1000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "VND"
            },
            "provider": {
                "id": 1283,
                "payment_id": "56366711",
                "auth_code": "",
                "endpoint_id": "TCB"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit"
        },
        "signature": "YreiJ0aXQgDVuo74tsBXpZ8tmJi0IRVCyFucJ1aYk4mjybiVRcd/0M
                                       iUb8E9twm5IDxiZ8C2sqcuuncjkbazWKg=="
    }
}

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

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

Оплаты через Payment Page. Канал 2: с перенаправлением пользователя

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

Для оплаты через Payment Page с использованием метода Vietnamese QR banking со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay и принять оповещение о результате оплаты. При этом метод Vietnamese QR banking можно сделать предварительно выбранным (подробнее — в разделе Предварительный выбор платёжного метода). Полная схема проведения оплаты представлена далее.



Рис.: Проведение оплаты через Payment Page

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

Информация о формате запросов и параметрах вызова Payment Page при работе с Vietnamese QR banking, а также о формате оповещений о результатах оплат приведена далее; общая информация о работе с API см. в разделе Описание Payment Page API.

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа, уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа, без дробной части;
    • customer_id — идентификатор пользователя в рамках проекта.
  2. Дополнительно, в зависимости от провайдера, используемого для проведения платежа, рекомендуется указывать адрес электронной почты пользователя в параметре customer_email. Если параметр отсутствует в запросе, на Payment Page пользователю отображается поле для ввода недостающего значения. Подробнее об уточнении параметров — в разделе Дополнение информации о платеже.
  3. Для предварительного выбора метода Vietnamese QR banking необходимо указывать код платёжного метода в параметре force_payment_methodvietnam-banks-qr.
  4. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  5. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

Таким образом, корректный запрос на открытие платёжной формы с применением метода Vietnamese QR banking должен содержать идентификаторы проекта, пользователя и платежа, данные пользователя, а также валюту, сумму платежа и подпись:

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 300000, 
      payment_currency: 'VND', 
      project_id: 214,
      customer_id: 'customer1', 
      customer_email: 'john@example.com'
      signature: "kUi2x9dKHAVNU0FYldJrxhRLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 3514 была успешно проведена оплата в размере 300 000 VND.

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

{
        "project_id": 3514,
        "payment": {
            "id": "EPd3f4-9b1a",
            "type": "purchase",
            "status": "success",
            "date": "2020-11-06T13:16:50+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 300000,
                "currency": "VND"
            },
            "description": ""
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 233,
            "type": "sale",
            "status": "success",
            "date": "2020-11-06T13:16:50+0000",
            "created_date": "2020-11-06T13:16:36+0000",
            "request_id": "3fe344d57e581a37b16ddd8e7507a65f5bef7dfaafc-00000001",
            "sum_initial": {
                "amount": 300000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 300000,
                "currency": "VND"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2673,
                "payment_id": "160466859929",
                "auth_code": ""
            }
        },
        "signature": "fF9J+3OdjdGux9liAxvDk5/Fublg9sMqOvypzgcMLZXG09ptOg=="
    }

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

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

 {
        "project_id": 3514,
        "payment": {
            "id": "EP9ab9-a3a4",
            "type": "purchase",
            "status": "decline",
            "date": "2020-11-06T13:26:48+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 350000,
                "currency": "VND"
            },
            "description": ""
        },
        "customer": {
            "id": "456"
        },
        "operation": {
            "id": 236,
            "type": "sale",
            "status": "decline",
            "date": "2020-11-06T13:26:48+0000",
            "created_date": "2020-11-06T13:26:33+0000",
            "request_id": "2e084e9b6736091b032a78b86d6fbc46b18431-00000001",
            "sum_initial": {
                "amount": 350000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 350000,
                "currency": "VND"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 2673,
                "payment_id": "160466919625",
                "auth_code": ""
            }
        },
        "signature": "H8F+m5SL3ZxjnzCrsvjPSqQ203NfvL5dXP50qJUXTOqqgKkHZA=="
    }

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

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

Оплаты через Gate. Канал 1: без перенаправления пользователя

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

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

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

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

Рис.: Проведение оплаты через Gate

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

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

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

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

  1. Должен использоваться запрос /v2/payment/banks/vietnam-qr/sale, отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/banks/{payment_method}/sale.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — основные сведения:
      • project_id — идентификатор проекта,
      • payment_id — идентификатор платежа,
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — сведения о платеже:
      • amount — сумма,
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • customer — сведения о пользователе:
      • id — идентификатор, уникальный в рамках проекта,
      • email — адрес электронной почты,
      • ip_address — используемый IP-адрес;
    • account — сведения о счёте пользователя:
      • bank_id — идентификатор банка.
  3. Валютой платежа может быть только VND.
  4. Дополнительно можно настроить язык письма (английский или вьетнамский) с результатом оплаты. По умолчанию используется вьетнамский язык. Для изменения на английский необходимо передать в параметре customer.language код en.
  5. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на оплату с применением метода Vietnamese QR banking должен содержать идентификаторы проекта и платежа, подпись, валюту и сумму платежа, адрес электронной почты и IP-адрес пользователя, идентификатор банка:

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

{
    "general": {
        "project_id": 603,
        "payment_id": "test_payment_1",
        "signature": "U5LCm6489ly9cXCKIVBNV0mFr4XiCruECSyQEbT1hSXJ70zuH4...=="
    },
    "payment": {
        "amount": 3000,
        "currency": "VND"
    },
    "account": {
        "bank_id": 505
    },
    "customer": {
        "email": "Betelgeuse@gmail.com",
        "ip_address": "248.121.176.220",
        "id": "customer123"
    }
}

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

Для завершения оплаты необходимо отобразить пользователям QR-код. Информация для отображения QR-кода содержится в оповещении от платёжной платформы в параметре qr_code в виде закодированного в Base64 изображения, поэтому прежде чем отобразить QR-код, надо принять и обработать такое оповещение.

Данное оповещение отправляется от платёжной платформы ECommPay на URL, указанный в настройках проекта мерчанта, для получения финального результата, а не для получения асинхронного ответа, как в случае с данными для перенаправления пользователей. Статус платежа в данном случае будет awaiting customer action до момента завершения оплаты со стороны пользователя.

Далее приведён фрагмент оповещения, содержащего данные QR-кода для оплаты.

"qr_code": "iVBORw0KGgoAAAANSUhEUgAAAG8AAABvAQMAAADYCwwjAAAABlBMVEX///
8AAABVwtN+AAAACXBIWXMAAA7EAAAOxAGVKw4bAAABG0lEQVQ4jdXTsY3FIAwGYCMXdLBApKxBx0qZ4AILJCvRsQYSC7x0FCg
+J3l3rwPahyj4CiT7lw3wjUcTOYNOIlHqUgH6MIHMDgZo8yZhMbiXIfpQweZxa\nsIhAjqbD/oU2SD3u5nM97/9Bq/vEnT8hNm
gLnRCEjQ7M8JJxwqG/N1CmyLMGycTcLN98l9R6CBY3lW1qCw5ixToNUDBJTFL9nc4HRaiMimT9AB1TBzjGuHnKbJJZWcfkgj4k
qlL4AmUlcN3tk8l8bwmsC6yTxEnHcgH3og+lcEj8ooRxT7vLvDkcEqf18TCpCTvWp+8C3vk8JMOA7yX8ZnbEXqqa+HHEHfK\nG
8AaBshVcZKxPovWJve7E4eZlr/2G/y+8wt5N/rpIH9KkwAAAABJRU5ErkJggg=="

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 200 для пользователя 1 была успешно проведена оплата в размере 2 000 VND.

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

{
        "project_id": 200,
        "payment": {
            "id": "TEST_1561223423_VND1",
            "type": "purchase",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 2000,
                "currency": "VND"
            },
            "description": "TEST_1561714332889"
        },
        "customer": {
            "id": "1",
            "phone": "0914695523"
        },
        "operation": {
            "id": 39811000003358,
            "type": "sale",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "created_date": "2019-07-01T07:53:19+0000",
            "request_id": "1fb651fe71b5db9db3d6382c995c8f51b08785ff",
            "sum_initial": {
                "amount": 2000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 2000,
                "currency": "VND"
            },
            "provider": {
                "id": 1283,
                "payment_id": "56366711",
                "auth_code": "",
                "endpoint_id": "TCB"
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "YreiJ0aXQgDVuo74tsBXpZ8tmJi0IRVCyFucJ1aYk4mjybiVRcd/0M
                                       iUb8E9twm5IDxiZ8C2sqcuuncjkbazWKg=="
    }
}

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

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

{
        "project_id": 200,
        "payment": {
            "id": "TEST_1561223423_VND1",
            "type": "purchase",
            "status": "decline",
            "date": "2019-07-01T07:54:16+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 1000,
                "currency": "VND"
            },
            "description": "TEST_1561714332889"
        },
        "customer": {
            "id": "1",
            "phone": "0914695523"
        },
        "operation": {
            "id": 39811000003358,
            "type": "sale",
            "status": "success",
            "date": "2019-07-01T07:54:16+0000",
            "created_date": "2019-07-01T07:53:19+0000",
            "request_id": "1fb651fe71b5db9db3d6382c995c8f51b08785ff",
            "sum_initial": {
                "amount": 1000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 1000,
                "currency": "VND"
            },
            "provider": {
                "id": 1283,
                "payment_id": "56366711",
                "auth_code": "",
                "endpoint_id": "TCB"
            },
            "code": "20101",
            "message": "Decline due to amount or frequency limit"
        },
        "signature": "YreiJ0aXQgDVuo74tsBXpZ8tmJi0IRVCyFucJ1aYk4mjybiVRcd/0M
                                       iUb8E9twm5IDxiZ8C2sqcuuncjkbazWKg=="
    }
}

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

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

Оплаты через Gate. Канал 2: с перенаправлением пользователя

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

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

  1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL ECommPay.
  2. Осуществить перенаправление в сервис Vietnamese QR banking.
  3. Принять оповещение от платежной платформы ECommPay о результате оплаты.

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



Рис.: Проведение оплаты через Gate

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

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

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

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

  1. Должен использоваться запрос к точке входа /v2/payment/banks/vietnam-qr/sale, отправляемый методом POST. Этот запрос относится к группе запросов /v2/payment/banks/{payment_method}/sale.
  2. В запросе должны использоваться следующие объекты и параметры:
    • general — объект, содержащий основные идентификационные сведения о запросе:
      • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
      • payment_id — идентификатор платежа, уникальный в рамках проекта;
      • signature — подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Использование подписи к данным);
    • payment — сведения о платеже:
      • amount — сумма платежа, без дробной части;
      • currency — валюта платежа в формате ISO-4217 alpha-3;
    • customer — объект, содержащий сведения о пользователе:
      • id — идентификатор в рамках проекта;
      • ip_address — используемый IP-адрес;
      • email — адрес электронной почты (обязательность этого параметра зависит от провайдера, который проводит платёж, подробности следует уточнять у курирующего менеджера ECommPay);
    • account — сведения о счёте пользователя:
      • bank_id — идентификатор банка(обязательность этого параметра зависит от провайдера, который проводит платёж, подробности следует уточнять у курирующего менеджера ECommPay);
    • return_url — объект, содержащий URL для перенаправления пользователя в веб-сервис:
      • success — URL для перенаправления при успешной оплате.
  3. Дополнительно могут использоваться все параметры, указанные в спецификации.

Таким образом, корректный запрос на открытие платёжной формы с применением метода Vietnamese QR banking должен содержать идентификаторы проекта, пользователя и платежа, подпись, сумму и валюту платежа, данные пользователя и URL для перенаправления.

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

{
    "general": {
      "project_id": 211,
      "payment_id": "payment_id",
      "signature": "PJkV8ej\/UG0Di8NN5e7cV+VHq3oXW\/9MTO8yJA=="
    },
    "payment": {
      "amount": 300000,
      "currency": "VND"
    },
    "customer": {
      "id": "123",
      "ip_address": "1.1.1.1",
      "email": "john@example.com"
    },
    "account": {
        "bank_id": 150
    },
    "return_url": {
      "success": "http://example.com/return"
    }  
}

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

Для перенаправления пользователя от веб-сервиса на сайт сервиса Vietnamese QR banking необходимо принять оповещение от платёжной платформы, содержащее ссылку для перенаправления в параметре redirect_data.url и данные для отправки в теле запроса redirect_data.body, и использовать эти параметры при открытии HTML-страницы сайта методом, указанным в redirect_data.method.

Далее приведён фрагмент оповещения, содержащего данные для перенаправления.

{
                    "body": [...],
                    "method": "POST",
                    "url": "http://example.com/redirect"
                }

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

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

В следующем примере оповещение свидетельствует о том, что в рамках проекта 3514 была успешно проведена оплата в размере 300 000 VND.

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

{
        "project_id": 3514,
        "payment": {
            "id": "EPd3f4-9b1a",
            "type": "purchase",
            "status": "success",
            "date": "2020-11-06T13:16:50+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 300000,
                "currency": "VND"
            },
            "description": ""
        },
        "customer": {
            "id": "123"
        },
        "operation": {
            "id": 233,
            "type": "sale",
            "status": "success",
            "date": "2020-11-06T13:16:50+0000",
            "created_date": "2020-11-06T13:16:36+0000",
            "request_id": "3fe344d57e581a37b16ddd8e7507a65f5bef7dfaafc-00000001",
            "sum_initial": {
                "amount": 300000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 300000,
                "currency": "VND"
            },
            "code": "0",
            "message": "Success",
            "provider": {
                "id": 2673,
                "payment_id": "160466859929",
                "auth_code": ""
            }
        },
        "signature": "fF9J+3OdjdGux9liAxvDk5/Fublg9sMqOvypzgcMLZXG09ptOg=="
    }

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

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

 {
        "project_id": 3514,
        "payment": {
            "id": "EP9ab9-a3a4",
            "type": "purchase",
            "status": "decline",
            "date": "2020-11-06T13:26:48+0000",
            "method": "Vietnam banks-qr",
            "sum": {
                "amount": 350000,
                "currency": "VND"
            },
            "description": ""
        },
        "customer": {
            "id": "456"
        },
        "operation": {
            "id": 236,
            "type": "sale",
            "status": "decline",
            "date": "2020-11-06T13:26:48+0000",
            "created_date": "2020-11-06T13:26:33+0000",
            "request_id": "2e084e9b6736091b032a78b86d6fbc46b18431-00000001",
            "sum_initial": {
                "amount": 350000,
                "currency": "VND"
            },
            "sum_converted": {
                "amount": 350000,
                "currency": "VND"
            },
            "code": "20000",
            "message": "General decline",
            "provider": {
                "id": 2673,
                "payment_id": "160466919625",
                "auth_code": ""
            }
        },
        "signature": "H8F+m5SL3ZxjnzCrsvjPSqQ203NfvL5dXP50qJUXTOqqgKkHZA=="
    }

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

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

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

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

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

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

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

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