# QR Ph {#pm_qrph} статья о работе с платёжным методом QR Ph, который позволяет проводить платежи в филиппинских песо с использованием банковских счетов и электронных кошельков в Филиппинах и для которого в платформе Ecommpay поддерживаются оплаты **На уровень выше:**[Платежи с помощью QR-кодов](ru_pm_qr.md) ## Обзор {#ru_pm_qrph_overview} статья о работе с платёжным методом QR Ph, который позволяет проводить платежи в филиппинских песо с использованием банковских счетов и электронных кошельков в Филиппинах и для которых в платформе Ecommpay поддерживаются оплаты ### Введение {#section_ql3_5fj_stb .section} QR Ph — метод, позволяющий проводить платежи в филиппинских песо с использованием банковских счетов и электронных кошельков в Филиппинах. Для этого метода в платёжной платформе Ecommpay поддерживаются оплаты. В этой статье представлена информация о работе с методом QR Ph: обзорный раздел с общими сведениями и последующие разделы с информацией о действиях, необходимых со стороны мерчанта для решения разных задач. ### Характеристика {#section_tbf_2zk_ggb .section} |Тип платёжного метода|платежи с помощью QR-кодов| |Платёжные инструменты|- банковские счета - электронные кошельки | |Регионы использования|[PH](references/ru/countries/PH.md)| |Валюты платежей|[PHP](references/ru/currencies/PHP.md)| |Конвертация валют|на стороне Ecommpay| |Разовые оплаты|+| |Повторяемые оплаты|–| |Полные возвраты|–| |Частичные возвраты|–| |Выплаты|–| |Опротестования|–| |Особенности|–| |Организация и стоимость подключения|по согласованию с курирующим менеджером Ecommpay| ### Схема работы {#section_tsp_gzk_ggb .section} В проведении отдельного платежа с использованием метода QR Ph задействуются веб-сервис мерчанта, один изинтерфейсов и платёжная платформа Ecommpay, а также технические средства сервиса провайдера. ![](images/pm/ru_qrph_functional.svg) ### Основные операции {#section_rnx_4cl_ggb .section} Для проведения платежей и выполнения операций с использованием метода QR Ph могут применяться различные интерфейсы платёжной платформы. Так, оплаты могут проводиться через Payment Page, Gate и Dashboard \(с применением платёжных ссылок\), а возвраты и выплаты — через Gate и Dashboard. При этом, независимо от используемых интерфейсов, минимальная сумма оплаты составляет 100,00 PHP, максимальная — 50 000,00 PHP. За дополнительной информацией об ограничениях сумм платежей можно обращаться к курирующему менеджеру Ecommpay. ### Сценарии использования {#section_fgt_sdl_ggb .section} Проведение оплат с использованием метода QR Ph осуществляется с сканированием QR-кодов пользователями с использованием мобильных приложений. Пользовательский сценарий оплаты через Payment Page выглядит следующим образом. ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_1.svg "Переход к оплате") ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_2.svg "Выбор метода") ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_3.svg "Получение инструкции") ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_4.svg "Оплата согласно инструкции") ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_5.svg "Возвращение к форме") ![](images/pm/pp_scenario/ru_pp_customer_scenario_qrph_6.svg "Возвращение к веб-сервису") Сценарии выполнения операций через основные интерфейсы платёжной платформы соответствуют представленным на схемах.При использовании дополнительных возможностей \(таких как платёжные ссылки\) сценарии выполнения операций методом QR Ph соответствуют специфике этих возможностей. ## Оплаты через Payment Page {#ru_pm_qrph_pp_purchase} ### Общая информация {#section_gtg_vxk_m2b .section} Для проведения оплаты через Payment Pageс использованием метода QR Ph со стороны веб-сервиса необходимо отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL Ecommpay и принять оповещение о результате. 1. Пользователь на стороне веб-сервиса инициирует оплату. 2. От веб-сервиса на заданный URL Ecommpay передаётся запрос на проведение оплаты через Payment Page. 3. Запрос на проведение оплаты поступает в платёжную платформу. 4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи. 5. Осуществляется подготовка Payment Page согласно параметрам проекта и вызова. 6. Пользователю отображается платёжная форма. 7. Пользователь выбирает для оплаты метод QR Ph. 8. В платёжную платформу передаётся запрос на проведение оплаты с использованием метода QR Ph. 9. В платёжной платформе обеспечиваются обработка полученного запроса и его отправка в сервис провайдера. 10. В сервисе провайдера выполняется обработка запроса на оплату. 11. От сервиса провайдера к платёжной платформе передаются данные для отображения QR-кода пользователю. 12. Данные для отображения QR-кода пользователю передаются к Payment Page. 13. Пользователю отображается QR-кода и платёжная инструкция. 14. Пользователь выполняет необходимые действия для оплаты согласно инструкции. 15. В сервисе провайдера выполняется обработка платежа. 16. От сервиса провайдера к платёжной платформе направляется информация о результате оплаты. 17. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты. 18. От платёжной платформы к Payment Page направляется информация о результате оплаты. 19. Информация о результате оплаты отображается пользователю на Payment Page. Информация о форматах запросов и оповещений, используемых для проведения оплат методом QR Ph через Payment Page, приведена далее в этом разделе; общая информация о работе с Payment Page API — в отдельной статье [Организация взаимодействия](ru_pp_interaction_organisation.md#). ### Формат запросов {#section_p5j_fgl_ggb .section} При формировании запросов на открытие платёжной формы с применением метода QR Ph необходимо учитывать следующее: 1. Должен использоваться базовый минимум параметров, обязательный для любого платежа: - `project_id` — идентификатор проекта, полученный от Ecommpay при интеграции; - `payment_id` — идентификатор платежа, уникальный в рамках проекта; - `payment_currency` — буквенный код валюты платежа в формате ISO-4217 alpha-3; - `payment_amount` — сумма платежа в дробных единицах валюты; - `customer_id` — идентификатор пользователя в рамках проекта. В зависимости от провайдера, используемого для проведения платежа, для его проведения могут потребоваться другие параметры \(такие как `customer_first_name`, `customer_last_name` и `customer_email`. За дополнительной информациейо возможных требуемых параметрах следует обращаться к курирующему менеджеру Ecommpay. 2. Для предварительного выбора метода QR Ph необходимо указывать код этого метода в параметре `force_payment_method` — `ph-qr`. 3. Дополнительно могут использоваться любые другие параметры из числа доступных для работы с Payment Page \([подробнее](ru_PP_Parameters.md)\). 4. После указания всех целевых параметров необходимо составлять подпись \([подробнее](ru_platform_signature.md#)\). Таким образом, корректный запрос на открытие платёжной формы с применением метода QR Ph должен содержать идентификатор проекта, базовые сведения о платеже \(идентификатор, сумму и код валюты\), идентификатор пользователя и подпись, а также может содержать различные дополнительные параметры. ``` {#codeblock_lkv_m3p_m2c .language-json} { "project_id": 120, "payment_id": "580", "payment_amount": 1000000, "payment_currency": "PHP", "customer_id": "customer1", "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" } ``` ``` {#codeblock_ccx_m3p_m2c .language-json} { "project_id": 120, "payment_id": "580", "payment_amount": 1000000, "payment_currency": "PHP", "customer_id": "customer1", "signature": "kUi2x9dKHAVNU0FYldOcZzUCwX6R\/ekpZhkIQg==" } ``` ### Формат оповещений {#section_dpx_2hl_ggb .section} Для оповещений о результатах оплат с применением метода QR Ph используется типовой формат, описание которого представлено в статье [Работа с оповещениями](ru_platform_callbacks.md#). В следующем примере оповещение свидетельствует о том, что в рамках проекта `1234` для пользователя `customer_123` была проведена оплата в размере `10 000,00 PHP`. ``` {#codeblock_blh_43p_m2c .language-json} { "project_id": 1234, "payment": { "id": "payment_47", "type": "purchase", "status": "success", "date": "2022-03-25T11:08:45+0000", "method": "QRPH", "sum": { "amount": 1000000, "currency": "PHP" }, "description": "" }, "customer": { "id": "customer_123" }, "operation": { "id": 28, "type": "sale", "status": "success", "date": "2022-03-25T11:08:45+0000", "created_date": "2022-03-25T11:08:05+0000", "request_id": "9e32835fb27907e0b08569d7d336c5117242b5cf60a4e17839", "sum_initial": { "amount": 1000000, "currency": "PHP" }, "sum_converted": { "amount": 1000000, "currency": "PHP" }, "code": "0", "message": "Success", "provider": { "id": 00000, "payment_id": "123abc123-321", "auth_code": "" } }, "signature": "U7HQO7ToISZhMPKdM4Xr4DScs9CRd4xeYG2Q==" } ``` В следующем примере оповещение свидетельствует об отклонённой оплате. ``` {#codeblock_qvp_43p_m2c .language-json} { "project_id": 1234, "payment": { "id": "payment_47", "type": "purchase", "status": "decline", "date": "2022-03-25T11:20:30+0000", "method": "QRPH", "sum": { "amount": 1000000, "currency": "PHP" }, "description": "" }, "customer": { "id": "customer_123" }, "operation": { "id": 31, "type": "sale", "status": "decline", "date": "2022-03-25T11:20:30+0000", "created_date": "2022-03-25T11:19:53+0000", "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb", "sum_initial": { "amount": 1000000, "currency": "PHP" }, "sum_converted": { "amount": 1000000, "currency": "PHP" }, "code": "20000", "message": "General decline", "provider": { "id": 00000, "payment_id": "0cf4215c-8978", "auth_code": "" } }, "signature": "J7W15rkqrLzTCD4HkoM4qoEnl4z2iFYv58P4VnHANu445/jmY+g==" } ``` ### Дополнительные материалы {#section_xpz_thl_ggb .section} Для организации работы с оплатами через Payment Page также могут быть полезны следующие материалы: - [Организация взаимодействия](ru_pp_interaction_organisation.md#)— о том, как организовать взаимодействие веб-сервиса с платёжной платформой через Payment Page. - [Работа с подписью к данным](ru_platform_signature.md#)— о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой. - [Проведение платежей](ru_platform_payment_model.md)— о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций. - [Проведение оплат](ru_pp_purchase.md)— о том, как проводить разовые оплаты с незамедлительным списанием средств через Payment Page. - [Работа с информацией об операциях](ru_platform_payment_info_codes.md)— о служебных кодах, которые используются в платёжной платформе, чтобы фиксировать информацию о выполнении операций. ## Оплаты через Gate {#ru_pm_qrph_gate_purchase} ### Общая информация {#section_lsx_3jl_ggb .section} Для проведения оплаты через Gate с использованием метода QR Ph со стороны веб-сервиса необходимо: 1. Отправить запрос, содержащий требуемые параметры и подпись, на рабочий URL Ecommpay. 2. Принять промежуточное оповещение от платёжной платформы и отобразить пользователю QR-код и платёжную инструкцию. 3. Принять итоговое оповещение от платёжной платформы. 1. Пользователь на стороне веб-сервиса инициирует оплату с использованием метода QR Ph. 2. От веб-сервиса на заданный URL Ecommpay передаётся запрос на проведение оплаты через Gate. 3. Запрос на проведение оплаты поступает в платёжную платформу Ecommpay. 4. В платёжной платформе выполняется приём запроса с проверкой наличия обязательных параметров и корректной подписи. 5. От платёжной платформы к веб-сервису направляется ответ с информацией о получении запроса и его корректности \([подробнее](ru_gate_interaction_organisation.md#)\). 6. В платёжной платформе выполняются дальнейшая обработка запроса \(с проверкой корректности параметров и соблюдения используемых правил и ограничений\) и его отправка в сервис провайдера. 7. В сервисе провайдера выполняется обработка запроса на оплату. 8. От сервиса провайдера к платёжной платформе передаются данные для отображения QR-кода пользователю. 9. От платёжной платформы к веб-сервису направляется оповещение с данными для отображения QR-кода пользователю. 10. Пользователю на стороне веб-сервиса отображается QR-код и платёжная инструкция. 11. Пользователь выполняет необходимые действия для оплаты согласно инструкции. 12. В сервисе провайдера выполняется обработка платежа. 13. От сервиса провайдера к платёжной платформе направляется информация о результате оплаты. 14. От платёжной платформы к веб-сервису направляется оповещение о результате оплаты. 15. На стороне веб-сервиса обеспечивается информирование пользователя о результате оплаты. Информация о форматах запросов и оповещений, используемых для проведения оплат методом QR Ph через Gate, приведена далее в этом разделе; общая информация о работе с Gate API — в отдельной статье [Организация взаимодействия](ru_gate_interaction_organisation.md#). ### Формат запросов {#section_osx_3jl_ggb .section} При работе с запросами на оплаты с применением метода QR Ph необходимо учитывать следующее: 1. Для инициирования каждой оплаты должен использоваться отдельный POST-запрос к конечной точке `/v2/payment/qr/ph-qr/sale`. 2. В каждом запросе должны использоваться следующие объекты и параметры: - `general` — объект, содержащий основные идентификационные сведения запроса: - `project_id` — идентификатор проекта, полученный от Ecommpay при интеграции; - `payment_id` — идентификатор платежа, уникальный в рамках проекта; - `signature` — подпись запроса, составленная после указания всех целевых параметров \(подробнее — в разделе [Работа с подписью к данным](ru_platform_signature.md#)\); - `payment` — объект, содержащий сведения о платеже: - `amount` — сумма платежа в дробных единицах валюты; - `currency` — буквенный код валюты платежав формате ISO-4217 alpha-3; - `customer` — объект, содержащий сведения о пользователе: - `id` — идентификатор пользователя, уникальный в рамках проекта; - `ip_address` — IP-адрес пользователя, актуальный для инициируемого платежа. В зависимости от провайдера, используемого для проведения платежа, для его проведения могут потребоваться другие параметры \(например для указания имени, фамилии и адреса электронной почты пользователя. За дополнительной информациейо возможных требуемых параметрах следует обращаться к курирующему менеджеру Ecommpay. 3. Дополнительно могут использоваться любые другие параметры из числа указанных в спецификации. Таким образом, корректный запрос на оплату с применением метода QR Ph должен содержать идентификатор проекта, базовые сведения о платеже \(идентификатор, сумму и код валюты\), идентификатор и IP-адрес пользователя, подпись, а также может содержать различные дополнительные параметры. ``` {#codeblock_gqn_ljp_m2c .language-json} { "general": { "project_id": 210, "payment_id": "test_payment", "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA==" }, "payment": { "amount": 1000000, "currency": "PHP" }, "customer": { "id": "customer123", "ip_address": "192.0.2.0" } } ``` ``` {#codeblock_hgp_ljp_m2c .language-json} { "general": { "project_id": 210, "payment_id": "test_payment", "signature": "PJkV8ej\/UG0Di8hTng6JvipTv+AWoXW\/9MTO8yJA==" }, "payment": { "amount": 1000000, "currency": "PHP" }, "customer": { "id": "customer123", "ip_address": "192.0.2.0" } } ``` ### Формат промежуточных оповещений для отображения QR-кодов пользователям {#section_fq5_ryf_r4b .section} Для отображения пользователям QR-кодов при проведении каждого платежа с использованием метода QR Ph необходимо принять промежуточное оповещение от платёжной платформы и использовать информацию из него, включённую в массив `display_data`. Формат таких оповещений является типовым \([подробнее](ru_platform_callbacks.md#)\), при этом в состав массива `display_data` включаются следующие параметры: - `type` — тип передаваемых данных \(в значении всегда передаётся `qr_img`\); - `title` — название передаваемых данных, которые необходимо отобразить пользователю \(в значении всегда передаётся `qr_img`\); - `data` — строка, на основании которой на стороне веб-сервиса должен быть создан QR-код \(в соответствии со стандартом [ISO/IEC 18004:2015](https://www.iso.org/standard/62021.html)\). ``` {#codeblock_s4f_qjp_m2c .language-json} "display_data": [ { "type": "qr_img", "title": "qr_img", "data": "data:image\/png;base64,iVB..." } ] ``` ### Формат итоговых оповещений {#section_wsx_3jl_ggb .section} Для итоговых оповещений об оплатах с применением метода QR Ph используется типовой формат, описание которого представлено в статье [Работа с оповещениями](ru_platform_callbacks.md#). В следующем примере оповещение свидетельствует о том, что в рамках проекта `1234` для пользователя `customer_123` была проведена оплата в размере `10 000,00 PHP`. ``` {#codeblock_blh_43p_m2c .language-json} { "project_id": 1234, "payment": { "id": "payment_47", "type": "purchase", "status": "success", "date": "2022-03-25T11:08:45+0000", "method": "QRPH", "sum": { "amount": 1000000, "currency": "PHP" }, "description": "" }, "customer": { "id": "customer_123" }, "operation": { "id": 28, "type": "sale", "status": "success", "date": "2022-03-25T11:08:45+0000", "created_date": "2022-03-25T11:08:05+0000", "request_id": "9e32835fb27907e0b08569d7d336c5117242b5cf60a4e17839", "sum_initial": { "amount": 1000000, "currency": "PHP" }, "sum_converted": { "amount": 1000000, "currency": "PHP" }, "code": "0", "message": "Success", "provider": { "id": 00000, "payment_id": "123abc123-321", "auth_code": "" } }, "signature": "U7HQO7ToISZhMPKdM4Xr4DScs9CRd4xeYG2Q==" } ``` В следующем примере оповещение свидетельствует об отклонённой оплате. ``` {#codeblock_qvp_43p_m2c .language-json} { "project_id": 1234, "payment": { "id": "payment_47", "type": "purchase", "status": "decline", "date": "2022-03-25T11:20:30+0000", "method": "QRPH", "sum": { "amount": 1000000, "currency": "PHP" }, "description": "" }, "customer": { "id": "customer_123" }, "operation": { "id": 31, "type": "sale", "status": "decline", "date": "2022-03-25T11:20:30+0000", "created_date": "2022-03-25T11:19:53+0000", "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb", "sum_initial": { "amount": 1000000, "currency": "PHP" }, "sum_converted": { "amount": 1000000, "currency": "PHP" }, "code": "20000", "message": "General decline", "provider": { "id": 00000, "payment_id": "0cf4215c-8978", "auth_code": "" } }, "signature": "J7W15rkqrLzTCD4HkoM4qoEnl4z2iFYv58P4VnHANu445/jmY+g==" } ``` ### Дополнительные материалы {#section_xsx_3jl_ggb .section} Для организации работы с оплатами через Gate также могут быть полезны следующие материалы: - [Организация взаимодействия](ru_gate_interaction_organisation.md#)— о том, как организовать взаимодействие с платёжной платформой через Gate. - [Работа с подписью к данным](ru_platform_signature.md#)— о порядке создания и проверки подписи в программных запросах и оповещениях при взаимодействии с платёжной платформой. - [Проведение платежей](ru_platform_payment_model.md)— о типах, схемах проведения и возможных статусах поддерживаемых платежей и операций. - [Разовая оплата в одну стадию](ru_platform_sms_model.md)— о том, как проводить разовые оплаты с незамедлительным списанием средств через Gate. - [Работа с информацией об операциях](ru_platform_payment_info_codes.md)— о служебных кодах, используемых в платёжной платформе для фиксации информации о выполнении операций. ## Анализ результатов проведения платежей {#ru_pm_qrph_dash_analysis} Для анализа информации о платежах и операциях, как в отдельности по методу QR Ph, так и в совокупности с другими методами, можно использовать: - инструментарийинтерфейса Dashboard, с различными реестрами и аналитическими панелями; - отчёты в формате CSV, выгружаемые\(как разово, так и периодически\) черезраздел **Отчёты** интерфейса Dashboard; - данные в формате JSON, получаемыепо программным запросам черезинтерфейс Data API. С вопросами по анализу информации можно обращаться к разделам документации \([Dashboard](ru_dbl_about.md) и [Использование Data API](ru_dbl_api_protocol.md)\) и специалистам Ecommpay.