.. meta:: :description: FAQ по интеграции с API Payneteasy: распространённые вопросы о тестовых картах, sandbox, учётных данных, обратных вызовах, обработке ответов и типичных проблемах интеграции. .. _FAQ: FAQ ##################### .. role:: code .. role:: ex Информация для диагностики ==================================================== | Пожалуйста, соберите эту информацию и предоставьте ее в службу поддержки для быстрого решения проблем, возникших во время интеграции. | - Использовалась ли интеграционная среда (песочница) или производственная среда? - Работала ли данная функциональность ранее? С какого момента она перестала работать? - Добавьте доступную релевантную информацию из журналов (:ex:`orderid`, :ex:`serial-number`, :ex:`client_orderid`, :ex:`ENDPOINTID`, :ex:`ENDPOINTGROUPID`). Часто задаваемые вопросы во время интеграции ================================================================================= Что означает ошибка INVALID_CONTROL_CODE? ------------------------------------------------------------------------------------ | Расчет подписи различается для разных типов вызовов API. Наиболее распространенные причины: - Неверные учетные данные. Проверьте учетные данные, полученные от менеджера платежного шлюза. - Вызов API для тестовой среды содержит URL производственной среды или наоборот. - Производственные учетные данные (:ex:`ENDPOINTID`, :ex:`ENDPOINTGROUPID`, :ex:`control key` и т. д.) использовались в песочнице или наоборот. - Параметры для расчета подписи указаны в неправильном порядке. - Сумма транзакции не конвертируется в минимальные десятичные единицы. | Лучший способ проверить расчет подписи — воспользоваться разделами конструктора запросов в документации API: - Выберите правильный URL-адрес из раскрывающегося списка с выбором вызовов API, если таковые имеются. - После нажатия кнопки :code:`Sign`, пожалуйста, проверьте значение подписи для :code:`String to sign`, подписывается ли та же самая строка или нет. - Если строка подписи выглядит правильно, значение подписи должно быть таким же, как в поле :code:`Signature`. - Войдите в пользовательский интерфейс и найдите конкретные запросы и ответы API на экране интеграционной панели в разделе Инструменты. В чём разница между ENDPOINTID и ENDPOINTGROUPID? ------------------------------------------------------------------------------------------------------- | Шлюз Payneteasy может поддерживать любую валюту. - :ex:`ENDPOINTID` поддерживает одну валюту. - :ex:`ENDPOINTGROUPID` может поддерживать столько валют, сколько необходимо. Полный список валют следует отправить менеджеру платежного шлюза для настройки проекта. | Из-за разной природы этих двух сущностей невозможно использовать :ex:`ENDPOINTID` вместо :ex:`ENDPOINTGROUPID` и наоборот. Можно ли использовать синхронный API? -------------------------------------------------------------------------------- | Все API асинхронны, см. :ref:`asynchronous_response`. Если требуется использование синхронного API, его следует реализовать на Присоединяющейся Стороне. Уточните у менеджера платёжного шлюза, возможно ли делать синхронные вызовы в вашей интеграции. Как реализовать 3-D Secure (Verified by Visa / MasterCard SecureCode) в собственном мобильном приложении? -------------------------------------------------------------------------------------------------------------------------------------- | Даже в собственном приложении необходимо использовать встроенный компонент WebView для открытия URL-адреса банковского сервера ACS. | Для обработки транзакций без перенаправления на страницу 3-D Secure приложение Присоединяющейся Стороны должно соответствовать следующим требованиям: - Плательщики идентифицированы, и вероятность мошенничества в этом случае низкая Присоединяющаяся Сторона может попросить менеджера платежного шлюза открыть счёт non3D. - У Присоединяющейся Стороны есть сертификат PCI DSS, и она может собирать данные о держателях карт на своей стороне. В этом случае Присоединяющаяся Сторона может попросить менеджера платежного шлюза открыть счет с поддержкой Direct API, чтобы избежать ненужных перенаправлений. Что такое client_orderid? ----------------------------------------------------------------- | Данный идентификатор транзакции генерируется на Присоединяющейся Стороне. Также в некоторых API данный параметр называется как merchant-order-id. Как получить одобренную транзакцию в среде песочницы? ---------------------------------------------------------------------------------------------------- | Для разных типов API Payneteasy имеет разные механизмы для получения одобренных транзакций и транзакций в других статусах. Для транзакций электронной коммерции Payneteasy использует разные CVV, см. :ref:`test_cards`. Для транзакций mPOS см. :ref:`mpos`. Почему ответ отформатирован как (0xA)? ------------------------------------------------------------------------------- | Для улучшения читаемости ответа в большинстве API Payneteasy добавляет символ :ex:`(0xA)` в конце каждого значения параметра. Для обработки ответа от платежного шлюза, пожалуйста, реализуйте механизм обработки этого символа. Можно ли использовать redirect_url для получения статуса транзакции для бэк-офиса? ---------------------------------------------------------------------------------------------------------------------- | Это не рекомендуется. | Все параметры для конечного редиректа передаются через браузер клиента. Параметры могут быть утеряны во время передачи через интернет. Чтобы получить гарантированный результат от шлюза Payneteasy, см. :ref:`merchant_callbacks`. Можно ли использовать GET вместо POST для отправки данных на шлюз Payneteasy? -------------------------------------------------------------------------------------------------------------------------------- | К сожалению это невозможно. | Передача параметров с использованием :ex:`HTTP GET` строго запрещена во избежание возможных утечек данных. Что означает INVALID_CALLBACK_URL? ---------------------------------------------------------------------------------- | Пожалуйста, используйте полный публичный URL-адрес с :ex:`http://` или :ex:`https://` | Например, http://www.example.com или https://www.example.com вместо www.example.com. Разрешены только следующие порты: - 80, 8080 для :ex:`HTTP` - 443, 8443 для :ex:`HTTPS` Как часто можно опрашивать статус транзакции? ------------------------------------------------------------------------------------- | Статус следует запрашивать несколько раз с интервалом в 3–5 секунд, пока в ответ не будет получен окончательный статус. | Обычно обработка не3D-транзакции занимает до 5 секунд, а 3D-транзакции — до 60 минут. Транзакции, выполненные с помощью некоторых платежных методов или платежных каналов, особенно обработанные в автономном режиме, могут оставаться в нефинальном статусе в течение нескольких часов или даже дней, поэтому нет смысла часто опрашивать статус транзакции в таких случаях. Присоединяющаяся Сторона должна полагаться на обратный вызов для получения финального статуса транзакции, см. :ref:`merchant_callbacks`. Почему транзакция была отклонена из-за ошибки base 64? ----------------------------------------------------------------------------------------------------- | Пожалуйста, используйте :ex:`urldecode` для обработки параметра :code:`html` в ответе шлюза Payneteasy. | Эта ошибка введена Payneteasy для помощи Присоединяющейся Стороне в правильной обработке ответов API. Тест Base64 дает Присоединяющейся Стороне возможность проверить, будет ли страница 3DS, предоставленная банком, правильно обработана в производственной среде. Если Connecting Party получает эту ошибку, это означает, что :ex:`urldecode`, вероятно, не использовался для разбора ответа шлюза Payneteasy или, возможно, он работает неправильно (например, в некоторых версиях PHP вместо этого необходимо использовать :ex:`rawurldecode`). .. ifconfig:: "doc.payneteasy.com" in site_link ---- .. admonition:: See also :class: related-cross-link `Question not in the FAQ? Contact technical support → `_ .. ifconfig:: "doc.payneteasy.ru" in site_link ---- .. admonition:: См. также :class: related-cross-link `Не нашли ответ? Обратитесь в техподдержку → `_