Для полноценного обмена данными с СПМ внешней системе необходимо использовать клиентскую часть для вызова программных интерфейсов СПМ и организующую взаимодействие между двумя системами в реальном времени. Такое взаимодействие осуществляется с помощью программных интерфейсов SOAP, которые предоставляются СПМ. Обмен данными ведется по протоколу HTTPS с доверительными SSL сертификатами. Для получения доступа к программным интерфейсам необходима авторизация с использованием наименования учетной записи (логина) и пароля.
Для корректной работы с веб-сервисами по защищенному TLS-соединению необходимо иметь на своей стороне в хранилище доверенных корневых сертификатов следующие сертификаты:
Перед началом работы следует проверить наличие этих сертификатов в хранилище и добавить их в случае необходимости. |
Доступ к программным интерфейсам (API) осуществляется по адресу https://afs-api.paysecure.ru/antifraudapi.
WSDL для реализации протокола SOAP клиента можно получить по адресу https://afs-api.paysecure.ru/antifraudapi?wsdl.
При передаче внешней системой данных о платежной операции в СПМ для анализа на мошенничество возможны два варианта использования СПМ.
После того, как на стороне внешней системы принято решение об авторизации платежа или о его отклонении, внешняя система обязана уведомить о своем решении СПМ, вызвав процедуру изменения статуса операции setStatus. После вызова этой процедуры любые попытки внести изменения по данной платежной операции через процедуру проверки check будут игнорироваться без каких-либо проверок, при этом каждый раз будет возвращаться текущий фрод-статус платежа.
Для получения информации о выставленном СПМ фрод-статусе платежа, для которого внешней системой уже были переданы параметры, используется процедура getFraudStatus.
Для регистрации мерчантов на стороне СПМ внешняя система может использовать сервис отсылки данных по мерчанту – процедуру setMerchantData. Эта же процедура применяется для синхронизации данных мерчанта при изменении наименования или E-mail адреса мерчанта во внешней системе.
При передаче данных по платежной операции передается идентификатор мерчанта из внешней системы, которому принадлежит этот платеж. Если такой мерчант не был зарегистрирован в СПМ на момент передачи данных о платеже и в СПМ для текущей внешней системы настроено автоматическое создание мерчанта по платежу, то СПМ добавит в свою базу запись с новым мерчантом и отошлет уведомление об этом во внешнюю систему. Внешняя система обрабатывает полученное уведомление и отсылает данные по мерчанту, используя процедуру setMerchantData.
Если плательщики осуществляют платежи с использованием web-страниц внешней системы, то на той web-странице, после которой последует проверка платежа в СПМ, желательно разместить вызов следующего JavaScript-кода СПМ:
<script type="text/javascript"> window.collect_afs_data_func = function() { try { var url = "https://afs-api.paysecure.ru/antifraudapi/rest/afs_data_collector.js?outSystemId=...&outPaymentId=..."; var method = "GET"; var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new XDomainRequest(); if ("withCredentials" in xhr) { xhr.open(method, url, true); } else if (typeof XDomainRequest !="undefined") { xhr = new XDomainRequest(); xhr.open(method, url); } else { xhr = null; } if (xhr) { xhr.onreadystatechange=function() { if (xhr.readyState==4 || xhr.readyState=="complete") { try { eval(xhr.responseText); } catch (e) {alert(e);} } }; try { xhr.withCredentials = true; } catch (e) { } xhr.send(''); } } catch (e) { alert(e); } }; if (window.addEventListener) { window.addEventListener('load', function(){window.collect_afs_data_func(); }, false); } else if (window.attachEvent) { window.attachEvent('onload', function(){window.collect_afs_data_func();}); } </script> |
При этом необходимо присваивать параметрам outSystemId и outPaymentId в url соответствующие значения идентификаторов (см.табл.4.1.1.1).
Наименование процедуры проверки платежной операции - check.
Единственным входным параметром, который передается внешней системой в СПМ для анализа платежной операции, является параметр params, который представляет собой структуру данных с именем CheckPaymentParams.
Обязательные поля CheckPaymentParams
Обязательные поля параметра передаются как простые типы данных (целочисленные, строковые, логические).
Таблица 4.1.1.1 – Обязательные поля CheckPaymentParams
Поле | Описание | Тип |
outPaymentId | Идентификатор платежной операции во внешней системе | Целочисленный (15) |
outSystemId | Идентификатор внешней системы | Целочисленный (15) |
outMerchantId | Внешний идентификатор мерчанта | Целочисленный (15). |
domainId | Код приложения/сервиса внешних систем из соответствующего справочника СПМ. | Целочисленный (15) |
paymentTypeId | Тип платежа | Целочисленный (15) Целочисленный код из справочника СПМ, см. табл.4.1.1.2. |
Таблица 4.1.1.2 – Типы платежей
Наименование | Код |
e-commerce | 1 |
MO/TO | 2 |
POS | 3 |
Необязательные поля CheckPaymentParams
При передаче параметра также предусмотрено использование необязательных полей.
Если внешняя система обращается к СПМ несколько раз за одну операцию по мере накопления данных о заказе, покупателе и его платежном средстве, то при повторных вызовах уже переданные ранее поля опускать запрещается. Поля, по которым у клиента нет информации, передаются в виде пустых (null) значений. |