Проверка платёжных инструментов
Помимо этой статьи для работы с проверкой действительности могут быть полезны:
- статья Проверка действительности платёжного инструмента модели проведения платежей с описанием того, как в целом проверяется действительность платёжных инструментов через платёжную платформу ecommpay и какие статусы при этом могут использоваться;
- статьи раздела Платёжные методы с описанием того, как проверять действительность платёжных инструментов через Payment Page при работе с различными платёжными методами и какие запросы и оповещения могут быть актуальны при этом.
Информацию о возможности проверки действительности для используемых проектов и методов можно уточнять у курирующего менеджера ecommpay.
Общая информация
Проверка действительности платёжного инструмента — это тип платежа, в рамках которого для проверки возможности использования платёжного инструмента на основании одного исходного запроса осуществляется один условный (нулевой) перевод денежных средств от пользователя к мерчанту или одна реальная (ненулевая) блокировка средств пользователя с последующей отменой. При этом сумма блокировки может согласовываться с мерчантом, а срок отмены блокировки может составлять до 45 дней. Это может быть актуальным, когда необходимо подтвердить подлинность конкретного платёжного инструмента без немедленного списания средств, например перед проведением выплаты или для регистрации в сервисе с бесплатным пробным периодом и последующими списаниями (подробнее о работе с такими случаями — в статье Регистрация повторяемых оплат).
В Payment Page для проверки действительности платёжных инструментов используется отдельный режим Card Verify, при работе с которым доступны возможности указания реквизитов, получаемых от пользователей через средства связи (Mail Order / Telephone Order; MO/TO), а также возможности сохранения предоставленных реквизитов в платформе.
Базовыми действиями пользователя при выполнении проверки действительности платёжного инструмента с использованием Payment Page могут быть указание реквизитов платёжного инструмента, сохранение реквизитов для выполнения последующих платежей и ожидание уведомления о результате.
Схема работы
Для проверки действительности платёжного инструмента через Payment Page со стороны веб-сервиса необходимо:
- Сформировать и отправить в платёжную платформу запрос на открытие Payment Page.
- Принять оповещение о результате выполнения запроса со стороны платёжной платформы.
При проверке действительности платёжного инструмента могут выполняться вспомогательные процедуры:
- Аутентификация 3‑D Secure, при выполнении которой происходит перенаправление пользователя к сервису эмитента, где необходимо подтвердить свою подлинность кодом из SMS-сообщения или иным способом, либо отображается страница ожидания (в то время, пока эмитент подтверждает подлинность без участия пользователя).
- Дополнение информации о платеже, при выполнении которой пользователю отображаются соответствующее уведомление и дополнительные поля, которые требуется заполнить здесь же, на платёжной форме.
Эти процедуры выполняются без участия веб-сервиса мерчанта, но, как правило, требуют участия пользователя.
Информация о форматах запросов и оповещений для выполнения проверки действительности платёжных карт представлена далее.
Формат запросов
Формат запроса на открытие Payment Page для проверки действительности платёжного инструмента соответствует описанному в разделе Описание Payment Page API. При формировании такого запроса необходимо учитывать следующее:
- Должны использоваться следующие обязательные параметры:
mode
— индикатор режима работы Payment Page, для которого необходимо передавать значениеcard_verify
;project_id
— идентификатор проекта, полученный от ecommpay при интеграции;payment_id
— идентификатор платежа, уникальный в рамках проекта;payment_amount
— сумма платежа в дробных единицах валюты, необходимо передавать значение0
;payment_currency
— код валюты платежа в формате ISO 4217 alpha-3;signature
— подпись запроса, составленная после указания целевых параметров (подробнее — в разделе Работа с подписью к данным).
- Для регистрации повторяемой оплаты дополнительно необходимо использовать параметр
recurring
со сведениями об этой повторяемой оплате (подробнее — в статье Регистрация повторяемых оплат). - Для сохранения данных платёжного инструмента дополнительно необходимо использовать параметр
customer_id
— идентификатор пользователя, уникальный в рамках проекта. - Для проведения проверки по токену инструмента необходимо использовать параметр
account_token
— токен, полученный от ecommpay. - Для отображения пользователю платёжной формы на заданном языке дополнительно необходимо использовать параметр
language_code
— код языка в формате ISO 639-1 alpha-2. Если этот параметр не передан, платёжная страница отображается на языке, определённом автоматически (по языку браузера, языку региона или по умолчанию; подробнее). - Для добавления описания платежа дополнительно необходимо использовать параметр
payment_description
, представляющий собой строку, которая отображается пользователю на странице с информацией о результате выполнения операции и мерчанту в интерфейсе Dashboard, а также передаётся мерчанту в составе оповещения о результате платежа. - Для указания реквизитов, получаемых от пользователей через средства связи, дополнительно должен указываться параметр
moto_type
— со значением1
при использовании почтовой связи (Mail Order) и2
при использовании телефонной связи (Telephone Order). - Дополнительно могут использоваться любые другие параметры, доступные при работе в режиме Card Verify. Полный список параметров вызова Payment Page представлен в разделе Параметры вызова платёжной формы.
Таким образом, корректный запрос на открытие Payment Page для проверки действительности платёжного инструмента должен содержать индикатор режима работы Payment Page, идентификаторы проекта и платежа, подпись, валюту и сумму платежа. Для сохранения данных платёжного инструмента в запросе дополнительно необходимо передать идентификатор пользователя в веб-сервисе мерчанта, а для регистрации повторяемых оплат — строку с соответствующим набором параметров.
{ "mode": "card_verify", "project_id": 874, "payment_id": "15538406111", "payment_currency": "EUR", "payment_amount": 0, "signature": "TSzdE5rJpfXriFf82MxF...", // при сохранении данных платёжного инструмента: "customer_id": "customer_10", // при проведении проверки по токену карты: "account_token": "42ab631449a78914502803aed8a0e5a728d558035d29a56f4dcc136c6bfc3021", // при регистрации повторяемых оплат: "recurring": { "register": "true", "type": "R", ... } }
Формат оповещений
Формат оповещения о результате проверки действительности платёжного инструмента соответствует описанному в разделе Оповещения.
В следующем примере содержится информация о том, что платёжная карта 431422******0056
пользователя customer_10
действительна — может использоваться при проведении платежей — и зарегистрирована для проведения повторяемых оплат.
Далее представлен пример данных из оповещения с информацией об отказе в проведении проверки действительности. Проведение платежа отклонено платёжной системой без указания причины.