«Оплата в магазинах Таиланда»

Обзор

«Оплата в магазинах Таиланда» — платёжный метод, позволяющий пользователям совершать оплаты наличными в кассах магазинов сети BigC на территории Таиланда. BigC — один из крупнейших операторов гипермаркетов в Таиланде, который ежедневно посещают пользователи для покупки товаров и продуктов питания. С сотнями магазинов, расположенных в городах и крупных провинциях Таиланда, BigC становится отличным кассовым центром для привлечения более широкой аудитории пользователей, как держателей кредитных карт, так и тех, кто не имеет платежных карт или банковских счетов. К сети BigC принадлежат такие супермаркеты как BigC SuperCenter, BigC Extra, BigC Market, Big Seafood Place, Mini BigC и Pure Pharmacy. Платежи принимаются и обрабатываются в режиме реального времени, без задержек или обработки на следующий день. Оплаты осуществляются через Payment Page и Gate.

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

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

Схема работы

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



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

Интерфейсы Суммы, THB
Payment Page CMS Plug-ins Gate Dashboard (Old Dashboard) минимум максимум
Оплаты + + 50,00

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

Проведение оплат с использованием метода BigC выполняется с получением пользователем через Payment Page или в веб-сервисе мерчанта QR-кода или штрихкода для оплаты в кассе однго из магазинов.

Рис.: Оплата через Payment Page



Рис.: Оплата через Gate



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

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

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

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



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

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

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

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

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

  1. Должен использоваться базовый минимум параметров — параметры, обязательные для любого платёжного метода:
    • project_id — идентификатор проекта, полученный от ECommPay при интеграции;
    • payment_id — идентификатор платежа уникальный в рамках проекта;
    • payment_currency — валюта платежа в формате ISO-4217 alpha-3;
    • payment_amount — сумма платежа в минорных единицах;
    • customer_id — идентификатор пользователя уникальный в рамках проекта.
  2. Валютой платежа может быть только THB.
  3. Дополнительно должны использоваться параметры customer_first_name, customer_last_name, customer_email, customer_phone — имя и фамилия, адрес электронной почты и номер телефона пользователя.
  4. Для предварительного выбора метода BigC необходимо указывать код платёжного метода в параметре force_payment_methodbigccash.
  5. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page. Детальная информация обо всех параметрах приведена в разделе Параметры открытия платежной формы Payment Page.
  6. После определения всех параметров необходимо составить подпись. Подробную информацию см. в Работа с подписью к данным.

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

EPayWidget.run(
    { payment_id: 'X03936', 
      payment_amount: 50000, 
      payment_currency: 'THB', 
      project_id: 250, 
      customer_id: 'customer1',
      customer_first_name: 'Putra',
      customer_last_name: 'Cane',
      customer_phone: '60321669552',
      customer_email: 'putra@mail.com'
      signature: "kUi2x9dKHAVNU0FYldJrxh4yo+52Kt8KU+Y1Y4HASCQ9vySO\/RLCvhtT4DqtVUkDJrOcZzUCwX6R\/ekpZhkIQg=="
    }
)

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

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

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

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

{
        "project_id": 635,
        "payment": {
            "id": "EP9ae5-9bc2",
            "type": "purchase",
            "status": "success",
            "date": "2019-03-22T06:32:20+0000",
            "method": "BigCViaEGHL",
            "sum": {
                "amount": 50000,
                "currency": "THB"
            },
            "description": "123"
        },
        "account": {
            "number": "qwe@qwe.qwqw"
        },
        "customer": {
            "phone": "555"
        },
        "operation": {
            "id": 2000000124,
            "type": "sale",
            "status": "success",
            "date": "2019-03-22T06:32:20+0000",
            "created_date": "2019-03-22T06:31:48+0000",
            "request_id": "19e041b3e45a021",
            "sum_initial": {
                "amount": 50000,
                "currency": "THB"
            },
            "sum_converted": {
                "amount": 50000,
                "currency": "THB"
            },
            "provider": {
                "id": 1354,
                "payment_id": "123123",
                "date": "2019-03-22T06:32:18+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "UNRk0faKGslToD/ycQKNXGyV2l9k0P0n4hNzWsQ7z3BUgPdfZHcVSA+wcw=="
    }

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

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

{
        "project_id": 635,
        "payment": {
            "id": "EPbcd9-1304",
            "type": "purchase",
            "status": "decline",
            "date": "2019-03-22T06:34:57+0000",
            "method": "BigCViaEGHL",
            "sum": {
                "amount": 10,
                "currency": "THB"
            },
            "description": "123"
        },
        "account": {
            "number": "qwe@qwe.qwqw"
        },
        "customer": {
            "phone": "555"
        },
        "operation": {
            "id": 128,
            "type": "sale",
            "status": "decline",
            "date": "2019-03-22T06:34:57+0000",
            "created_date": "2019-03-22T06:34:06+0000",
            "request_id": "c8367f8d1ed201603",
            "sum_initial": {
                "amount": 10,
                "currency": "THB"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "THB"
            },
            "provider": {
                "id": 1354,
                "payment_id": "123123",
                "date": "2019-03-22T06:34:56+0000",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "A7538/NN/RAMOPdaG2mkqEjK9s9j2O9F6V78w3zYY/R2F3YzUpaPzqWMnw=="
    }

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

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

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

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

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

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

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



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

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

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

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

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

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

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

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

{
  "general": {
    "project_id": 318,
    "payment_id": "EP5fb7-bdg6",
    "signature": "testiuhgfcvbnm8f/kjhg\lkjhgvxbnmcvgfjdssAPOPKSJiojhbnm"
  },
  "payment": {
    "amount": 50000,
    "currency": "THB",
    "description": "payment cash"
  },
  "customer": {
    "first_name":"Petra",
    "last_name":"Davis",
    "ip_address":"172.10.123.11",
    "phone":"640991025894",
    "email":"d@df.com",
    "id": "customer123"
  }
}

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

Для завершения оплаты необходимо отобразить пользователям инструкцию по оплате. Для передачи данных (штрихкода, QR-кода, и пр.) пользователям ввиде инструкции необходимо принять оповещение от платёжной платформы, содержащее объект redirect_data с необходимыми данными в теле redirect_data.body:
  • Otc_Qr_Code — QR-код,
  • Otc_Bar_Code — штрихкод,
  • Otc_Bar_Code_Number — номер (значение) штрихкода,
  • valid_time — время, до которого необходимо завершить платеж,
  • user_name — имя пользователя, совершающего платеж.

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

"redirect_data": {
                    "body": {
                        "Otc_Qr_Code": "https://securepay.e-ghl.com/IPG/QrAndBarcode/55_qc_2019061300045867.png",
                        "Otc_Bar_Code": "https://securepay.e-ghl.com/IPG/QrAndBarcode/55_bc_2019061300045867.png",
                        "Otc_Bar_Code_Number": "|010555615233000\r2019061300045867\r\r5100",
                        "valid_time": "2019-06-15 14:17:26",
                        "user_name": "THANAPAT JISAMANYA"
                    },
                    "method": "GET",
                    "url": "BigC"
                }

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

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

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

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

{
        "project_id": 635,
        "payment": {
            "id": "EPf0a7-e8d1",
            "type": "purchase",
            "status": "success",
            "date": "2019-03-22T06:37:14+0000",
            "method": "ePayViaEGHL",
            "sum": {
                "amount": 500000,
                "currency": "THB"
            },
            "description": "123"
        },
        "customer": {
            "phone": "640991025894"
        },
        "operation": {
            "id": 1000000128,
            "type": "sale",
            "status": "success",
            "date": "2019-03-22T06:37:15+0000",
            "created_date": "2019-03-22T06:36:43+0000",
            "request_id": "9bfe58066b0f4331c",
            "sum_initial": {
                "amount": 500000,
                "currency": "THB"
            },
            "sum_converted": {
                "amount": 500000,
                "currency": "THB"
            },
            "provider": {
                "id": 1353,
                "payment_id": "123123",
                "date": "2019-03-22T06:37:13+0000",
                "auth_code": ""
            },
            "code": "0",
            "message": "Success"
        },
        "signature": "Y+RRAvAzF7aCMYHvoEsQjZf8unaN+4AtGHUICJe4POy6mRSZUbZmF55U00c7WEZZpkEQ=="
    }
}

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

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

{
        "project_id": 635,
        "payment": {
            "id": "EPe02d-985c",
            "type": "purchase",
            "status": "decline",
            "date": "2019-03-22T06:29:59+0000",
            "method": "ePayViaEGHL",
            "sum": {
                "amount": 10,
                "currency": "THB"
            },
            "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": "THB"
            },
            "sum_converted": {
                "amount": 10,
                "currency": "THB"
            },
            "provider": {
                "id": 1353,
                "payment_id": "123123",
                "date": "2019-03-22T06:29:57+0000",
                "auth_code": ""
            },
            "code": "20000",
            "message": "General decline"
        },
        "signature": "3nAGOrfkfY/+VqUqhSVkzpMh6eVE7ipxDRNz1IO4AxA3A=="
    }
}

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

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

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

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

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

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

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

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