Получение списка сохраненных карт Клиента

Данная JS библиотека предназначена для отображения списка карт, которыми пользователь уже оплачивал в вашем магазине и проведения списания по токену В начале Продавец должен получить идентификатор сессии, а затем вызвать JS метод getList для отображения пользователю списка карт. Токен карты может быть использован для формирования формы запроса платежа или cписания средств.

Получение идентификатора сессии LMI_SESSION_ID

Этот интерфейс получет получить идентификатор сессии для дальнейшего получения списка карт. Срок жизни сессии 15 минут.

Action - https://api.paysoft.solutions/merchants/cards-auth

Method - POST

Запрос:

<Command>
    <LMI_MERCHANT_ID></LMI_MERCHANT_ID>
    <LMI_PAYER_ID></LMI_PAYER_ID>
    <LMI_REQUEST_TIME></LMI_REQUEST_TIME>
    <LMI_HASH></LMI_HASH>
</Command>
Название Поле в XML Обязательность Описание
Идентификатор продавца LMI_MERCHANT_ID Да Идентификатор магазина. Идентификатор Продавец может получить в Кабинете(https://merchant.paysoft.solutions).
Идентификатор клиента на стороне Продавца LMI_PAYER_ID Да Может содержать буквы английского алфавита, цифры и знак дефиса «-». Максимальная длина 25 символов.
Дата запроса LMI_REQUEST_TIME Да дата формирования запроса в формате "YYYY-MM-DD HH:II:SS". Время киевское (GMT+2)
Контрольная подпись LMI_HASH Да Контрольная подпись запроса. Для формирования подписи исходный текст XML-запроса с пустым значением LMI_HASH конкатенируется с секретным ключом SecretKey (без разделителя). От полученной строки формируется хеш сумма с помощью алгоритма, указанного в настройках магазина в Кабинете Продавца. Полученная подпись передается в теге LMI_HASH. Рекомендованный алгоритм хеширования SHA256. Пример формирования подписи

Ответ

<?xml version="1.0" encoding="UTF-8"?>
<Response>
    <Retval></Retval>
    <Retdesc></Retdesc>
    <LMI_SESSION_ID></LMI_SESSION_ID>
</Response>
Название Поле в XML Обязательность Описание
Код ответа Retval Да Код ответа:
1 - успешно
2 - должен использоваться метод POST
-1 - системная ошибка
-2 - магазин не найден, проверьте LMI_MERCHANT_ID
-3 - некорректная подпись
Описание результата Retdesc Да
Идентификатор сессии LMI_SESSION_ID Нет Уникальный идентификатор сесиии.Срок жизни 15 минут.

Получение списка карт

Получения списка карт происходит в браузере Клиента. Для этого нужно вызвать метод PMCards.getList, на вход нужно передать LMI_SESSION_ID из первого запроса и callback функцию. После обработки запроса на вход функции будет передан объект cо списком карт.

Описание объекта, который передается в callback функцию

Название поля Описание
Retval Код выполнения:
1 - успешно
10 - сетевая ошибка
11 - закочнился срок жизни сессии
Retdesc Описание результата
ErrorMessage Если при получении данных произошла ошибка, будет возвращено описание ошибки
cards Массив сохраненных карт
cards[].Token Токен карты. Может быть использован для формирования формы запроса платежа или cписания средств.
cards[].CardMask Маскированный номер карты
cards[].Name Имя карты, переданное при сохранении карты. Необязательный параметр.

Удаление прикрепленной карты

Метод PMCards.remove предназначен для удаления карты из списка, на вход нужно передать LMI_SESSION_ID из первого запроса, token карты и callback функцию. После обработки запроса на вход функции будет передан объект cо списком карт.

Пример формирования списка карт

<div id="list"></div>
<div id="error"></div>

<script type="text/javascript" src="https://lmi.paysoft.solutions/js/premerchant/PMCards.min.js"></script>
<script type="text/javascript">
var LMI_SESSION_ID = 'session id from the first request';
var callback = function (data) {
    if(!data.ErrorMessage){
        var list = document.getElementById('list');
        list.innerHTML = '';
        for(var i = 0; i < data.cards.length; i++){
            var newDiv = document.createElement('div');
            var token =  data.cards[i].Token;    

            newDiv.innerHTML = '<label><input type="radio" name="LMI_PAYMENT_TOKEN" value="'+data.cards[i].Token+'"> '+(data.cards[i].Name || 'Карта') + ': ' + data.cards[i].CardMask+'</label>';

            var delButton = document.createElement('button');
            delButton.innerText = 'Удалить';
            delButton.dataset.token = token;
            delButton.addEventListener('click', function (event) {
                PMCards.remove(sessionId, event.target.dataset.token, callback);
            });
            newDiv.appendChild(delButton);

            list.appendChild(newDiv);
        }
    }else{
        var errorBlock = document.getElementById('error');
        errorBlock.textContent = data.ErrorMessage;
    }
};
PMCards.getList(LMI_SESSION_ID, callback);

</script>

results matching ""

    No results matching ""